视频一区二区三区自拍_千金肉奴隷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

最新更新時間:2019.12.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)對于開啟結(jié)果通知的內(nèi)容一定要做簽名驗證,并校驗通知的信息是否與商戶側(cè)的信息一致,防止數(shù)據(jù)泄露導(dǎo)致出現(xiàn)“假通知”,造成資金損失。

接口說明

適用對象:直連商戶

請求URL:該鏈接是通過[設(shè)置消息通知地址]提交notify_url設(shè)置,必須為https協(xié)議。如果鏈接無法訪問,商戶將無法接收到微信通知。 通知url必須為直接可訪問的url,不能攜帶參數(shù)。示例: “http://www.tg885.com/wxpay/pay.action”

通知規(guī)則

用戶使用券后,微信會把相關(guān)核銷券信息發(fā)送給商戶,商戶需要接收處理,并按照文檔規(guī)范返回應(yīng)答。出于安全的考慮,我們對核銷券信息數(shù)據(jù)進行了加密,商戶需要先對通知數(shù)據(jù)進行解密,才能得到核銷券信息數(shù)據(jù)。

對后臺通知交互時,如果微信收到應(yīng)答不是成功或超時,微信認為通知失敗,微信會通過一定的策略定期重新發(fā)起通知,盡可能提高通知的成功率,但微信不保證通知最終能成功。(通知頻率為1min1次,總計9次)

通知報文

核銷券信息通知是以POST 方法訪問商戶設(shè)置的通知url,通知的數(shù)據(jù)以JSON 格式通過請求主體(BODY)傳輸。通知的數(shù)據(jù)包括了加密的核銷券信息詳情。

參數(shù)解密

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

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

注: AEAD_AES_256_GCM算法的接口細節(jié),請參考rfc5116。微信支付使用的密鑰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)建的時間, 遵循rfc3339標準格式,格式為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] 通知的類型,代金券用券回調(diào)通知的類型為COUPON.USE。
示例值:COUPON.USE
通知數(shù)據(jù)類型 resource_type string[1,32] 通知的資源數(shù)據(jù)類型,代金券用券回調(diào)通知為encrypt-resource。
示例值:encrypt-resource
回調(diào)摘要 summary string[1,62] 回調(diào)摘要
示例值:用券成功
+通知數(shù)據(jù) resource object 通知資源數(shù)據(jù)。
json格式,見示例
參數(shù)名 變量 類型[長度限制] 必填 描述
加密算法類型 algorithm string[1,32] 對開啟結(jié)果數(shù)據(jù)進行加密的加密算法,目前只支持AEAD_AES_256_GCM。
示例值:AEAD_AES_256_GCM
數(shù)據(jù)密文 ciphertext string[1,1048576] Base64編碼后的開啟/停用結(jié)果數(shù)據(jù)密文。
附加數(shù)據(jù) associated_data string[1,16] 附加數(shù)據(jù)
隨機串 nonce string[1,16] 加密使用的隨機串。
示例值:fdasflkja484w
原始回調(diào)類型 original_type string[1,64] 原始回調(diào)類型,券的原始回調(diào)類型為coupon
示例值:coupon

通知簽名

加密不能保證通知請求來自微信。微信會對發(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":"COUPON.USE", 
     "summary": "支付成功", 
     "resource" : { 
         "original_type": "coupon", 
         "algorithm":"AEAD_AES_256_GCM", 
         "ciphertext": "...", 
         "nonce": "...", 
         "associated_data": "", 
     } 
} 

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


{ 
   "stock_creator_mchid": "9800064", 
   "stock_id": "9865888", 
   "coupon_id": "98674556",
   "singleitem_discount_off": { 
     "single_price_max": 100 
   }, 
   "discount_to": { 
     "cut_to_price": 100, 
     "max_price": 10 
   }, 
   "coupon_name": "微信支付代金券", 
   "status": "EXPIRED", 
   "description": "微信支付營銷", 
   "create_time": "2015-05-20T13:29:35+08:00", 
   "coupon_type": "CUT_TO", 
   "no_cash": true, 
   "available_begin_time": "2015-05-20T13:29:35+08:00", 
   "available_end_time": "2015-05-20T13:29:35+08:00", 
   "singleitem": true, 
   "normal_coupon_information": { 
     "coupon_amount": 100, 
     "transaction_minimum": 100 
   }, 
   "consume_information": { 
     "consume_time": "2015-05-20T13:29:35+08:00", 
     "consume_mchid": "9856081", 
     "transaction_id": "4200752501201407033233368018", 
     "goods_detail": [ 
       { 
         "goods_id": "a_goods1", 
         "quantity": 7, 
         "price": 1, 
         "discount_amount": 4 
       } 
     ] 
   } 
}

