微信支付已提供了回调的相关实现指引及注意事项说明,商户可参考文档要求接入实现,提升商户系统的安全性和健壮性。
一、微信支付提供的方案概述
1.1、商户APP或者前端页面收到支付返回时,商户需要调用商户查单接口确认订单状态,并把查询结果展示给用户。
1.2、商户后台需要准确、高效地处理微信支付发送的异步支付结果通知,并按接口规范把处理结果返回给微信支付。
1.3、商户后台未收到异步支付结果通知时,商户应该主动调用《微信支付查单接口》,同步订单状态。
1.4、商户在T+1日从微信支付侧获取T日的交易账单,并与商户系统中的订单核对。如出现订单在微信支付侧成功,但是在商户侧未成功的情况,商户需要给用户补发货或者退款处理。
前端支付返回处理和后端服务处理具体步骤及常见问题可参考:支付回调和查单实现指引
二、回调处理逻辑注意事项
2.1、 notify_url的代码处理逻辑不能做登录态校验。
2.2、商户系统收到支付结果通知,需要在5秒内返回应答报文,否则微信支付认为通知失败,后续会重复发送通知。
2.3、同样的通知可能会多次发送给商户系统,商户系统必须能够正确处理重复的通知。如果已处理过,直接给微信支付返回成功。
2.4、商户侧对微信支付回调IP有防火墙策略限制的,需要对以下IP段开通白名单:
上海电信出口网段:101.226.103.0/25
上海联通出口网段:140.207.54.0/25
上海CAP出口网段:121.51.58.128/25
深圳电信出口网段:183.3.234.0/25
深圳联通出口网段:58.251.80.0/25
深圳CAP出口网段:121.51.30.128/25
香港出口网段:203.205.219.128/25
退款结果通知、分账动账通知IP(新增):
175.24.214.208、175.24.211.24、175.24.213.135、109.244.180.23、114.132.203.119、43.139.43.69