useMock

数据内容模板
微信POST到notify_url的内容

微信支付V3版本 异步通知 - 关键所在

以下信息是微信处理的关键所在,我们已经简化提炼,请务必阅读一次以

提示:你可以复制上面Mock的json数据到你的程序内测试

# 异步通知参数说明 : https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter3_4_5.shtml

注意:V3支付结果通知是以POST JSON数据到notify_url(BODY)传输,通知的数据包括了加密的支付结果详情(即 ciphertext)。

通知失败时,微信会通过一定的策略定期重新发起通知,尽可能提高通知的成功率,但微信不保证通知最终能成功。(通知频率为15s/15s/30s/3m/10m/20m/30m/30m/30m/60m/3h/3h/3h/6h/6h - 总计 24h4m)

处理成功时,建议商户按照以下JSON格式返回:

{   
    "code": "SUCCESS",//FAIL 为失败
    "message": "成功"
}

订单处理流程:

  1. 验证数据签名,这步使用第三方包一般不存在问题,只要传入对应参数即可

  2. 商户需要验证该通知数据中的 out_trade_no 是否为商户系统中创建的订单号;

  3. 判断 amount.total 是否确实为该订单的实际金额(即商户订单创建时的金额);

  4. 校验通知中的 appid(或者 mchid) 是否为 out_trade_no 这笔单据的对应的操作方(有的时候,一个商户可能有多个 appid/mchid);

上述步骤有任何一个验证不通过,则表明本次通知是异常通知,务必忽略。 在上述验证通过后商户必须根据微信不同类型的业务通知,正确的进行不同的业务处理,并且过滤重复的通知结果数据。在微信的业务通知中,只有交易通知状态为 trade_state == SUCCESS 时,微信才会认定为买家付款成功。

致谢:Mock.js、Next.js、Mui、React..等

Copyright © useMock.com 2024 开心诉网络科技有限公司