paypal立即购买按钮生成(PHP)

时间:2017-03-23 03:28:48

标签: php curl paypal

我正在尝试生成沙盒paypal按钮,因此我不必手动制作一堆按钮。

我发现他们的文档非常糟糕,因为他们的一半指令现在不适合他们的网站,并且因为一切都已经过时而无法找到答案。

在这个页面上有一个Curl示例来调用沙箱,但我也不知道如何将其转换为PHP Curl脚本。

https://developer.paypal.com/docs/classic/lifecycle/sb_calls/

curl https://api-3t.sandbox.paypal.com/nvp \
-s \
--insecure \
-d USER=YourUserID \
-d PWD=YourPassword \
-d SIGNATURE=YourSignature \
-d METHOD=SetExpressCheckout \
-d VERSION=98 \
-d PAYMENTREQUEST_0_AMT=10 \
-d PAYMENTREQUEST_0_CURRENCYCODE=USD \
-d PAYMENTREQUEST_0_PAYMENTACTION=SALE \
-d cancelUrl=http://www.example.com/cancel.html \
-d returnUrl=http://www.example.com/success.html

请有人为我解释一下吗?

1 个答案:

答案 0 :(得分:0)

以下是Express Checkout的示例代码,更改凭据并对其进行处理。在这里,您可以使用值传递必要的参数,并且可以在“& method”参数中调用所需的方法。

<?php

$url = "https://api-3t.paypal.com/nvp";
   //$url = "https://api-3t.sandbox.paypal.com/nvp";
 $nvps = 
  "&USER=XXXXXXXx"
   ."&PWD=XXXXXXXX"
    ."&SIGNATURE=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";



  if(!isset($token)) {  

   $nvpset= $nvps

 ."&returnurl=http://localhost/training/ec_return.php"
 ."&cancelurl=http://localhost/training/ec_call.php"
 ."&localecode=US"
 ."&SOLUTIONTYPE=Sole"
 ."&method=SetExpressCheckout"
 ."&version=204.0"    
 ."&paymentrequest_0_currencycode=USD"
 ."&addroverride=1"
 ."&noshipping=2"
 ."&PAYMENTREQUEST_0_SHIPTONAME= James Costerton"
."&PAYMENTREQUEST_0_SHIPTOSTREET=3929 Coburn Hollow Road"
."&PAYMENTREQUEST_0_SHIPTOCITY=London"
."&PAYMENTREQUEST_0_SHIPTOSTATE="
."&PAYMENTREQUEST_0_SHIPTOZIP=SE23 1NX"
."&PAYMENTREQUEST_0_SHIPTOCOUNTRYCODE=GB"
."&PAYMENTREQUEST_n_SHIPTOPHONENUM=309-374-5347"
 ."&paymentrequest_0_amt=1.00";




$response = RunAPICall($nvpset); 
echo '<pre>';
print_r($response);
}

function RunAPICall($nvps){
 global $url;
 $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_SSLVERSION,6);
 curl_setopt($ch, CURLOPT_TIMEOUT, 45);
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
 curl_setopt($ch, CURLOPT_POST, 1);
 curl_setopt($ch, CURLOPT_POSTFIELDS,$nvps);


 $result = curl_exec($ch);
 $httpResponseAr = explode("&", strtoupper($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;
}?>