W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎勵
TIPS:針對使用條件是“無”的功能(使用條件可在應(yīng)用詳情頁的功能信息頁查看),只需要開發(fā)者在應(yīng)用中添加對應(yīng)功能,并獲得商戶授權(quán)即可(例如“支付寶卡券”)
要在您的應(yīng)用中使用支付寶開放產(chǎn)品的接口能力,您需要先去螞蟻金服開放平臺(open.alipay.com ),在開發(fā)者中心中創(chuàng)建登記您的應(yīng)用,并提交審核,審核通過后會為您生成應(yīng)用唯一標(biāo)識(APPID),并且可以申請開通開放產(chǎn)品使用權(quán)限,通過APPID您的應(yīng)用才能調(diào)用開放產(chǎn)品的接口能力。需要詳細(xì)了解開放平臺創(chuàng)建應(yīng)用步驟請參考《開放平臺應(yīng)用創(chuàng)建指南 》。
開發(fā)者調(diào)用接口前需要先生成RSA密鑰,RSA密鑰包含應(yīng)用私鑰(APP_PRIVATE_KEY)、應(yīng)用公鑰(APP_PUBLIC_KEY)。生成密鑰后在開放平臺開發(fā)者中心進(jìn)行密鑰配置,配置完成后可以獲取支付寶公鑰(ALIPAY_PUBLIC_KEY)。詳情請參考《配置應(yīng)用環(huán)境 》。
拼接規(guī)則:
https://openauth.alipay.com/oauth2/appToAppAuth.htm?app_id=2015101400446982&redirect_uri=http%3A%2F%2Fexample.com
TIPS:沙箱拼接規(guī)則詳見關(guān)于沙箱 。
參數(shù)說明:
參數(shù) | 參數(shù)名稱 | 類型 | 必填 | 描述 | 范例 |
---|---|---|---|---|---|
app_id | 開發(fā)者應(yīng)用的AppId | String | 是 | 開發(fā)者應(yīng)用的AppId | 2015101400446982 |
redirect_uri | 回調(diào)頁面 | String | 是 | 參數(shù)需要UrlEncode | http%3A%2F%2Fexample.com |
TIPS:授權(quán)鏈接中配置的redirect_uri內(nèi)容需要與應(yīng)用中配置的授權(quán)回調(diào)地址完全一樣,否則無法正常授權(quán)。
使用場景舉例:
商戶使用開發(fā)者提供的應(yīng)用授權(quán)鏈接在PC端進(jìn)行應(yīng)用授權(quán)
商戶使用開發(fā)者提供的應(yīng)用授權(quán)鏈接在手機(jī)端進(jìn)行應(yīng)用授權(quán)
注:H5授權(quán)頁只能在支付寶錢包里使用,否則會報(bào)錯,如下:
商戶授權(quán)成功后,pc或者錢包客戶端會跳轉(zhuǎn)至開發(fā)者定義的回調(diào)頁面(即redirect_uri參數(shù)對應(yīng)的url),在回調(diào)頁面請求中會帶上當(dāng)次授權(quán)的授權(quán)碼app_auth_code和開發(fā)者的app_id,示例如下:
http://example.com/doc/toAuthPage.html?app_id=2015101400446982&app_auth_code=ca34ea491e7146cc87d25fca24c4cD11
接口名稱:alipay.open.auth.token.app
開發(fā)者通過app_auth_code可以換取app_auth_token、授權(quán)商戶的userId以及授權(quán)商戶AppId。
注意:應(yīng)用授權(quán)的app_auth_code唯一的;app_auth_code使用一次后失效,一天(從生成app_auth_code開始的24小時(shí))未被使用自動過期; app_auth_token有效期為365天,刷新后重新計(jì)時(shí)。
請求參數(shù)說明
參數(shù) | 參數(shù)名稱 | 類型 | 必填 | 描述 | 范例 |
---|---|---|---|---|---|
grant_type | 授權(quán)類型 | String | 是 | 如果使用app_auth_code換取token,則為authorization_code,如果使用refresh_token換取新的token,則為refresh_token | authorization_code |
code | 授權(quán)碼 | String | 否 | 與refresh_token二選一,用戶對應(yīng)用授權(quán)后得到,即第一步中開發(fā)者獲取到的app_auth_code值 | bf67d8d5ed754af297f72cc482287X62 |
refresh_token | 刷新令牌 | String | 否 | 與code二選一,可為空,刷新令牌時(shí)使用 | 201510BB0c409dd5758b4d939d4008a525463X62 |
接口請求示例: 請先閱讀SDK接入說明
AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", APP_ID, APP_PRIVATE_KEY, "json", CHARSET, ALIPAY_PUBLIC_KEY, "RSA2");
AlipayOpenAuthTokenAppRequest request = new AlipayOpenAuthTokenAppRequest();
request.setBizContent("{" +
" \"grant_type\":\"authorization_code\"," +
" \"code\":\"1cc19911172e4f8aaa509c8fb5d12F56\"" +
" }");
AlipayOpenAuthTokenAppResponse response = alipayClient.execute(request);
同步響應(yīng)參數(shù)說明
參數(shù) | 參數(shù)名稱 | 類型 | 必填 | 描述 | 范例 |
---|---|---|---|---|---|
app_auth_token | 商戶授權(quán)令牌 | String | 是 | 通過該令牌來幫助商戶發(fā)起請求,完成業(yè)務(wù) | 201510BBaabdb44d8fd04607abf8d5931ec75D84 |
user_id | 授權(quán)商戶的ID | String | 是 | 授權(quán)者的PID | 2088011177545623 |
auth_app_id | 授權(quán)商戶的AppId | String | 是 | 授權(quán)商戶的AppId(如果有服務(wù)窗,則為服務(wù)窗的AppId) | 2013111800001989 |
expires_in | 令牌有效期 | Number | 是 | 交換令牌的有效期,單位秒,換算成天的話為365天 | 31536000 |
re_expires_in | 刷新令牌有效期 | Number | 是 | 刷新令牌有效期,單位秒,換算成天的話為372天 | 32140800 |
app_refresh_token | 刷新令牌時(shí)使用 | String | 是 | 刷新令牌后,我們會保證老的app_auth_token從刷新開始10分鐘內(nèi)可繼續(xù)使用,請及時(shí)替換為最新token | 201510BB09dece3ea7654531b66bf9f97cdceE67 |
同步響應(yīng)結(jié)果示例
{
"alipay_open_auth_token_app_response": {
"code": "10000",
"msg": "Success",
"app_auth_token": "201510BBb507dc9f5efe41a0b98ae22f01519X62",
"app_refresh_token": "201510BB0c409dd5758b4d939d4008a525463X62",
"auth_app_id": "2013111800001989",
"expires_in": 31536000,
"re_expires_in": 32140800,
"user_id": "2088011177545623"
},
"sign": "TR5xJkWX65vRjwnNNic5n228DFuXGFOCW4isWxx5iLN8EuHoU2OTOeh1SOzRredhnJ6G9eOXFMxHWl7066KQqtyxVq2PvW9jm94QOuvx3TZu7yFcEhiGvAuDSZXcZ0sw4TyQU9+/cvo0JKt4m1M91/Quq+QLOf+NSwJWaiJFZ9k="
}
注意:
app_auth_token
,否則支付寶將認(rèn)為是本應(yīng)用替自己發(fā)起的請求。請注意app_auth_token
是POST
請求參數(shù),不是biz_content
的子參數(shù);在SDK中帶上app_auth_token
代碼示例
request.putOtherTextParam("app_auth_token", "201611BB888ae9acd6e44fec9940d09201abfE16");
app_id
應(yīng)填寫開發(fā)者的app_id
;如果業(yè)務(wù)參數(shù)biz_content
中需要AppId,則應(yīng)填寫商戶的AppId。接口名稱:alipay.open.auth.token.app.query
當(dāng)商戶把服務(wù)窗、店鋪等接口的權(quán)限授權(quán)給ISV之后,支付寶會給ISV頒發(fā)一個app_auth_token
。如若授權(quán)成功之后,ISV想知道用戶的授權(quán)信息,如授權(quán)者、授權(quán)接口列表等信息,可以調(diào)用本接口查詢某個app_auth_token
對應(yīng)的授權(quán)信息。
請求參數(shù)說明
參數(shù) | 參數(shù)名稱 | 類型 | 必填 | 描述 | 范例 |
---|---|---|---|---|---|
app_auth_token | 商戶授權(quán)令牌 | String | 是 | 通過該令牌來幫助商戶發(fā)起請求,完成業(yè)務(wù) | 201510BBaabdb44d8fd04607abf8d5931ec75D84 |
接口請求示例: 請先閱讀SDK接入說明
AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", APP_ID, APP_PRIVATE_KEY, "json", CHARSET, ALIPAY_PUBLIC_KEY, "RSA2");
AlipayOpenAuthTokenAppQueryRequest request = new AlipayOpenAuthTokenAppQueryRequest();
request.setBizContent("{" +
" \"app_auth_token\":\"201509BBeff9351ad1874306903e96b91d248A36\"" +
" }");
AlipayOpenAuthTokenAppQueryResponse response = alipayClient.execute(request);
同步響應(yīng)參數(shù)說明
參數(shù) | 參數(shù)名稱 | 類型 | 必填 | 描述 | 范例 |
---|---|---|---|---|---|
user_id | 授權(quán)商戶的ID | String | 是 | 授權(quán)者的PID | 2088011177545623 |
auth_app_id | 授權(quán)商戶的AppId | String | 是 | 授權(quán)商戶的AppId(如果有服務(wù)窗,則為服務(wù)窗的AppId) | 2013111800001989 |
expires_in | 令牌有效期 | Number | 是 | 交換令牌的有效期,單位秒,換算成天的話為365天 | 31536000 |
auth_methods | 授權(quán)接口列表 | String | 是 | 當(dāng)前app_auth_token的授權(quán)接口列表 | "alipay.open.auth.token.app.query","alipay.system.oauth.token","alipay.open.auth.token.app" |
auth_start | 授權(quán)生效時(shí)間 | Date | 是 | 當(dāng)前app_auth_token的授權(quán)生效時(shí)間 | 2015-11-03 01:59:57 |
auth_end | 授權(quán)失效時(shí)間 | Date | 是 | 當(dāng)前app_auth_token的授權(quán)失效時(shí)間 | 2016-11-03 01:59:57 |
status | 狀態(tài) | String | 是 | valid:有效狀態(tài);invalid:無效狀態(tài) | valid |
同步響應(yīng)結(jié)果示例
{
"alipay_open_auth_token_app_query_response":{
"auth_app_id":"2013121100055554",
"auth_end":"2016-11-03 01:59:57",
"auth_methods":[
"\"alipay.open.auth.token.app.query\"",
"\"alipay.system.oauth.token\"",
"\"alipay.open.auth.token.app\""
],
"auth_start":"2015-11-03 01:59:57",
"code":"10000",
"expires_in":31536000,
"msg":"Success",
"status":"valid",
"user_id":"2088102150527498"
}
}
1、下載服務(wù)端SDK 為了幫助開發(fā)者調(diào)用開放接口,我們提供了開放平臺服務(wù)端SDK ,包含JAVA、PHP和.NET三個語言版本,封裝了簽名&驗(yàn)簽、HTTP接口請求等基礎(chǔ)功能。請先下載對應(yīng)語言版本的SDK并引入您的開發(fā)工程。
各語言版本服務(wù)端SDK詳細(xì)使用說明,請參考《服務(wù)端SDK說明 》。
2、接口調(diào)用配置
AlipayClient alipayClient = new DefaultAlipayClient(URL, APP_ID, APP_PRIVATE_KEY, FORMAT, CHARSET, ALIPAY_PUBLIC_KEY, SIGN_TYPE);
關(guān)鍵參數(shù)說明:
配置參數(shù) | 示例值解釋 | 獲取方式/示例值 |
---|---|---|
URL | 支付寶網(wǎng)關(guān)(固定) | https://openapi.alipay.com/gateway.do |
APPID | APPID 即創(chuàng)建應(yīng)用后生成 | 獲取見上面創(chuàng)建應(yīng)用并獲取APPID |
APP_PRIVATE_KEY | 開發(fā)者私鑰,由開發(fā)者自己生成 | 獲取詳見上面配置密鑰 |
FORMAT | 參數(shù)返回格式,只支持json | json(固定) |
CHARSET | 編碼集,支持GBK/UTF-8 | 開發(fā)者根據(jù)實(shí)際工程編碼配置 |
ALIPAY_PUBLIC_KEY | 支付寶公鑰,由支付寶生成 | 獲取詳見上面配置密鑰 |
SIGN_TYPE | 商戶生成簽名字符串所使用的簽名算法類型,目前支持RSA2和RSA,推薦使用RSA2 | RSA2 |
3.接口調(diào)用
接口調(diào)用示例大致分為3步:
如何接入沙箱
沙箱是開放平臺提供給開發(fā)者用戶調(diào)試接口的環(huán)境,具體操作步驟見沙箱接入指南 。
第三方應(yīng)用授權(quán)沙箱接入注意點(diǎn)
1、第三方應(yīng)用授權(quán)支持沙箱接入;在沙箱調(diào)通接口后,必須在線上進(jìn)行測試與驗(yàn)收,所有返回碼及業(yè)務(wù)邏輯以線上為準(zhǔn);
2、第三方應(yīng)用授權(quán)的拼接規(guī)則為:https://openauth.alipaydev.com/oauth2/appToAppAuth.htm?app_id=APPID&redirect_uri=REDIRECT_URI
3、授權(quán)時(shí)使用商戶賬號進(jìn)行授權(quán),不要使用買家賬號授權(quán);
序號 | 接口英文名 | 接口中文名 | API文檔 |
---|---|---|---|
1 | alipay.open.auth.token.app | 換取應(yīng)用授權(quán)令牌接口 | 查看文檔 |
2 | alipay.open.auth.token.app.query | 查詢某個應(yīng)用授權(quán)AppAuthToken的授權(quán)信息接口 | 查看文檔 |
本接口及文檔資料由開放平臺提供。您使用本接口,需要遵守開放平臺相關(guān)協(xié)議及開放平臺要求。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: