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

基礎(chǔ)支付
JSAPI支付
APP支付
H5支付
Native支付
小程序支付
合單支付
付款碼支付
經(jīng)營能力
微信支付分(公共API)
微信支付分(免確認預(yù)授權(quán)模式)
微信支付分(需確認模式)
支付即服務(wù)
行業(yè)方案
智慧商圈
微信支付分停車服務(wù)
電子發(fā)票
營銷工具
代金券
商家券
委托營銷
支付有禮
小程序發(fā)券插件
H5發(fā)券
圖片上傳(營銷專用)
現(xiàn)金紅包
資金應(yīng)用
商家轉(zhuǎn)賬到零錢
分賬
風(fēng)險合規(guī)
消費者投訴2.0
其他能力
清關(guān)報關(guān)
圖片上傳
視頻上傳
微信支付平臺證書

支付成功回調(diào)通知API

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


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

注意:

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

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


特別提醒:商戶系統(tǒng)對于支付成功通知的內(nèi)容一定要做簽名驗證,并校驗通知的信息是否與商戶側(cè)的信息一致,防止數(shù)據(jù)泄露導(dǎo)致出現(xiàn)“假通知”,造成資金損失。

接口說明

適用對象:直連商戶

請求URL:該鏈接是通過商戶[創(chuàng)建支付分訂單]提交notify_url參數(shù),必須為https協(xié)議。如果鏈接無法訪問,商戶將無法接收到微信通知。 通知url必須為直接可訪問的url,不能攜帶參數(shù)。示例: “http://www.tg885.com/wxpay/pay.action”

通知規(guī)則

支付完成后,微信會把相關(guān)支付結(jié)果和訂單信息發(fā)送給商戶,商戶需要接收處理該消息,并返回應(yīng)答。

對后臺通知交互時,如果微信收到商戶的應(yīng)答不符合規(guī)范或超時,微信認為通知失敗,微信會通過一定的策略定期重新發(fā)起通知,盡可能提高通知的成功率,但微信不保證通知最終能成功。 (通知頻率為0s/15s/15s/30s/180s/1800s/1800s/1800s/1800s/3600s )

通知報文

