在QR code payment, Official Account Payment, In-APP payment, Mini Program Payment场景下,微信支付会在用户支付完成后向机构回调url下发支付结果通知,机构需要核实回调签名及回调内容,以防止收到虚假回调,产生资金的损失。
机构或商户在收到微信支付回调信息后,需要做三件事:
对回调信息中的sign字段进行核验,以确认该回调为微信支付下发的回调,核验签名方式请参考API文档中的签名算法部分。
若sign核验通过,需检查回调中订单信息是否正确。重点需要核查订单号是否在系统中生成过,订单号与支付金额是否与系统中记录的相匹配。
若sign和业务信息都验证通过,同步订单结果到自身系统中,同时需要返回正确的回包给到微信支付。否则微信支付会判定该次回调失败,不断去进行重试,造成双方资源的浪费。
同样的通知可能会多次发送给商户系统。商户系统必须能够正确处理重复的通知。当收到通知进行处理时,首先检查对应业务数据的状态,判断该通知是否已经处理过,如果没有处理过再进行处理,如果处理过直接返回结果成功。在对业务数据进行状态检查和处理之前,要采用数据锁进行并发控制,以避免函数重入造成的数据混乱。
Customer Service Tel
Business Development
9:00-18:00
Monday-Friday GMT+8
Technical Support
WeChat Pay Global
ICP证