核銷券通知參數(shù)

參數(shù)名 變量 類型[長度限制] 必填 描述
創(chuàng)建批次的商戶號 stock_creator_mchid string[1,20] 批次創(chuàng)建方商戶號。
示例值:9800064
批次號 stock_id string[1,20] 微信為每個代金券批次分配的唯一id。
示例值:9865888
代金券id coupon_id string[1,20] 微信為代金券唯一分配的id。
示例值:98674556
+單品優(yōu)惠特定信息 singleitem_discount_off object 單品優(yōu)惠特定信息。
參數(shù)名 變量 類型[長度限制] 必填 描述
單品最高優(yōu)惠價格 single_price_max int64 單品最高優(yōu)惠價格,單位:分。
示例值:100
+減至優(yōu)惠特定信息 discount_to object 減至優(yōu)惠限定字段,僅減至優(yōu)惠場景有返回。
參數(shù)名 變量 類型[長度限制] 必填 描述
減至后優(yōu)惠單價 cut_to_price int64 減至后優(yōu)惠單價,單位:分。
示例值:100
最高價格 max_price int64 可享受優(yōu)惠的最高價格,單位:分。
示例值:20
代金券名稱 coupon_name string[1,20] 代金券名稱
示例值:微信支付代金券
代金券狀態(tài) status string[1,16]
代金券狀態(tài):
SENDED:可用
USED:已實扣
EXPIRED:已過期
示例值:EXPIRED
代金券描述 description string[1,3000] 代金券描述說明字段。
示例值:微信支付營銷
領(lǐng)券時間 create_time string[1,32] 領(lǐng)券時間,遵循rfc3339標準格式,格式為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.120+08:00表示,北京時間2015年5月20日 13點29分35秒。
示例值:2015-05-20T13:29:35+08:00
券類型 coupon_type string[1,16]
NORMAL:滿減券
CUT_TO:減至券
示例值:CUT_TO
是否無資金流 no_cash bool true:是
false:否
示例值:true
可用開始時間 available_begin_time string[1,32] 可用開始時間,遵循rfc3339標準格式,格式為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年5月20日 13點29分35秒。
示例值:2015-05-20T13:29:35+08:00
可用結(jié)束時間 available_end_time string[1,32] 可用結(jié)束時間,遵循rfc3339標準格式,格式為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年5月20日 13點29分35秒。
示例值:2015-05-20T13:29:35+08:00
是否單品優(yōu)惠 singleitem bool true:是
false:否
示例值:true
+普通滿減券信息 normal_coupon_information object 普通滿減券面額、門檻信息。
參數(shù)名 變量 類型[長度限制] 必填 描述
面額 coupon_amount int64 面額,單位:分。
示例值:100
門檻 transaction_minimum int64 使用券金額門檻,單位:分。
示例值:100
+實扣代金券信息 consume_information object 已實扣代金券信息。
參數(shù)名 變量 類型[長度限制] 必填 描述
核銷時間 consume_time string[1,32] 代金券核銷時間,遵循rfc3339標準格式,格式為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年5月20日 13點29分35秒。
示例值:2015-05-20T13:29:35+08:00
核銷商戶號 consume_mchid string[1,20] 核銷代金券的商戶號。
校驗規(guī)則:
該參數(shù)目前現(xiàn)在返回的是收款商戶號,間連模式下,目前傳的是銀聯(lián)和網(wǎng)聯(lián)的商戶號
如果需要知道核銷的二級商戶號,可以在下載核銷明細API里查詢看到

示例值:9856081
核銷訂單號 transaction_id string[1,32]
微信支付系統(tǒng)生成的訂單號
示例值:4200752501201407033233368018
+單品信息 goods_detail array 商戶下單接口傳的單品信息。
參數(shù)名 變量 類型[長度限制] 必填 描述
單品編碼 goods_id string[1,128] 單品券創(chuàng)建時錄入的單品編碼。
示例值:a_goods1
單品數(shù)量 quantity int 單品數(shù)據(jù)
示例值:7
單品單價 price int 單品單價
示例值:1
優(yōu)惠金額 discount_amount int 優(yōu)惠金額
示例值:4

通知應(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ù)咨詢

文檔反饋