视频一区二区三区自拍_千金肉奴隷1985未删减版在线观看_国产成人黄色视频在线播放_少女免费播放片高清在线观看_国产精品v欧美精品v

商戶進件
特約商戶進件
基礎支付
JSAPI支付
APP支付
H5支付
Native支付
小程序支付
合單支付
付款碼支付
經營能力
支付即服務
點金計劃
行業(yè)方案
平臺收付通(商戶進件)
平臺收付通(普通支付)
平臺收付通(合單支付)
平臺收付通(分賬)
平臺收付通(補差)
平臺收付通(退款)
平臺收付通(余額查詢)
平臺收付通(商戶提現)
平臺收付通(注銷申請)
平臺收付通(注銷后提現)
平臺收付通(跨境付款)
平臺收付通(下載賬單)
智慧商圈
微信支付分停車服務
電子發(fā)票
營銷工具
代金券
商家券
委托營銷
支付有禮
小程序發(fā)券插件
H5發(fā)券
圖片上傳(營銷專用)
現金紅包
資金應用
分賬
連鎖品牌分賬
風險合規(guī)
商戶開戶意愿確認
消費者投訴2.0
商戶違規(guī)通知回調
其他能力
圖片上傳
視頻上傳
微信支付平臺證書

支付通知API

最新更新時間:2022.03.04 版本說明


微信支付通過支付通知接口將用戶支付成功消息通知給商戶

注意:

? 同樣的通知可能會多次發(fā)送給商戶系統(tǒng)。商戶系統(tǒng)必須能夠正確處理重復的通知。 推薦的做法是,當商戶系統(tǒng)收到通知進行處理時,先檢查對應業(yè)務數據的狀態(tài),并判斷該通知是否已經處理。如果未處理,則再進行處理;如果已處理,則直接返回結果成功。在對業(yè)務數據進行狀態(tài)檢查和處理之前,要采用數據鎖進行并發(fā)控制,以避免函數重入造成的數據混亂。

? 如果在所有通知頻率后沒有收到微信側回調,商戶應調用查詢訂單接口確認訂單狀態(tài)。


特別提醒:商戶系統(tǒng)對于開啟結果通知的內容一定要做簽名驗證,并校驗通知的信息是否與商戶側的信息一致,防止數據泄露導致出現“假通知”,造成資金損失。

接口說明

適用對象: 服務商

回調URL:該鏈接是通過基礎下單接口中的請求參數“notify_url”來設置的,要求必須為https地址。請確保回調URL是外部可正常訪問的,且不能攜帶后綴參數,否則可能導致商戶無法接收到微信的回調通知信息。回調URL示例: “http://www.tg885.com/wxpay/pay.action”

通知規(guī)則

用戶支付完成后,微信會把相關支付結果和用戶信息發(fā)送給商戶,商戶需要接收處理該消息,并返回應答。

對后臺通知交互時,如果微信收到商戶的應答不符合規(guī)范或超時,微信認為通知失敗,微信會通過一定的策略定期重新發(fā)起通知,盡可能提高通知的成功率,但微信不保證通知最終能成功。(通知頻率為15s/15s/30s/3m/10m/20m/30m/30m/30m/60m/3h/3h/3h/6h/6h - 總計 24h4m)

通知報文

支付結果通知是以POST 方法訪問商戶設置的通知url,通知的數據以JSON 格式通過請求主體(BODY)傳輸。通知的數據包括了加密的支付結果詳情。

參數解密

下面詳細描述對通知數據進行解密的流程:

  1. 1、用商戶平臺上設置的APIv3密鑰【微信商戶平臺—>賬戶設置—>API安全—>設置APIv3密鑰】,記為key;
  2. 2、針對resource.algorithm中描述的算法(目前為AEAD_AES_256_GCM),取得對應的參數nonce和associated_data;
  3. 3、使用key、nonce和associated_data,對數據密文resource.ciphertext進行解密,得到JSON形式的資源對象;

注: AEAD_AES_256_GCM算法的接口細節(jié),請參考rfc5116。微信支付使用的密鑰key長度為32個字節(jié),隨機串nonce長度12個字節(jié),associated_data長度小于16個字節(jié)并可能為空字符串。

通知參數

參數名 變量 類型[長度限制] 必填 描述
通知ID id string[1,36] 通知的唯一ID
示例值:EV-2018022511223320873
通知創(chuàng)建時間 create_time string[1,16] 通知創(chuàng)建的時間,遵循rfc3339標準格式,格式為yyyy-MM-DDTHH:mm:ss+TIMEZONE,yyyy-MM-DD表示年月日,T出現在字符串中,表示time元素的開頭,HH:mm:ss.表示時分秒,TIMEZONE表示時區(qū)(+08:00表示東八區(qū)時間,領先UTC 8小時,即北京時間)。例如:2015-05-20T13:29:35+08:00表示北京時間2015年05月20日13點29分35秒。
示例值:2015-05-20T13:29:35+08:00
通知類型 event_type string[1,32] 通知的類型,支付成功通知的類型為TRANSACTION.SUCCESS
示例值:TRANSACTION.SUCCESS
通知數據類型 resource_type string[1,32] 通知的資源數據類型,支付成功通知為encrypt-resource
示例值:encrypt-resource
+通知數據 resource object 通知資源數據
json格式,見示例
參數名 變量 類型[長度限制] 必填 描述
加密算法類型 algorithm string[1,32] 對開啟結果數據進行加密的加密算法,目前只支持AEAD_AES_256_GCM
示例值:AEAD_AES_256_GCM
數據密文 ciphertext string[1,1048576] Base64編碼后的開啟/停用結果數據密文
示例值:sadsadsadsad
附加數據 associated_data string[1,16] 附加數據
示例值:fdasfwqewlkja484w
原始類型 original_type string[1,16] 原始回調類型,為transaction
示例值:transaction
隨機串 nonce string[1,16] 加密使用的隨機串
示例值:fdasflkja484w
回調摘要 summary string[1,64] 回調摘要
示例值:支付成功

