zoukankan      html  css  js  c++  java
  • 微信支付结果通用通知

    支付结果通用通知

    应用场景

    支付完成后,微信会把相关支付结果和用户信息发送给商户,商户需要接收处理,并返回应答。

    对后台通知交互时,如果微信收到商户的应答不是成功或超时,微信认为通知失败,微信会通过一定的策略(如30分钟共8次)定期重新发起通知,尽可能提高通知的成功率,但微信不保证通知最终能成功。 (通知频率为15/15/30/180/1800/1800/1800/1800/3600,单位:秒)

    由于存在重新发送后台通知的情况,因此同样的通知可能会多次发送给商户系统。商户系统必须能够正确处理重复的通知。

    推荐的做法是,当收到通知进行处理时,首先检查对应业务数据的状态,判断该通知是否已经处理过,如果没有处理过再进行处理,如果处理过直接返回结果成功。在对业务数据进行状态检查和处理之前,要采用数据锁进行并发控制,以避免函数重入造成的数据混乱。

    技术人员可登进微信商户后台扫描加入接口报警群。

    开发者中心

    接口链接

    该链接是通过【统一下单API】中提交的参数notify_url设置,如果链接无法访问,商户将无法接收到微信通知。

    是否需要证书

    不需要。

    通知参数

    字段名变量名必填类型示例值描述
    返回状态码 return_code String(16) SUCCESS

    SUCCESS/FAIL

    此字段是通信标识,非交易标识,交易是否成功需要查看result_code来判断

    返回信息 return_msg String(128) 签名失败

    返回信息,如非空,为错误原因

    签名失败

    参数格式校验错误

    以下字段在return_code为SUCCESS的时候有返回

    字段名变量名必填类型示例值描述
    公众账号ID appid String(32) wx8888888888888888 微信分配的公众账号ID(企业号corpid即为此appId)
    商户号 mch_id String(32) 1900000109 微信支付分配的商户号
    设备号 device_info String(32) 013467007045764 微信支付分配的终端设备号,
    随机字符串 nonce_str String(32) 5K8264ILTKCH16CQ2502SI8ZNMTM67VS 随机字符串,不长于32位
    签名 sign String(32) C380BEC2BFD727A4B6845133519F3AD6 签名,详见签名算法
    业务结果 result_code String(16) SUCCESS SUCCESS/FAIL
    错误代码 err_code String(32) SYSTEMERROR 错误返回的信息描述
    错误代码描述 err_code_des String(128) 系统错误 错误返回的信息描述
    用户标识 openid String(128) wxd930ea5d5a258f4f 用户在商户appid下的唯一标识
    是否关注公众账号 is_subscribe String(1) Y 用户是否关注公众账号,Y-关注,N-未关注,仅在公众账号类型支付有效
    交易类型 trade_type String(16) JSAPI JSAPI、NATIVE、APP
    付款银行 bank_type String(16) CMC 银行类型,采用字符串类型的银行标识,银行类型见银行列表
    总金额 total_fee Int 100 订单总金额,单位为分
    货币种类 fee_type String(8) CNY 货币类型,符合ISO4217标准的三位字母代码,默认人民币:CNY,其他值列表详见货币类型
    现金支付金额 cash_fee Int 100 现金支付金额订单现金支付金额,详见支付金额
    现金支付货币类型 cash_fee_type String(16) CNY 货币类型,符合ISO4217标准的三位字母代码,默认人民币:CNY,其他值列表详见货币类型
    代金券或立减优惠金额 coupon_fee Int 10 代金券或立减优惠金额<=订单总金额,订单总金额-代金券或立减优惠金额=现金支付金额,详见支付金额
    代金券或立减优惠使用数量 coupon_count Int 1 代金券或立减优惠使用数量
    代金券或立减优惠ID coupon_id_$n String(20) 10000 代金券或立减优惠ID,$n为下标,从0开始编号
    单个代金券或立减优惠支付金额 coupon_fee_$n Int 100 单个代金券或立减优惠支付金额,$n为下标,从0开始编号
    微信支付订单号 transaction_id String(32) 1217752501201407033233368018 微信支付订单号
    商户订单号 out_trade_no String(32) 1212321211201407033568112322 商户系统的订单号,与请求一致。
    商家数据包 attach String(128) 123456 商家数据包,原样返回
    支付完成时间 time_end String(14) 20141030133525 支付完成时间,格式为yyyyMMddHHmmss,如2009年12月25日9点10分10秒表示为20091225091010。其他详见时间规则

    举例如下:

    <xml>
      <appid><![CDATA[wx2421b1c4370ec43b]]></appid>
      <attach><![CDATA[支付测试]]></attach>
      <bank_type><![CDATA[CFT]]></bank_type>
      <fee_type><![CDATA[CNY]]></fee_type>
      <is_subscribe><![CDATA[Y]]></is_subscribe>
      <mch_id><![CDATA[10000100]]></mch_id>
      <nonce_str><![CDATA[5d2b6c2a8db53831f7eda20af46e531c]]></nonce_str>
      <openid><![CDATA[oUpF8uMEb4qRXf22hE3X68TekukE]]></openid>
      <out_trade_no><![CDATA[1409811653]]></out_trade_no>
      <result_code><![CDATA[SUCCESS]]></result_code>
      <return_code><![CDATA[SUCCESS]]></return_code>
      <sign><![CDATA[B552ED6B279343CB493C5DD0D78AB241]]></sign>
      <sub_mch_id><![CDATA[10000100]]></sub_mch_id>
      <time_end><![CDATA[20140903131540]]></time_end>
      <total_fee>1</total_fee>
      <trade_type><![CDATA[JSAPI]]></trade_type>
      <transaction_id><![CDATA[1004400740201409030005092168]]></transaction_id>
    </xml>

    返回参数

    商户处理后同步返回给微信参数:

    字段名变量名必填类型示例值描述
    返回状态码 return_code String(16) SUCCESS

    SUCCESS/FAIL

    SUCCESS表示商户接收通知成功并校验成功

    返回信息 return_msg String(128) OK

    返回信息,如非空,为错误原因:

    签名失败

    参数格式校验错误

    举例如下:

    <xml>

      <return_code><![CDATA[SUCCESS]]></return_code>
      <return_msg><![CDATA[OK]]></return_msg>
    </xml>

  • 相关阅读:
    背水一战 Windows 10 (26)
    背水一战 Windows 10 (25)
    背水一战 Windows 10 (24)
    背水一战 Windows 10 (23)
    背水一战 Windows 10 (22)
    背水一战 Windows 10 (21)
    背水一战 Windows 10 (20)
    背水一战 Windows 10 (19)
    背水一战 Windows 10 (18)
    背水一战 Windows 10 (17)
  • 原文地址:https://www.cnblogs.com/u0mo5/p/4831551.html
Copyright © 2011-2022 走看看