-
问题描述:
用java对接微信支付时,统一下单接口正常。但是用户扫码付款成功后,设置用于回调的notify_url对应的接口并没有收到请求(这个url测试过,是正常的且外网能访问的)。
由于官方文档没有demo,自己之前也没相关对接经验,就去网上查了查。查到一堆乱七八糟的错误解决方法,比如:必须用域名且必须是80端口...
-
解决方法:
一开始对接时,由于从微信官方文档上看是xml方式传参,于是我将请求的Content-Type设置成了application/xml,这个就是问题所在。我试着不指定请求的Content-Type,果然再支付就收到通知了。
-
补充说明:
对接的微信支付是处于开发阶段,用于回调的接口notify_url中,用的外网能正常访问的ip和一个普通的端口,并不是非要指定域名和80端口。网上那些文章真坑爹,全TM瞎说。
-
总之:
从目前自身的情况来看,一个能被微信通知到的notify_url特征为:
- POST请求
- 不指定请求Content-Type(没来得及去查具体是什么类型)
- 普通的ip和端口
以上特征即可正常收到通知