通知簽名

加密不能保證通知請求來自微信。微信會對發(fā)送給商戶的通知進行簽名,并將簽名值放在通知的HTTP頭Wechatpay-Signature。商戶應當驗證簽名,以確認請求來自微信,而不是其他的第三方。簽名驗證的算法請參考 《微信支付API v3簽名驗證》

回調示例

支付成功結果通知


{
    "id": "EV-2018022511223320873",
    "create_time": "2015-05-20T13:29:35+08:00",
    "resource_type": "encrypt-resource",
    "event_type": "TRANSACTION.SUCCESS",
    "summary": "支付成功",
    "resource": {
        "original_type": "transaction",
        "algorithm": "AEAD_AES_256_GCM",
        "ciphertext": "",
        "associated_data": "",
        "nonce": ""
    }
}

商戶對resource對象進行解密后,得到的資源對象示例


{
    "sp_appid":"wx8888888888888888",
    "sp_mchid":"1230000109",
    "sub_appid":"wxd678efh567hg6999",
    "sub_mchid":"1900000109",
    "out_trade_no":"1217752501201407033233368018",
    "trade_state_desc":"支付成功",
    "trade_type":"MICROPAY",
    "attach":"自定義數據",
    "transaction_id":"1217752501201407033233368018",
    "trade_state":"SUCCESS",
    "bank_type":"CMC",
    "success_time":"2018-06-08T10:34:56+08:00",
    "amount":{
        "payer_total":100,
        "total":100,
        "currency":"CNY",
        "payer_currency":"CNY"
    },
    "promotion_detail":[
        {
            "amount":100,
            "wechatpay_contribute":0,
            "coupon_id":"109519",
            "scope":"GLOBAL",
            "merchant_contribute":0,
            "name":"單品惠-6",
            "other_contribute":0,
            "currency":"CNY",
            "stock_id":"931386",
            "goods_detail":[
                {
                    "goods_remark":"商品備注信息",
                    "quantity":1,
                    "discount_amount":1,
                    "goods_id":"M1006",
                    "unit_price":100
                },
                {
                    "goods_remark":"商品備注信息",
                    "quantity":1,
                    "discount_amount":1,
                    "goods_id":"M1006",
                    "unit_price":100
                }
            ]
        },
        {
            "amount":100,
            "wechatpay_contribute":0,
            "coupon_id":"109519",
            "scope":"GLOBAL",
            "merchant_contribute":0,
            "name":"單品惠-6",
            "other_contribute":0,
            "currency":"CNY",
            "stock_id":"931386",
            "goods_detail":[
                {
                    "goods_remark":"商品備注信息",
                    "quantity":1,
                    "discount_amount":1,
                    "goods_id":"M1006",
                    "unit_price":100
                },
                {
                    "goods_remark":"商品備注信息",
                    "quantity":1,
                    "discount_amount":1,
                    "goods_id":"M1006",
                    "unit_price":100
                }
            ]
        }
    ],
    "payer":{
        "openid":"oUpF8uMuAJO_M2pxb1Q9zNjWeS6o"
    },
    "scene_info":{
        "device_id":"013467007045764"
    }
}

支付成功通知參數

