对接微信支付,复杂的不是接口调用,而是开通支付功能和找配置参数。
1. 申请开通微信支付教程:
2. 开通微信支付功能后,对接接口:
2.1 微信支付开发文档选择地址:https://pay.weixin.qq.com/wiki/doc/api/index.html
2.2 微信工具类下载:https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=11_1
2.3 在线微信支付签名校验工具:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=20_1
2.4 退款证书下载地址:微信商户平台-->账户中心-->API安全。
3. 注意事项
3.1 微信支付没有沙箱环境,所以测试需要正式的appId和secret等参数
3.1.1 App_id和App_secret位置:微信公众平台-->基本配置
3.1.2 Mch_id位置:微信支付平台
3.1.3 Api_key位置:微信支付平台--账户中心--API安全
3.2 微信支付的支付通知和退款通知是需要在微信支付平台手动绑定的,并且只能用域名绑定
1) 微信支付通知地址设置:
2) 微信退款通知地址设置:
3.3 微信支付通知和退款通知都需要返回特定的值
如果业务处理成功,需要返回:<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg></xml>;失败一般返回:FAIL。如果不返回值。会重复给你发送通知,一般是三四遍。
3.4 微信支付通知和微信退款通知的接收参数的处理方式不一样,退款通知的参数是经过加密的,需要对应的解密工具。
3.5 微信退款是需要下载双向证书的:将下载下来的证书放到项目中的路径,然后在发起post请求时,使用这个证书加密发送内容,比如你发送的是ABC,加密后为密文yeghjwikkq。
退款请参考另一篇博客
3.6 同一个接口,每次请求返回的参数内容和字段(有无值)可能都是不相同的,所以在解析参数的时候,仔细校验字段是否空值,再进行类型转换。