PayPal Payflow Pro 用の PHP SDK はありません。PHP を使用して Payflow Pro クレジット カードの請求を返金するにはどうすればよいですか? クレジット カード番号を使用せずに、PCI に準拠するにはどうすればよいでしょうか?
質問する
816 次
1 に答える
3
これは、curl を使用してクレジット カードの請求を返金する PHP コードです。このコードは、Radu Manole の SDK に基づいています。詳細については、Payflow Pro 開発者ガイドを参照してください: https://www.paypalobjects.com/webstatic/en_US/developer/docs/pdf/pp_payflowpro_guide.pdf
$user = 'CHANGEME'; // API User Username
$password = 'CHANGEME'; // API User Password
$vendor = 'CHANGEME'; // Merchant Login ID
// Reseller who registered you for Payflow or 'PayPal' if you registered
// directly with PayPal
$partner = 'PayPal';
$sandbox = true;
$transactionId = 'CHANGEME'; // The PNREF # returned when the card was charged
$amount = '3';
$currency = 'USD';
$url = $sandbox ? 'https://pilot-payflowpro.paypal.com'
: 'https://payflowpro.paypal.com';
$params = array(
'USER' => $user,
'VENDOR' => $vendor,
'PARTNER' => $partner,
'PWD' => $password,
'TENDER' => 'C', // C = credit card, P = PayPal
'TRXTYPE' => 'C', // S=Sale, A= Auth, C=Credit, D=Delayed Capture, V=Void
'ORIGID' => $transactionId,
'AMT' => $amount,
'CURRENCY' => $currency
);
$data = '';
$i = 0;
foreach ($params as $n=>$v) {
$data .= ($i++ > 0 ? '&' : '') . "$n=" . urlencode($v);
}
$headers = array();
$headers[] = 'Content-Type: application/x-www-form-urlencoded';
$headers[] = 'Content-Length: ' . strlen($data);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_HEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
curl_close($ch);
// Parse results
$response = array();
$result = strstr($result, 'RESULT');
$valArray = explode('&', $result);
foreach ($valArray as $val) {
$valArray2 = explode('=', $val);
$response[$valArray2[0]] = $valArray2[1];
}
print_r($response);
if (isset($response['RESULT']) && $response['RESULT'] == 0) {
echo 'SUCCESS!';
} else {
echo 'FAILURE: ' . $response['RESPMSG'] . ' ['. $response['RESULT'] . ']';
}
于 2014-06-06T03:32:19.657 に答える