參數名 變量 類型[長度限制] 必填 描述
服務商應用ID sp_appid string[1,32] 服務商申請的公眾號或移動應用appid。
示例值:wx8888888888888888
服務商戶號 sp_mchid string[1,32] 服務商戶號,由微信支付生成并下發(fā)
示例值:1230000109
子商戶應用ID sub_appid string[1,32] 子商戶申請的公眾號或移動應用appid。
示例值:wxd678efh567hg6999
子商戶號 sub_mchid string[1,32] 子商戶的商戶號,由微信支付生成并下發(fā)。
示例值:1900000109
商戶訂單號 out_trade_no string[6,32] 商戶系統(tǒng)內部訂單號,只能是數字、大小寫字母_-*且在同一個商戶號下唯一。
示例值:1217752501201407033233368018
微信支付訂單號 transaction_id string[1,32] 微信支付系統(tǒng)生成的訂單號。
示例值:1217752501201407033233368018
交易類型 trade_type string[1,16] 交易類型,枚舉值:
JSAPI:公眾號支付
NATIVE:掃碼支付
APP:APP支付
MICROPAY:付款碼支付
MWEB:H5支付
FACEPAY:刷臉支付
示例值:MICROPAY
交易狀態(tài) trade_state string[1,32] 交易狀態(tài),枚舉值:
SUCCESS:支付成功
REFUND:轉入退款
NOTPAY:未支付
CLOSED:已關閉
REVOKED:已撤銷(付款碼支付)
USERPAYING:用戶支付中(付款碼支付)
PAYERROR:支付失敗(其他原因,如銀行返回失敗)
示例值:SUCCESS
交易狀態(tài)描述 trade_state_desc string[1,256] 交易狀態(tài)描述
示例值:支付成功
付款銀行 bank_type string[1,32] 銀行類型,采用字符串類型的銀行標識。銀行標識請參考《銀行類型對照表
示例值:CICBC_DEBIT
附加數據 attach string[1,128] 附加數據,在查詢API和支付通知中原樣返回,可作為自定義參數使用,實際情況下只有支付完成狀態(tài)才會返回該字段。
示例值:自定義數據 ?
支付完成時間 success_time string[1,64] 支付完成時間,遵循rfc3339標準格式,格式為yyyy-MM-DDTHH:mm:ss+TIMEZONE,yyyy-MM-DD表示年月日,T出現在字符串中,表示time元素的開頭,HH:mm:ss表示時分秒,TIMEZONE表示時區(qū)(+08:00表示東八區(qū)時間,領先UTC 8小時,即北京時間)。例如:2015-05-20T13:29:35+08:00表示,北京時間2015年5月20日 13點29分35秒。
示例值:2018-06-08T10:34:56+08:00
+支付者 payer object 支付者信息
參數名 變量 類型[長度限制] 必填 描述
用戶服務標識 sp_openid string[1,128] 用戶在服務商appid下的唯一標識。
示例值:oUpF8uMuAJO_M2pxb1Q9zNjWeS6o
用戶子標識 sub_openid string[1,128] 用戶在子商戶appid下的唯一標識。
示例值:oUpF8uMuAJO_M2pxb1Q9zNjWeS6o
+訂單金額 amount object 訂單金額信息
參數名 變量 類型[長度限制] 必填 描述
總金額 total int 訂單總金額,單位為分。
示例值:100
用戶支付金額 payer_total int 用戶支付金額,單位為分。
示例值:100
貨幣類型 currency string[1,16] CNY:人民幣,境內商戶號僅支持人民幣。
示例值:CNY
用戶支付幣種 payer_currency string[1,16] 用戶支付幣種
示例值:CNY
+場景信息 scene_info object 支付場景信息描述
參數名 變量 類型[長度限制] 必填 描述
商戶端設備號 device_id string[1,32] 終端設備號(門店號或收銀設備ID)。
示例值:013467007045764
+優(yōu)惠功能 promotion_detail array 優(yōu)惠功能,享受優(yōu)惠時返回該字段。
參數名 變量 類型[長度限制] 必填 描述
券ID coupon_id string[1,32] 券ID
示例值:109519
優(yōu)惠名稱 name string[1,64] 優(yōu)惠名稱
示例值:單品惠-6
優(yōu)惠范圍 scope string[1,32] GLOBAL:全場代金券
SINGLE:單品優(yōu)惠
示例值:GLOBAL
優(yōu)惠類型 type string[1,32] CASH:充值型代金券
NOCASH:免充值型代金券
示例值:CASH
優(yōu)惠券面額 amount int 優(yōu)惠券面額
示例值:100
活動ID stock_id string[1,32] 活動ID
示例值:931386
微信出資 wechatpay_contribute int 微信出資,單位為分
示例值:0
商戶出資 merchant_contribute int 商戶出資,單位為分
示例值:0
其他出資 other_contribute int 其他出資,單位為分
示例值:0
優(yōu)惠幣種 currency string[1,16] CNY:人民幣,境內商戶號僅支持人民幣。
示例值:CNY
+單品列表 goods_detail array 單品列表信息
參數名 變量 類型[長度限制] 必填 描述
商品編碼 goods_id

string[1,32]

商品編碼
示例值:M1006
商品數量 quantity int 用戶購買的數量
示例值:1
商品單價 unit_price int 商品單價,單位為分
示例值:100
商品優(yōu)惠金額 discount_amount int 商品優(yōu)惠金額
示例值:0 ?
商品備注 goods_remark string[1,128] 商品備注信息
示例值:商品備注信息

通知應答

接收成功:HTTP應答狀態(tài)碼需返回200或204,無需返回應答報文。

接收失敗:HTTP應答狀態(tài)碼需返回5XX或4XX,同時需返回應答報文,格式如下:

參數名 變量 類型[長度限制] 必填 描述
返回狀態(tài)碼 code string[1,32] 錯誤碼,SUCCESS為清算機構接收成功,其他錯誤碼為失敗。
示例值:FAIL
返回信息 message string[1,64] 返回信息,如非空,為錯誤原因。
示例值:失敗


{   
    "code": "FAIL",
    "message": "失敗"
}


技術咨詢

文檔反饋