支付結(jié)果通知是以POST 方法訪問商戶設(shè)置的通知url,通知的數(shù)據(jù)以JSON 格式通過請求主體(BODY)傳輸。通知的數(shù)據(jù)包括了加密的支付結(jié)果詳情。
(注:由于涉及到回調(diào)加密和解密,商戶必須先設(shè)置好apiv3密鑰后才能解密回調(diào)通知,apiv3密鑰設(shè)置文檔指引詳見APIv3密鑰設(shè)置指引

參數(shù)解密

下面詳細描述對通知數(shù)據(jù)進行解密的流程:

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

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

通知參數(shù)

參數(shù)名 變量 類型[長度限制] 必填 描述
通知ID id string[1,36] 通知的唯一ID
示例值:EV-2018022511223320873
通知創(chuàng)建時間 create_time string[1,32] 通知創(chuàng)建的時間,格式為yyyyMMddHHmmss(標(biāo)準(zhǔn)iso8601時間格式)
遵循rfc3339標(biāo)準(zhǔn)格式,格式為yyyy-MM-DDTHH:mm:ss+TIMEZONE,yyyy-MM-DD表示年月日,T出現(xiàn)在字符串中,表示time元素的開頭,HH:mm:ss.表示時分秒,TIMEZONE表示時區(qū)(+08:00表示東八區(qū)時間,領(lǐng)先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] 通知的類型,
授權(quán)成功通知的類型為PAYSCORE.USER_OPEN_SERVICE
解除授權(quán)成功通知的類型為PAYSCORE.USER_CLOSE_SERVICE
用戶確認成功通知的類型為PAYSCORE.USER_CONFIRM
支付成功通知的類型為PAYSCORE.USER_PAID
示例值:PAYSCORE.USER_PAID
通知數(shù)據(jù)類型 resource_type string[1,32] 通知的資源數(shù)據(jù)類型,授權(quán)/解除授權(quán)成功通知為encryptresource
示例值:encrypt-resource
+通知數(shù)據(jù) resource object 通知資源數(shù)據(jù)
json格式,見示例
參數(shù)名 變量 類型[長度限制] 必填 描述
加密算法類型 algorithm string[1,32] 對授權(quán)結(jié)果數(shù)據(jù)進行加密的加密算法,目前只支持AEAD_AES_256_GCM
示例值:AEAD_AES_256_GCM
數(shù)據(jù)密文 ciphertext string[1,1048576] Base64編碼后的授權(quán)/解除授權(quán)結(jié)果數(shù)據(jù)密文
附加數(shù)據(jù) associated_data string[1,16] 附加數(shù)據(jù)
隨機串 nonce string[1,16] 加密使用的隨機串
示例值:fdasflkja484w
回調(diào)摘要 summary string[1,64] 回調(diào)摘要
示例值:支付成功

通知簽名

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

回調(diào)示例

支付成功結(jié)果通知


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

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


{
    "appid": "wxd678efh567hg6787", 
    "mchid": "1230000109", 
    "out_order_no": "1234323JKHDFE1243252", 
    "service_id": "500001", 
    "openid": "oUpF8uMuAJO_M2pxb1Q9zNjWeS6o",
    "state": "DONE", 
    "total_amount": "40000", 
    "service_introduction": "嗨客餐廳用餐",
    "post_payments": [
        {
            "name": "服務(wù)費", 
            "amount": 40000, 
            "description": "每分鐘1元"
        }
    ], 
    "post_discounts": [
        {
            "name": "滿20減1元", 
            "amount": 1, 
            "description": "不與其他優(yōu)惠疊加"
        }
    ], 
    "risk_fund": {
        "name": "ESTIMATE_ORDER_COST", 
        "amount": 10000, 
        "description": "就餐的預(yù)估費用"
    }, 
    "time_range": {
        "start_time": "20091225091010", 
        "end_time": "20091225091210"
    }, 
    "location": {
        "start_location": "嗨客時尚主題展餐廳", 
        "end_location": "嗨客時尚主題展餐廳"
    }, 
    "attach": "attach", 
    "notify_url": "https://api.test.com",
    "order_id": "165461131",
    "need_collection": true, 
    "collection": {
        "state": "USER_PAID", 
        "total_amount": 40000, 
        "paying_amount": 40000, 
        "paid_amount": 0, 
        "details": [
          { 
			"seq": 1, 
			"amount": 10000, 
			"paid_type": "MCH", 
			"paid_time": "20091225091210", 
			"transaction_id": "15646546545165651651", 
			"promotion_detail":[
			    {
				  "coupon_id": "123456", 
				  "name": "單品優(yōu)惠-6", 
				  "scope": "GLOBAL", 
				  "type": "CASH", 
				  "amount": 100, 
				  "stock_id": "activity_id", 
				  "wechatpay_contribute": 100, 
				  "merchant_contribute": 100, 
				  "other_contribute": 0, 
				  "currency": "CNY", 
				  "goods_detail": [
						{
						  "goods_id": "M1006", 
						  "quantity": 1, 
						  "unit_price": 1, 
						  "discount_amount": 0, 
						  "goods_remark": "商品備注信息"
						}
				  ]
				}
			]
			  }
        ]
    }
}

支付成功通知參數(shù)

參數(shù)名 變量 類型[長度限制] 必填 描述
應(yīng)用ID appid string[1,32] 調(diào)用接口提交的公眾賬號ID
示例值:wxd678efh567hg6787
商戶號 mchid string[1,32] 調(diào)用接口提交的商戶號
示例值:1230000109
商戶服務(wù)訂單號 out_order_no string[1,32] 調(diào)用接口提交的商戶服務(wù)訂單號
示例值:1234323JKHDFE1243252
服務(wù)ID service_id string[1,32] 調(diào)用該接口提交的服務(wù)ID
示例值:500001
用戶標(biāo)識 openid string[1,128] 微信用戶在商戶對應(yīng)appid下的唯一標(biāo)識。
示例值:oUpF8uMuAJO_M2pxb1Q9zNjWeS6o
服務(wù)訂單狀態(tài) state string[1,32] 表示當(dāng)前單據(jù)狀態(tài)。
1、DONE:服務(wù)訂單完成
示例值:DONE
訂單狀態(tài)說明 state_description string[1,32] 對服務(wù)訂單"進行中"狀態(tài)的附加說明:
USER_CONFIRM:用戶確認
MCH_COMPLETE:商戶完結(jié)
示例值:MCH_COMPLETE
商戶收款總金額 total_amount int64 總金額,大于等于0的數(shù)字,單位為分,只能為整數(shù),詳見支付金額
此參數(shù)需滿足:總金額=后付費項目金額之和-后付費商戶優(yōu)惠項目金額之和,且小于等于訂單風(fēng)險金額。取消訂單時,該字段必須為0。
示例值:40000
服務(wù)信息 service_introduction string[1,20] 服務(wù)信息,用于介紹本訂單所提供的服務(wù)
不超過20個字符,超出報錯處理
示例值:嗨客餐廳用餐
+后付費項目 post_payments array 付費項目列表,最多包含100條付費項目
參數(shù)名 變量 類型[長度限制] 必填 描述
付費項目名稱 name string[1,20] 當(dāng)參數(shù)長度超過20個字符時,報錯處理
示例值:服務(wù)費
金額 amount int64 此付費項目總金額,大于等于0,單位為分,等于0時代表不需要扣費,只能為整數(shù),詳見支付金額
示例值:40000
計費說明 description string[1,30] 描述計費規(guī)則,當(dāng)參數(shù)長度超過30個字符時,報錯處理
示例值:每分鐘一元
付費數(shù)量 count int 付費項目的數(shù)量,大于等于1且小于等于100,不填默認為1
示例值:1
+后付費商戶優(yōu)惠 post_discounts array 商戶優(yōu)惠列表,最多包含5條商戶優(yōu)惠
參數(shù)名 變量 類型[長度限制] 必填 描述
優(yōu)惠名稱 name string[1,20] 優(yōu)惠名稱說明
示例值:滿20減1元
優(yōu)惠說明 description string[1,30] 大于等于0的數(shù)字,單位為分
示例值:1
優(yōu)惠金額 amount int64 優(yōu)惠金額,只能為整數(shù),詳見支付金額
示例值:100
+訂單風(fēng)險金 risk_fund object 訂單風(fēng)險金信息
參數(shù)名 變量 類型[長度限制] 必填 描述
風(fēng)險金名稱 name string[1,64] 枚舉值:
1、押金:DEPOSIT
2、預(yù)付款:ADVANCE
3、保證金:CASH_DEPOSIT
4、預(yù)估訂單費用:ESTIMATE_ORDER_COST
示例值:ESTIMATE_ORDER_COST
風(fēng)險金額 amount int64 1、整數(shù),必須>0(單位:分)
2、風(fēng)險金額≤每個服務(wù)ID的風(fēng)險金額上限。
3、當(dāng)商戶優(yōu)惠字段為空時,付費項目總金額≤風(fēng)險金額 (未填寫金額的付費項目,視為該付費項目金額為0)
示例值:10000
風(fēng)險說明 description string[1,30] 風(fēng)險說明,不超過30個字符
示例值:就餐的預(yù)估費用
+服務(wù)時間段 time_range object 服務(wù)使用時間范圍
參數(shù)名 變量 類型[長度限制] 必填 描述
服務(wù)開始時間 start_time string[1,14] 支持兩種格式:“yyyyMMddHHmmss”和“yyyyMMdd”。
1、傳入20091225091010表示2009年12月25日9點10分10秒
2、傳入20091225默認時間為2009年12月25日
根據(jù)傳入時間精準(zhǔn)度進行校驗
1、若傳入時間精準(zhǔn)到秒,則校驗精準(zhǔn)到秒。
2、若傳入時間精準(zhǔn)到日,則校驗精準(zhǔn)到日。
示例值:20091225091010
服務(wù)開始時間備注 start_time_remark string[1,20] 服務(wù)開始時間備注說明。
1、服務(wù)開始時間有填時,可填寫服務(wù)開始時間備注,不超過20個字符,超出報錯處理。
示例值:開始租借日期
服務(wù)結(jié)束時間 end_time string[1,14] 支持兩種格式:yyyyMMddHHmmss和yyyyMMdd
  1. 傳入20091225091010表示2009年12月25日9點10分10秒
  2. 傳入20091225默認時間為2009年12月25日
根據(jù)傳入時間精準(zhǔn)度進行校驗
1、若傳入時間精準(zhǔn)到秒,則校驗精準(zhǔn)到秒。
2、若傳入時間精準(zhǔn)到日,則校驗精準(zhǔn)到日。
示例值:20091225121010
服務(wù)結(jié)束時間備注 end_time_remark string[1,20] 服務(wù)結(jié)束時間備注說明。
1、服務(wù)結(jié)束時間有填時,可填寫服務(wù)結(jié)束時間備注,不超過20個字符,超出報錯處理。
示例值:結(jié)束租借日期
+服務(wù)位置 location object 服務(wù)使用位置信息
參數(shù)名 變量 類型[長度限制] 必填 描述
服務(wù)開始地點 start_location string[1,20] 開始使用服務(wù)的地點,當(dāng)參數(shù)長度超出20個字符時,報錯處理;
示例值:嗨客時尚主題展餐廳
服務(wù)結(jié)束位置 end_location string[1,20] 預(yù)計服務(wù)結(jié)束的地點,用戶下單時未確認服務(wù)結(jié)束地點時,可不填寫。當(dāng)參數(shù)長度超出20個字符時,報錯處理
示例值:嗨客時尚主題展餐廳
商戶數(shù)據(jù)包 attach string[1,200] 商戶數(shù)據(jù)包可存放本訂單所需信息,需要先urlencode后傳入。
當(dāng)商戶數(shù)據(jù)包總長度超出256字符時,報錯處理。
示例值:attach
商戶回調(diào)地址 notify_url string[1,255] query商戶接收用戶確認訂單和付款成功回調(diào)通知的地址。
示例值:https://api.test.com
微信支付服務(wù)訂單號 order_id string[1,64] 微信支付服務(wù)訂單號,每個微信支付服務(wù)訂單號與商戶號下對應(yīng)的商戶服務(wù)訂單號一一對應(yīng)
示例值:15646546545165651651
是否需要收款 need_collection bool 是否需要收款,非0元完結(jié)后返回
true:微信支付分代收款
false:無需微信支付分代收款
示例值:false
+收款信息 collection object 收款信息,非0元完結(jié)后返回
參數(shù)名 變量 類型[長度限制] 必填 描述
收款狀態(tài) state string[1,32] USER_PAYING:待支付
USER_PAID:已支付
示例值:USER_PAID
總收款金額 total_amount int64 總金額,大于等于0的數(shù)字,單位為分,只能為整數(shù),詳見支付金額
此參數(shù)需滿足:總金額=付費項目金額之和-商戶優(yōu)惠項目金額之和,且小于等于訂單風(fēng)險金額 。取消訂單時,該字段必須為0。
示例值:10000
待收金額 paying_amount int64 等待用戶付款金額,只能為整數(shù),詳見支付金額
示例值:10000
已收金額 paid_amount int64 用戶已付款的金額,只能為整數(shù),詳見支付金額
示例值:0
+收款明細列表 details array 收款明細列表
參數(shù)名 變量 類型[長度限制] 必填 描述
收款序號 seq int 從1開始遞增
示例值:1
單筆收款金額 amount int64 單筆收款動作的金額,只能為整數(shù),詳見支付金額
示例值:10000
收款成功渠道 paid_type string[1,32] 收款成功渠道
NEWTON:微信支付分
MCH:商戶渠道
示例值:MCH
收款成功時間 paid_time string[1,14] 支持兩種格式:yyyyMMddHHmmss和yyyyMMdd
  1. 傳入20091225091010表示2009年12月25日9點10分10秒
  2. 傳入20091225默認時間為2009年12月25日0點0分0秒
示例值:20091225091210
微信支付交易單號 transaction_id string[1,200] 結(jié)單交易單號,等于普通支付接口中的transaction_id,可以使用該訂單號在APP支付->API列表->查詢訂單申請退款。只有單據(jù)狀態(tài)為USER_PAID,且收款成功渠道為支付分渠道,收款金額大于0,才會返回結(jié)單交易單號。
示例值:15646546545165651651
+ 優(yōu)惠功能 promotion_detail array 優(yōu)惠功能
注:針對2020年5月27日10:00:00以后完結(jié)的訂單生效
參數(shù)名 變量 類型[長度限制] 必填 描述
券ID coupon_id string[1,32] 券ID
示例值:123456
優(yōu)惠名稱 name string[1,64] 優(yōu)惠名稱
示例值:單品優(yōu)惠-6
優(yōu)惠范圍 scope string[1,12] GLOBAL:全場代金券;
SINGLE:單品優(yōu)惠
示例值:GLOBAL
優(yōu)惠類型 type string[1,12] 枚舉值:CASH:充值;
NOCASH:免充值。
示例值:CASH
優(yōu)惠券面額 amount int64 優(yōu)惠券面額
示例值:100
活動ID stock_id string[1,32] 活動ID,批次ID
示例值:activity_id
微信出資 wechatpay_contribute int64 微信出資
示例值:100
商戶出資 merchant_contribute int64 商戶出資
示例值:100
其他出資 other_contribute int64 其他出資
示例值:0
優(yōu)惠幣種 currency string CNY:人民幣,境內(nèi)商戶號僅支持人民幣
示例值:CNY
+ 單品列表 goods_detail array 單品列表
參數(shù)名 變量 類型[長度限制] 必填 描述
商品編碼 goods_id string[1,32] 商品編碼
示例值:M1006
商品數(shù)量 quantity uint32 商品數(shù)量
示例值:1
商品價格 unit_price int64 商品價格
示例值:1
商品優(yōu)惠金額 discount_amount int64 商品優(yōu)惠金額
示例值:0
商品備注 goods_remark string[1,128] 商品備注
示例值:商品備注信息

通知應(yīng)答

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

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


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


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



技術(shù)咨詢

文檔反饋