【问题标题】:paypal buy now button generation (PHP)贝宝立即购买按钮生成 (PHP)
【发布时间】:2017-08-15 10:59:52
【问题描述】:

我正在尝试即时生成沙盒 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

有人可以帮我解释一下吗?

【问题讨论】:

标签: php curl paypal


【解决方案1】:

这是 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;
}?>

【讨论】:

  • 请在您的答案中添加更多描述,代码除外。会好看很多
  • 不要将$url 设为全局。将其传递给函数。
  • @hd ,请问是什么原因。
  • 紧耦合代码,加上all of these reasonsthese reasons
猜你喜欢
  • 2013-03-25
  • 2013-04-29
  • 2011-07-17
  • 2013-06-18
  • 2017-12-21
  • 2016-11-21
  • 1970-01-01
  • 2012-04-07
  • 1970-01-01
相关资源
最近更新 更多