簽約、解約結(jié)果通知
應(yīng)用場景
簽約、解約成功后(不成功不通知),微信會把相關(guān)簽約、解約信息異步通知給商戶。商戶在收到結(jié)果通知后,需馬上應(yīng)答。
對后臺通知交互時,如果微信收到商戶的應(yīng)答不是成功或超時,微信認為通知失敗,微信會通過一定的策略定期重新發(fā)起通知,盡可能提高通知的成功率,但微信不保證通知最終能成功。
(通知頻率為:15s/15s/30s/3m/10m/20m/30m/30m/30m/60m/3h/3h/3h/6h/6h - 總計 24h4m)
由于存在重新發(fā)送后臺通知的情況,因此同樣的通知可能會多次發(fā)送給商戶系統(tǒng)。商戶系統(tǒng)必須能夠正確處理重復(fù)的通知。
推薦的做法是,當收到通知進行處理時,首先檢查對應(yīng)業(yè)務(wù)數(shù)據(jù)的狀態(tài),判斷該通知是否已經(jīng)處理過,如果沒有處理過再進行處理,如果處理過直接返回結(jié)果成功。在對業(yè)務(wù)數(shù)據(jù)進行狀態(tài)檢查和處理之前,要采用數(shù)據(jù)鎖進行并發(fā)控制,以避免函數(shù)重入造成的數(shù)據(jù)混亂。
接口鏈接
簽約結(jié)果通知路徑為簽約接口商戶上傳的notify_url字段,解約結(jié)果通知路徑為商戶配置委托扣款模板ID時填寫的解約回調(diào)地址。
通知參數(shù)
字段名 | 變量名 | 必填 | 示例值 | 類型 | 說明 |
---|---|---|---|---|---|
返回狀態(tài)碼 |
return_code |
是 |
SUCCESS |
String(16) |
SUCCESS/FAIL |
返回信息 |
return_msg |
否 |
簽名失敗 |
String(128) |
返回信息,如非空,為錯誤原因 |
以下字段在return_code為SUCCESS的時候返回 | |||||
業(yè)務(wù)結(jié)果 |
result_code |
是 |
SUCCESS |
String(16) |
SUCCESS/FAIL |
以下字段在return_code 和result_code都為SUCCESS的時候有返回 | |||||
商戶號 |
mch_id |
是 |
10000098 |
String(32) |
微信支付分配的商戶號 |
子商戶號 | sub_mch_id | 是 |
1900000109 | String(32) | 微信支付分配的子商戶號 |
簽約協(xié)議號 |
contract_code |
是 |
100001256 |
String |
簽約協(xié)議號 |
模板id |
plan_id |
是 |
123 |
String |
協(xié)議模板id |
用戶標識 |
openid |
是 |
onqOjjmM1tad-3ROpncN-yUfa6ua |
String(32) |
Appid下,用戶的唯一標識 |
用戶子標識 | sub_openid | 否 |
oUpF8uMuAJO_M2pxb1Q9zNjWeS6o | String(32) | sub_appid下,用戶的唯一標識 |
簽名 |
sign |
是 |
C380BEC2BFD727A4B6845133519F3AD6 |
String(32) |
詳見簽名生成算法 |
變更類型 |
change_type |
是 |
ADD |
String(32) |
ADD--簽約 |
操作時間 |
operate_time |
是 |
2015-07-01 10:00:00 |
String |
操作時間 |
委托代扣協(xié)議id |
contract_id |
是 |
Wx15463511252015071056489715 |
String(32) |
簽約成功后,微信返回的委托代扣協(xié)議id |
協(xié)議到期時間 |
contract_expired_time |
否 |
2016-07-01 10:00:00 |
String |
協(xié)議到期時間,當change_type為ADD時有返回 |
協(xié)議解約方式 |
contract_termination_mode |
否 |
3 |
int |
當change_type為DELETE時有返回 |
請求序列號 |
request_serial |
是 |
1695 |
String |
商戶請求簽約時的序列號,商戶側(cè)須唯一 ,純數(shù)字。長度不超過12位 |
示例:
<xml>
<return_code><![CDATA[SUCCESS]]></return_code>
<result_code><![CDATA[SUCCESS]]></result_code>
<sign><![CDATA[C380BEC2BFD727A4B6845133519F3AD6]]></sign>
<mch_id>10010404</mch_id>
<sub_mch_id>10010405</sub_mch_id>
<contract_code>100001256</contract_code>
<openid><![CDATA[onqOjjmM1tad-3ROpncN-yUfa6ua]]></openid>
<plan_id><![CDATA[123]]></plan_id>
<change_type><![CDATA[ADD]]></change_type>
<operate_time><![CDATA[2015-07-01 10:00:00]]></operate_time>
<contract_id><![CDATA[Wx15463511252015071056489715]]></contract_id>
</xml>
商戶需返回參數(shù)
如果商戶側(cè)未返回正確的內(nèi)容,微信會多次通知,為了避免給商戶服務(wù)器造成過大的壓力,請在得到微信簽約結(jié)果通知之后,返回以下內(nèi)容。(請求方式:post)
字段名 | 變量名 | 必填 | 示例值 | 類型 | 說明 |
---|---|---|---|---|---|
返回狀態(tài)碼 |
return_code |
是 |
SUCCESS |
String(16) |
SUCCESS/FAIL |
返回信息 |
return_msg |
否 |
OK |
String(32) |
返回信息,如非空,為錯誤原因 |
商戶返回示例:
? <return_code><![CDATA[SUCCESS]]></return_code>
<return_msg><![CDATA[OK]]></return_msg>
</xml>
如果商戶側(cè)配置了防火墻,需要對商戶回調(diào)通知功能開通下面白名單網(wǎng)段:
101.226.233.128/25