W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
與 第三方應(yīng)用授權(quán) 場(chǎng)景下由 ISV 主動(dòng)引導(dǎo)商戶進(jìn)行授權(quán)流程不同,小程序插件場(chǎng)景下的授權(quán)動(dòng)作由商戶在服務(wù)市場(chǎng)的訂購(gòu)行為觸發(fā)。在商戶訂購(gòu)后支付寶服務(wù)端會(huì)通過(guò) Http 協(xié)議發(fā)送一個(gè)授權(quán)消息到三方應(yīng)用所配置的插件應(yīng)用,該授權(quán)主要為應(yīng)用網(wǎng)關(guān)配送。請(qǐng)按照本文的要求正確處理該通知,處理完后請(qǐng)參見(jiàn) 插件后端開(kāi)發(fā) 獲取 app_auth_token。
注意:實(shí)際收到的是 POST 請(qǐng)求,參數(shù)在 Post Body 中。
ISV_GATEWAY_URL?****&Data={"headers":{"User-Agent":"Mozilla/4.0","Content-Type":"application/x-www-form-urlencoded; charset=UTF-8"},"data":{"notify_type":"open_app_auth_notify","charset":"UTF-8","biz_content":"{\\"notify_context\\":{\\"trigger\\":\\"appstore\\"},\\"detail\\":{\\"app_auth_token\\":\\"202004BB9d3901a7d39d4350a49fb00000000001\\",\\"user_id\\":\\"20881200000000002\\",\\"re_expires_in\\":32140800,\\"auth_time\\":1587573752655,\\"app_refresh_token\\":\\"202004BB81e2730b7ecc4295a551e00000000001\\",\\"auth_app_id\\":\\"20210000002\\",\\"app_id\\":\\"20190000000\\",\\"expires_in\\":31536000,\\"app_auth_code\\":\\"fa861f9d7032404bae53f54247000001\\"},\\"error\\":{}}","notify_time":"2020-04-23 00:42:32","sign":"****","auth_app_id":"2021000000000002","app_id":"2019000000000000","version":"1.0","sign_type":"RSA2","notify_id":"2020042300222004232009800000000007","status":"execute_auth"},"method":"POST","pid":"2088500000000002","url":"https://*****/gateway.do","timeout":16000}
字段名 | 必填 | 字段說(shuō)明 | 備注 |
---|---|---|---|
notify_id | 是 | 通知校驗(yàn) ID,唯一標(biāo)識(shí)一筆通知 | 相同 notify_id 稱之為同一筆通知 |
notify_type | 是 | 通知類型 | 插件授權(quán)時(shí)的值固定為:open_app_auth_notify |
status | 否 | 業(yè)務(wù)狀態(tài) | 插件授權(quán)時(shí)值固定為:execute_auth |
notify_time | 是 | 通知發(fā)送時(shí)間 | UTC+8,格式為 yyyy-MM-dd HH:mm:ss。若為其它時(shí)區(qū)的服務(wù)器時(shí)間請(qǐng)自行轉(zhuǎn)換 |
charset | 是 | 字符集 | 該字符集用于開(kāi)發(fā)者對(duì)收到的報(bào)文進(jìn)行驗(yàn)簽使用 |
version | 是 | 版本號(hào) | 目前固定為 1.0,商戶僅應(yīng)該識(shí)別 version 參數(shù)為空或者 version=1.0 的通知報(bào)文,其它應(yīng)該拒絕 |
app_id | 是 | 接收通知的 app_id | 該 app_id 是本消息的接收方。 |
auth_app_id | 否 | 授權(quán)業(yè)務(wù)主體的 appId | 在插件授權(quán)場(chǎng)景下無(wú)此參數(shù),開(kāi)發(fā)者不用關(guān)心 |
sign | 是 | 簽名 | 支付寶的簽名值 |
sign_type | 是 | 簽名類型 | 簽名算法,目前支持 RSA2 簽名算法。注意,該參數(shù)不參與驗(yàn)簽。 |
biz_content | 是 | 該筆通知的業(yè)務(wù)內(nèi)容 | 本次授權(quán)動(dòng)作的詳細(xì)信息。詳細(xì)說(shuō)明參見(jiàn)下文對(duì)于 biz_content 的說(shuō)明 |
示例如下(為了展示方便,示例對(duì) JSON 展示進(jìn)行了格式化處理)
"data":
{"notify_type":"open_app_auth_notify",
"charset":"UTF-8",
"biz_content":"{
\\"notify_context\\":{\\"trigger\\":\\"appstore\\"},
\\"detail\\":{
\\"app_auth_token\\":\\"202004BB9d3901a7d39d4350a49fb00000000001\\",
\\"user_id\\":\\"20881200000000002\\",
\\"re_expires_in\\":32140800,
\\"auth_time\\":1587573752655,
\\"app_refresh_token\\":\\"202004BB81e2730b7ecc4295a551e00000000001\\",
\\"auth_app_id\\":\\"20210000002\\",
\\"app_id\\":\\"20190000000\\",
\\"expires_in\\":31536000,
\\"app_auth_code\\":\\"fa861f9d7032404bae53f54247000001\\"
},
\\"error\\":{}
}",
"notify_time":"2020-04-23 00:42:32",
"sign":"****","auth_app_id":"2021000000000002",
"app_id":"2019000000000000",
"version":"1.0",
"sign_type":"RSA2",
"notify_id":"2020042300222004232009800000000007",
"status":"execute_auth"
}
參數(shù)名 | 類型 | 最大長(zhǎng)度 | 必填 | 描述 | 范例 |
---|---|---|---|---|---|
app_id | String | 32 | 是 | 被授權(quán)方應(yīng)用 id,在插件授權(quán)場(chǎng)景下為插件的 ID。 | 2015072100001111 |
auth_app_id | String | 32 | 是 | 授權(quán)方的應(yīng)用 id,在插件授權(quán)場(chǎng)景下指商戶的 app_id。 | 2014072300002222 |
auth_time | String | 20 | 是 | 授權(quán)發(fā)生時(shí)間(自1970年1月1日零點(diǎn)算起的毫秒數(shù)),在插件授權(quán)場(chǎng)景下指商戶訂購(gòu)時(shí)觸發(fā)授權(quán)的時(shí)間。通知接受方需要根據(jù)auth_time 做令牌冪等。 |
1491746302568 |
app_auth_code | String | 32 | 是 | (兼容用)應(yīng)用授權(quán)碼,該參數(shù)提供給開(kāi)發(fā)者用于兼容開(kāi)發(fā)者頁(yè)面授權(quán)的換碼邏輯,新接入方推薦直接使用報(bào)文中的 app_auth_token 即可。 | 252a889e49af4e6cbtests17ae053X80 |
app_auth_token | String | 40 | 是 | 應(yīng)用授權(quán)令牌。 | 201603BB6e8df928test473d9d4c94d57d5c0X00 |
expires_in | String | 16 | 是 | (廢棄字段)目前應(yīng)用授權(quán)訪問(wèn)令牌的有效期為永久(商戶主動(dòng)取消授權(quán)的情況下仍未將令牌置為無(wú)效)。刷新機(jī)制繼續(xù)保留,開(kāi)發(fā)者根據(jù)自己的存儲(chǔ)安全性自行決定刷新時(shí)間。 | 123456 |
app_refresh_token | String | 40 | 是 | 刷新令牌。開(kāi)發(fā)者可以通過(guò)調(diào)用 alipay.open.auth.token.app 接口進(jìn)行 app_auth_token 的刷新。 | 201603BBdeb7d0ab1testbe898432a6490dfbX00 |
re_expires_in | String | 16 | 是 | (廢棄字段)目前應(yīng)用授權(quán)的刷新令牌有效期為永久(商戶主動(dòng)取消授權(quán)的情況下仍未將令牌置為無(wú)效)。 | 123456 |
user_id | String | 16 | 是 | 授權(quán)商戶的 user_id。 | 授權(quán)商戶的 user_id |
agent_app_id | String | 32 | 否 | 三方應(yīng)用 id。插件授權(quán)的場(chǎng)景下有值,是插件歸屬的三方應(yīng)用的 ID。 | 2014072300003333 |
參數(shù)名 | 類型 | 最大長(zhǎng)度 | 必填 | 描述 | 范例 |
---|---|---|---|---|---|
trigger | String | 30 | 是 | 授權(quán)觸發(fā)環(huán)境,插件訂購(gòu)場(chǎng)景下為 appstore,開(kāi)發(fā)者無(wú)需關(guān)注 | appstore |
trigger_context | String | 1000 | 否 | trigger_contexttrigger 相關(guān)聯(lián)的上下文,開(kāi)發(fā)者無(wú)需關(guān)注 | 目前值為空 |
參數(shù)名 | 類型 | 最大長(zhǎng)度 | 必填 | 描述 | 范例 |
---|---|---|---|---|---|
appstore_online_pay | String | 20 | 否 | 特殊情況下的錯(cuò)誤信息,大部分開(kāi)發(fā)者無(wú)需關(guān)心。若 ISV 簽約了“在線購(gòu)買(mǎi)/口碑商品”產(chǎn)品且該產(chǎn)品的授權(quán)前置條件不滿足則會(huì)有該值。 | LACK_FACE_TO_FACE |
錯(cuò)誤碼 | ISV | ISV 該怎么做 |
---|---|---|
FAIL | 系統(tǒng)錯(cuò)誤,由于未知原因?qū)е碌南到y(tǒng)錯(cuò)誤 | 建議聯(lián)系引導(dǎo)商戶重新授權(quán)解決來(lái)解決 |
UNEXPECTED_CERTIFY_GRADE | 商戶的個(gè)人認(rèn)證等級(jí)不夠 | 通知聯(lián)系引導(dǎo)商戶完成實(shí)名認(rèn)證,再重新授權(quán)。注:個(gè)人用戶完成個(gè)人實(shí)名認(rèn)證,企業(yè)用戶完成企業(yè)實(shí)名認(rèn)證。 |
MERCHANT_DISCARD | 商戶已經(jīng)被清退;被清退的商戶無(wú)法進(jìn)行簽約和發(fā)布商品 | - |
LACK_FACE_TO_FACE | 商戶未簽約當(dāng)面付 | 建議聯(lián)系引導(dǎo)商戶完成口碑開(kāi)店流程之后,再重新授權(quán) |
授權(quán)主體表示授權(quán)令牌的參與方,區(qū)別于第三方應(yīng)用授權(quán)的授權(quán)主體(授權(quán)關(guān)系建立在商戶 app_id 和三方應(yīng)用的 app_id 的二者),插件授權(quán)的授權(quán)主體新增了插件維度的信息,即:商戶 app_id、 三方應(yīng)用 app_id 和插件 ID 三者之間的授權(quán)關(guān)系。開(kāi)發(fā)者保存插件授權(quán)令牌的情況下特別需要注意以下幾點(diǎn):
1.消息處理 插件授權(quán)消息為老版本的開(kāi)放平臺(tái)消息,通過(guò)以下方式確認(rèn)為插件授權(quán)消息(同時(shí)滿足以下條件)。
2.授權(quán)消息的最終一致性
考慮下述原因,若 授權(quán)主體 一致,開(kāi)發(fā)者需要根據(jù) auth_time 保證令牌的最終一致性。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: