我正在为数字下载创建一个电子商务网站,但是从PayPal收到的交易数据存在问题。你能想到我做错了吗? 我有一个沙箱企业帐户,我已经进入我的帐户中的网站付款首选项,并将自动返回打开并将付款数据传输到开。我已经设置了一个成功运行的返回URL。然后我收到了一个身份令牌,我已将其插入下面的代码中。
我已经使用了以下代码并在之前(大约一年前)在另一个网站上取得了成功,但这次它似乎没有工作,即当我尝试将结果打印到控制台时它说"假"
我能够在paypal网站上成功付款,然后我成功地在浏览器中使用查询字符串重定向到正确的URL,如下所示:
我的Php:
<?php
$api_endpoint= "https://www.sandbox.paypal.com/cgi-bin/webscr";
$transID = $_GET['tx'];
$atID= 'AFcWxV21C7fd0v3bYYYRCpSSRl31A7Ez9-tDKvj2MIuwN2MJ0r';
$cmd = "_notify-synch";
$nvp_string = "tx=" . urlencode($transID) . "&at=" . urlencode($atID) . "&cmd=" . urlencode($cmd);
$curl = curl_init();
curl_setopt($curl, CURLOPT_VERBOSE, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
curl_setopt($curl, CURLOPT_URL, $api_endpoint);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $nvp_string);
$result = curl_exec($curl);
curl_close($curl);
?>
的Javascript
window.onload = function(){
window.name_value_pairs= <?php echo json_encode($result); ?>;
console.log(window.name_value_pairs);
//this used to print out the string of name value pairs however now it is printing 'false'.
}
编辑: 我有更多相关信息。这是一个卷曲错误: 35 SSL连接错误。
对此解决方案的任何想法?感谢
答案 0 :(得分:0)
我在阅读以下文章后找到了解决方法:
PayPal NVP Error: CURL Request failed: SSL connect error (35)
我在curl代码中添加了以下两行,现在它运行得很好。我不完全确定为什么它现在有效并且之前没有我认为它与我使用的PHP版本(5.6)或PayPal已经改变了他们的安全协议。
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_SSLVERSION, 6); //6 is for TLSV1.2