背景:客户支付成功,无法返回支付结果
=====================================
查找原因,追踪代码:
verified = AlipayNotify.verify(params,alipayConfig.sign_type,alipayConfig.partner,alipayConfig.key,alipayConfig.input_charset);
if (!verified) {
Debug.logError("###### Alipay did not verify this request, need investigation!", module);
return "error";
}
AlipayNotify
responseTxt = verifyResponse(notify_id,apiUserName);
boolean isSign = getSignVeryfy(params, sign,paymentEncodeType,apiPassword,apiCharset);
String sWord = "responseTxt=" + responseTxt + "\n isSign=" + isSign + "\n 返回回来的参数:" + AlipayCore.createLinkString(params);
Debug.log(sWord);
tail log 发现:
responseTxt的值为空,至此可以判定:
“验证是否支付宝返回的url”模块(verifyResponse)错误
支付宝提示:
false 请检查防火墙或者是服务器阻止端口问题以及验证时间是否超过一分钟
手动请求https://mapi.alipay.com/gateway.do?service=notify_verify&查看是否存在问题
返回结果:
Couldn't resolve host 'mapi.alipay.com'
确认结果:
前些日子,主机服务商调整机房电源配置,主机重启过一次,进而丢失DNS解析。
至此,问题解决,但多少让人有点失望,DNS竟然会丢失!记得上次在这家服务商处购置另一台主机,我来部署环境,apt-get就发现无法解析域名的问题。感慨,不靠谱的主机商,浪费我这么长时间找问题,像这些基础设施,还是建议大家找靠谱的商家吧。