支付宝无法接收异步回调(异步通知)原因分析

有使用过TePay这个插件的人都知道,我这个插件可以个人收款,可以接收异步回调通知,可以说是 Typecho 第一款帮助个人开发者收款的插件,厉害吧~

那么我是如何做到的呢?使用过程中有哪些经验可以分享?
这里我分享一下支付宝无法接收异步回调通知的原因。

实现收款不难,放个二维码就可以了,难的是及时把付款成功或失败的消息告知系统或用户,能马上知道付款结果,可以进行下一步的动作。

在支付宝中,对个人用户有个当面付,签约后就可以使用,这个当面付接口就能推送付款结果的通知,我的TePay插件利用的就是这个,所以说你的资金是安全的,因为付款后立即到你的个人支付宝账户。

我在做支付宝收款的时候,碰到最多的就是无法接收异步回调通知,通过自己的分析和TePay用户的反馈,大概有以下几个原因:
一、支付宝发回调通知时,需要验签,在验签这步使用的是支付宝的公钥,很多人看文档不认真,弄成了商户应用的公钥;
二、网站的问题,比如用了CDN,网址在支付宝的黑名单,肯定无法接收到通知;
三、商户私钥公钥生成的版本有问题,至少需要1.4以上的版本;
四、回调地址填错了,或者在支付宝的开放平台没有填回调地址;
五、支付宝回调通知中返回数据格式的问题,转义符方面注意一下,需要自己去处理;
六、需确认页面是http还是https,如果是https,那么需要安装ssl证书,证书要求有如下:要求“正规的证书机构签发,不支持自签名”。

注意:notify_url页面只能返回success,异步通知页面上不可有任何HTML代码。
需确认页面是http还是https,如果是https,那么需要安装ssl证书,证书要求有如下:
要求“正规的证书机构签发,不支持自签名”,如果不理解请咨询证书供应商。
域名证书检测地址参考:https://cryptoreport.websecurity.symantec.com/checker/

参考地址:
https://www.cnblogs.com/suizhikuo/p/11767409.html
https://docs.open.alipay.com/66/104422