成功交易后,未从paypal沙箱收到交易字符串

时间:2016-05-23 00:25:50

标签: php curl paypal

我正在为数字下载创建一个电子商务网站,但是从PayPal收到的交易数据存在问题。你能想到我做错了吗? 我有一个沙箱企业帐户,我已经进入我的帐户中的网站付款首选项,并将自动返回打开并将付款数据传输到开。我已经设置了一个成功运行的返回URL。然后我收到了一个身份令牌,我已将其插入下面的代码中。

我已经使用了以下代码并在之前(大约一年前)在另一个网站上取得了成功,但这次它似乎没有工作,即当我尝试将结果打印到控制台时它说"假"

我能够在paypal网站上成功付款,然后我成功地在浏览器中使用查询字符串重定向到正确的URL,如下所示:

http://www.sarahswebsite.com/confirmation.php?tx=05D40838LW579215A&st=Completed&amt=5%2e00&cc=EUR&cm=MUZIC-1463960113&item_number=

我的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连接错误。

对此解决方案的任何想法?感谢

1 个答案:

答案 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