隐藏

paypal IPN 接口小结

发布:2016/12/20 0:45:39作者:管理员 来源:本站 浏览次数:1493

摘要: 最近在搞paypal的接口,遇到各种问题,总结一下
1.sandbox下payment status为pending,pending reason为payment review 解决办法:
这个原因是买方或卖房开启了付款审核,将付款审核关闭,payment status就会变成Completed


在http://developer.paypal.com/ 登陆
在Dashboard页面的左侧菜单中点击Sandbox的Accounts
编辑买方或者卖方的个人设置Profile 
选择settings,把payment review的设置改成off




2.有的空间不支持fsockopen函数,可以使用pfsockopen函数
$fp = pfsockopen ('www.sandbox.paypal.com', 80, $errno, $errstr, 60);
网址是www.sandbox.paypal.com,端口号是80,不是443
经过反复测试,pfsockopen应该使用ssl网址,并且端口是443
$fp = pfsockopen ('ssl://www.sandbox.paypal.com', 443, $errno, $errstr, 60); 




3.paypal身份标记获得
在paypal用户中心,点击我的销售工具-》网站习惯设定-》更新
将网站付款的自动返回设置成自动返回,并输入返回url地址
并把付款数据传输设置成开启
设置完毕,返回,再重新点击更新,可以在付款数据传输下边找到身份标记


www.daurkuu.com/paypal/return.php
商家名称: firstYh lastYh
安全的商家账号 A3UN44WEK54L4
身份标记:Qoc5A3z7roYZu_nU-LdCOPj80OTlcUST1zwrUExom1ycWuJM1l8STyTi6Hi




4.paypal验证返回值是如下情况:
    HTTP/1.0 302 Found
    Location: https://www.sandbox.paypal.com
    Server: BigIP
    Connection: close
    Content-Length: 0


    fsockopen使用ssl网址,并且端口号为443,
    $header应该如下拼接
    $header ="POST /cgi-bin/webscr HTTP/1.1\r\n";
    $header .="Content-Type: application/x-www-form-urlencoded\r\n";
    $header .="Host: www.sandbox.paypal.com\r\n";
    $header .= "Content-Length: " . strlen($req) . "\r\n";
    $header .="Connection: close\r\n\r\n";


    再次测试,成功通过
    注意:检验总价时,应该将价格乘上100变成整数,浮点数进行比较会出现错误