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变成整数,浮点数进行比较会出现错误