前言:因为支付异步通知问题,排查了一天,自己模拟各种请求都能到达服务器,地址没问题,唯独支付宝的支付成功异步通知,服务器从没收到过,log一行都不会出。

异步访问状态http0排查方案

设置异步地址要求为外网post访问为http0,可通过【云排查】查询。查询当前支付订单的通知信息,内有同步和异步的回调地址明细

当异步地址访问返回http0,为商户自己异步地址环境存在问题导致,非支付宝导致,只能商户自己处理自己服务器等相关问题。

目前根据http0大致报错原因,推荐检查排查方案如下:

 

一、服务连接超时或者失败

1、异步地址是否可以外网访问:部分商户将异步地址设置为本地地址,导致无法访问成功;

2、异步地址测试是否post访问:异步地址与同步地址访问方式不同;

异步为post访问,同步为get访问。

3、服务器设置防火墙导致访问失败:检查服务器是否设置了防火墙或者禁用了端口;

4、商户设置断点进行调试:检查自己是否在测试时设置了断点;

5、异步地址是否进行转义:notify_url在请求时如果传值做了encode也有可能导致http0;

6、异步地址为https不能正常收到异步通知,为http能正常收到异步通知:SSL证书不符合要求。

证书推荐使用WoSign、Verisign、GlobalSign、Geotrust、Entrust等国际知名品牌的SSL证书。有的可能是证书部署的有问题,也有的是需要开启sni。

要求该SSL证书满足:其根证书在JDK1.5中缺省内置(JDK1.5缺省内置的根证书列表见附件jdk15.txt,可通过证书序列号查找比对)国际知名证书供应商一般会与Sun/微软等合作将其根证书预埋在JDK/Windows中。

证书问题一定要检测一下证书安全等级,检测网站:https://myssl.com/,本人就是因为网站评级B,服务器证书配置有问题,导致支付宝直接不会通知!!!

7、网络等问题:导致异步地址无法访问成功。

 

二、无法解析地址

1、异步地址格式有问题:

正确格式:http://

错误格式:http://http://alipay.com(多了一个http://);

2、DNS服务器故障:表现为异步地址设置为域名地址报错,设置为IP地址正常接收异步通知。