分享

关于支付宝即时到帐异步通知(notify_url)一点总结

 昵称597197 2016-02-24

(1)首先做支付的商业网站,需要能够上网(支付成功后,需要进行参数回传验证,如果上不了网,responseText就直接为false)
(2)notify_url这个不能进行验证,比如继承父类Page,做一些session验证之类的。这样很有可能直接就跳转到别处
(3)notify_url会按照一定的频率,发送验证请求,一旦返回success,则中断。这时候 也不能在response.write("success")之后,做跳转,这样会影响输出success
(4)因为这个页面是post请求的,所以页面里面不能出现querystring这样的获取参数的方式,这样获取的值是空值,需要以post的获取方式进行获取:request.form["param"]
(5)程序执行完后必须打印输出“success”(不包含引号)。如果商户反馈给支付宝的字符不是success这7个字符,支付宝服务器会不断重发通知,直到超过24小时22分钟。在25小时内完成6~10次通知(通知频率:5s,2m,10m,15m,1h,2h,6h,15h)。

(6)notify_url.aspx(asp.net)这个页面中不能有html标签、换行、空格等字符(索性直接清掉)



客户端接入了支付宝付款,支付过程调用服务器端进行签名,客户端完成了付款,支付宝也正常收到了订单及付款信息,证明付款成功。但是在签名和客户端中指定的notify_url却一直没有被执行。

测试的程序如下,(没有写验签的代码)

[php] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. <?php  
  2. require_once('../config.php');  
  3. $log = new Log();  
  4.   
  5. foreach($_POST as $k => $v){  
  6.     $content .= $k"=>" . $v . "|";  
  7. }  
  8.   
  9. $content .= "test " . time();  
  10.   
  11. //记录内容在文件中  
  12. $log->i($content);  
  13. ?>  

查找了好久,差点就要给支付宝技术客服打电话了。后面发现有同病相怜的

http://www./?p=92

原来是安全校验码没有上传(商户RSA公钥)

登陆:http://b.alipay.com


点击 PID、Key进入页面,在安全校验码(key)中,RSA加密添加密钥


至此,异步回调的流程就成功了

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多