0
A
回答
0
檢查下面的代碼:它只是示例代碼,以獲得更多幫助,請Paypal documentation
---複製以下代碼,並在本地主機保存爲「refTest.php」 &檢查。
$user = 'API_USERNAME';
$password = 'API_PASSWORD';
$signature = 'API_SIGNATURE';
$nvps = "&USER=$user".
"&PWD=$password".
"&SIGNATURE=$signature";
$amt=2;
$tax=0.5;
$tot=2.5;
if(!isset($_REQUEST['token'])){
$nvpset= $nvps
. "&METHOD=SetExpressCheckout"
. "&VERSION=109.0"
. "&RETURNURL=http://localhost/refTest.php"
. "&CANCELURL=http://localhost/refTest.php"
. "&PAYMENTREQUEST_0_CURRENCYCODE=USD"
. "&LOCALCODE=US"
. "&PAYMENTREQUEST_0_AMT=".$tot
. "&PAYMENTREQUEST_0_ITEMAMT=".$amt
. "&PAYMENTREQUEST_0_TAXAMT=".$tax
. "&PAYMENTREQUEST_0_DESC=Shopping"
. "&PAYMENTREQUEST_0_PAYMENTACTION=Order"
. "&L_PAYMENTREQUEST_0_NAME0=James Bond"
. "&L_PAYMENTREQUEST_0_NUMBER0=101"
. "&L_PAYMENTREQUEST_0_QTY0=1"
. "&L_PAYMENTREQUEST_0_AMT0=".$amt
. "&SOLUTIONTYPE=Sole"
. "&L_BILLINGTYPE0=MerchantInitiatedBillingSingleAgreement"
. "&L_BILLINGAGREEMENTDESCRIPTION0=FirstBillingAgreement"
. "&LANDINGPAGE=Billing"
. "&NOSHIPPING=1";
$setEC = RequestPayPal($nvpset);
header('location: https://www.sandbox.paypal.com/webscr&cmd=_express-checkout&token='.$setEC['TOKEN']);
}
elseif(isset($_REQUEST['token']) && isset($_REQUEST['PayerID']) && !isset($_REQUEST['action'])){
echo "<a href='?token=".$_REQUEST['token']."&PayerID=".$_REQUEST['PayerID']."&action=createBillingAgree'>Let's Create Billing Agreement</a></br>";
echo "Token Details</br>";
$nvpget= $nvps
. "&METHOD=GetExpressCheckoutDetails"
. "&VERSION=109.0"
. "&TOKEN=".$_REQUEST['token'];
$getEC = RequestPayPal($nvpget);
print_r($getEC);
}
elseif(isset($_REQUEST['token']) && isset($_REQUEST['PayerID']) && isset($_REQUEST['action']) && $_REQUEST['action']=='createBillingAgree'){
echo "<a href='?token=".$_REQUEST['token']."&PayerID=".$_REQUEST['PayerID']."&action=PayIt'>Let's Do the payment Now</a></br>";
$nvpget= $nvps
. "&METHOD=CreateBillingAgreement"
. "&VERSION=109.0"
. "&TOKEN=".$_REQUEST['token'];
$getEC = RequestPayPal($nvpget);
print_r($getEC);
}
elseif(isset($_REQUEST['token']) && isset($_REQUEST['PayerID']) && isset($_REQUEST['action']) && $_REQUEST['action']=='PayIt'){
echo "DO EXPRESS CHECK OUT DONE</br>";
$nvpdo= $nvps
. "&METHOD=DoExpressCheckoutPayment"
. "&VERSION=109.0"
. "&PAYMENTACTION=Order"
. "&AMT=".$tot
. "&TOKEN=".$_REQUEST['token']
. "&PAYERID=".$_REQUEST['PayerID'];
$doEC = RequestPayPal($nvpdo);
echo "<a href='?token=".$_REQUEST['token']."&PayerID=".$_REQUEST['PayerID']."&action=captureFuturePay&refId=".$doEC['BILLINGAGREEMENTID']."'>Create Reference Transasction</a></br>";
print_r($doEC);
}
else{
echo "Reference Transasction Done </br>";
$nvpdo= $nvps
. "&METHOD=DoReferenceTransaction"
. "&VERSION=109.0"
. "&PAYMENTACTION=Order"
. "&AMT=".$tot
. "&TOKEN=".$_REQUEST['token']
. "&REFERENCEID=".$_REQUEST['refId']
. "&PAYERID=".$_REQUEST['PayerID'];
$doEC = RequestPayPal($nvpdo);
print_r($doEC);
}
function RequestPayPal($nvp){
$url = 'https://api-3t.sandbox.paypal.com/nvp';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_TIMEOUT, 45);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,$nvp);
$result = curl_exec($ch);
$httpResponseAr = explode("&", $result);
$httpParsedResponseAr = array();
foreach ($httpResponseAr as $value) {
$tmpAr = explode("=", $value);
if(sizeof($tmpAr) > 1) {
$httpParsedResponseAr[$tmpAr[0]] = urldecode($tmpAr[1]);
}
}
curl_close ($ch);
return $httpParsedResponseAr;
}
?>
相關問題
- 1. 沒有PayPal賬戶的參考交易
- 2. WooCommerce訂閱 - PayPal參考交易
- 3. 我如何使用PayPal配置託管參考交易?
- 4. PayPal參考交易狀態碼400作爲迴應
- 5. 如何使用參考交易設置PayPal Express週期性付款?
- 6. WooCommerce - Paypal交易ID
- 7. 貝寶參考交易結算協議
- 8. 貝寶拒絕參考交易功能
- 9. 作爲在PayPal手機支付交易
- 10. PHP - 使用PayPal做交易
- 11. PayPal顯示沙盒交易
- 12. PayPal MECL交易問題
- 13. Paypal IPN交易ID的
- 14. 檢索Paypal交易費
- 15. 檢索交易ID paypal
- 16. Paypal沙箱阻止交易
- 17. 設置參考document.location.search
- 18. 設置參考C++
- 19. Paypal支付大量交易失敗時進行大宗交易
- 20. 將std :: shared_ptr設置爲指向參考
- 21. 「設置交易級別」是否需要開始交易?
- 22. 設置.dll參考路徑
- 23. MSBuild - 設置參考路徑
- 24. 關閉和參考設置
- 25. 使用PayPal API獲取交易記錄
- 26. paypal rest node sdk「此交易無效」
- 27. PayPal Sandbox交易未顯示給賣家
- 28. 與PayPal和PHP進行交易
- 29. PayPal在俄羅斯盧布的交易
- 30. 如何停止IPN內的PayPal交易?
貝寶文檔有很多示例代碼,我建議您使用它們的樣本,因爲它們將是最準確的。 – Difster