VAS授權接入開發者文檔,全民共創VAS生態

在這裏致敬所有開發者,我們正在改變整個世界!

用戶可在第三方網頁或APP中通過VAS授權機制,來獲取用戶基本信息和接收用戶付款,進而實現業務邏輯,共創VAS生態。

VAS錢包的Scheme爲vaswallet


申請授權接入

​接入方需在vas錢包授權申請中填寫上線的第三方應用相關信息,社區通過評審通過後會在APP中反饋接入情況。

其中授權回調域名配置規範爲全域名,比如需要網頁授權的域名爲:錯誤! 超鏈接引用無效。http://www.vasblock.com/music.html 、 http://www.vasblock.com/login.html 都可以進行授權操作。但http://pay.vasblock.com 、 http://music.vasblock.com 、 http://vasblock.com無法進行授權操作。

如果是手機H5發起的授權操作,scheme請填寫http或者https,並填寫安全回調域名。

​ 接入方申請通過後將獲得uuid,accessToken,rsaPrivate,rsaPublic(可在DAPP接入申請記錄點擊“查看詳情”進行查看,如有疑問請發送郵件至[email protected]或在github上留言),作用將會在下面介紹。

授權登錄流程分爲四步:

1、第三方APP激活vaswallet;

2、引導用戶進入授權頁面同意授權,AID用戶點擊確認授權後獲取openCode

3、錢包APP將openCode返回給接入方APP或H5後臺

4、接入方使用openCode和accessToken以及appId(第三方APP申請後獲得的uuid)請求錢包後臺獲取用戶aid與address


授權登錄

app授權登錄

1、APP調用錢包申請授權登錄

第三方APP通過SchemeURL調起錢包APP並使用URL編碼的JSON傳遞如下參數

KEY 描述
type 傳login 必填
uuid 開通接入服務時獲得的app的uuid必填
callbackUrl schemeurl格式的回調地址,schemeurl後不能爲空。必填。 例如:appscheme://login
callbackType 爲0時,返回openCode將通過"?“或者”&"進行拼接。爲1時openCode直接拼接在callbackUrl的最後 默認0 非必填
openCallBackType platform未指定或platform爲mobile時生效。openCallBackType爲0或空時, 錢包打開callbackurl應用。openCallBackType爲1時, 錢包向callbackurl發起http請求並最小化錢包。非必填
platform 調起錢包的終端。如果是手機內調用填寫 mobile如果是掃網頁二維碼填寫web

由於IOS系統不允許在scheme使用特殊符號,所以需要對JSON數據進行url編碼

需要注意的是,callbackurl本身的參數中如果出現了特殊字符需要提前先對內部參數進行url編碼

整體URL編碼前

vaswallet://{“type”:“login”,“uuid”:“121212-121212-121212”,“callbackUrl”:“appscheme://login/a/b?d=1&redirect=http%3A%2F%2Fwww.google.com%2Fs%3Fwd%3D12345”}

整體URL編碼後

vaswallet://%7B%22type%22:%22login%22,%22uuid%22:%22121212-121212-121212%22,%22callbackUrl%22:%22appscheme://login/a/b?d=1&redirect=http%253A%252F%252Fwww.google.com%252Fs%253Fwd%253D12345%22%7D

2、獲取AID與Address

​ 用戶在VAS錢包中允許授權後,錢包生成授權openCode並攜帶openCode參數跳轉回調callbackUrl的地址

openCode有效期爲1分鐘,且使用一次後失效

獲取openCode後,請求以下鏈接獲取aid與address

https://mobile.vasblock.com/vas/server/oauth/login/aidInfo?openCode={openCode}&accessToken={accessToken}&appId={appId}

參數名稱 描述
openCode 填寫第一步獲取的openCode
accessToken 開通第三方接入時獲得的accessToken
appId 開通第三方接入時獲得的uuid

返回說明

正確時返回的JSON數據包如下

{

"result":{

    "address":"*******",

    "aid":"*********"

},

"success":true,

"errorCode":""

}

錯誤返回碼errorCode說明如下:

錯誤碼 描述
900001 accessToken錯誤
010001 未知錯誤
900002 查詢已超時或AID信息不存在

WEB掃碼授權登錄

1、創建二維碼

接入方需要提供URL二維碼供應VAS錢包掃碼登錄。URL參數如下

參數名稱 描述 是否必填
type 填寫login
platform 填寫web
callbackUrl 授權後將openCode帶入的回調地址
uuid 接入方申請通過後的uuid
callbackType 爲0時,返回openCode與webToken將通過"?“或者”&"進行拼接。爲1時openCode與webToken直接拼接在callbackUrl的最後 默認0
webToken 接入方驗證授權登錄用戶地址

例如:

vaslogin://{“type”: “login”,“platform”: “web”,“callbackUrl”: “https://www.google.com/login”,“uuid”: “123-123-123”,“webToken”: “SSFJIEKALSM”}

用戶確認授權後,錢包APP會將授權openCode與二維碼中的webToken帶回callbackUrl參數地址中。

openCode有效期爲1分鐘,且使用一次後失效

2、獲取AID與Address

獲取openCode後,請求以下鏈接獲取aid與address

https://mobile.vasblock.com/vas/server/oauth/login/aidInfo?openCode={openCode}&accessToken={accessToken}&appId={appId}

參數名稱 描述
openCode 填寫第一步獲取的openCode
accessToken 開通第三方接入時獲得的accessToken
appId 開通第三方接入時獲得的uuid

返回說明

正確時返回的JSON數據包如下

{

"result":{

 "aid":"aid",

 "address":"address"

},

"success":true,

"errorCode":"",

"errorMsg":""

}

錯誤返回碼errorCode說明如下:

錯誤碼 描述
900001 accessToken錯誤
010001 未知錯誤
900002 查詢已超時或AID信息不存在

錢包支付

第三方APP可以調用VAS支付完成下單支付的流程。

1、申請用戶支付

1.1APP調用

APP錢包通過schemeurl調起VAS錢包,並通過URL編碼的JSON對象傳遞以下參數

參數名稱 描述
type 類型。填寫pay
appUuid app申請時的uuid,必須。
orderId 訂單id,必須。
toAddr 接收方地址,必須。
assetType 付款資產類型,必須。
amount 付款金額,必須。
callbackUrl 付款成功VAS服務通知付款狀態的後臺回調,host需要在安全域名內,必須。
callbackScheme 支付完成後跳轉回的appschemeurl,必須。
description 描述,將展示給用戶。
signedContent 簽名數據。使用接入時獲得的rsa私鑰對參數進行簽名,必須。
openCallBackType 支付完成後APP回調方式。爲0時手機打開callbackScheme。爲1時不打開其他APP,僅將錢包APP最小化,此操作不影響支付狀態回調。

例:

URL編碼前

vaswallet://{“type”: “pay”,“appUuid”: “8888-9999-1111-6666”,“orderId”: “201911087855441”,“toAddr”: “*********************”,“assetType”: “VAS”,“amount”: “0.001”,“callbackUrl”: “https://localhost:8080/pay?orderId=201911087855441”,“callbackScheme”: “payApp”,

“description”: “*****”,“signedContent”: “*******”,“openCallBackType”: “1”}

注意:amount爲字符串類型

URL編碼後

vaswallet://%7B%22type%22:%20%22pay%22,%22appUuid%22:%20%228888-9999-1111-6666%22,%22orderId%22:%20%22201911087855441%22,%22toAddr%22:%20%22*********************%22,%22assetType%22:%20%22VAS%22,%22amount%22:%20%220.001%22,%22callbackUrl%22:%20%22https://localhost:8080/pay?orderId=201911087855441%22,%22callbackScheme%22:%20%22payApp%22,%0A%09%22description%22:%20%22*****%22,%22signedContent%22:%20%22*******%22,%22openCallBackType%22:%20%221%22%7D

1.2二維碼調用

接入方需構建URL二維碼由錢包APP掃碼。參數使用json方式,內容如下

參數名稱 描述
type 填寫pay
signedContent 簽名數據。使用接入時獲得的rsa私鑰對參數進行簽名,必須。
appUuid 開通時獲得的appuuid,必須。
orderId 第三方業務系統訂單號,必須。
toAddr 收款地址,必須。
assetType 付款資產類型,必須。
amount 付款金額,必須。
callbackUrl 付款成功VAS服務通知付款狀態的後臺回調,host需要在安全域名內,必須。
description 描述,將展示給用戶。

例如:

vaswallet://{“type”: “pay”,“appUuid”: “8888-9999-1111-6666”,“orderId”: “201911087855441”,“toAddr”: “*********",“assetType”: “VAS”,“amount”: “0.001”,“callbackUrl”: “https://localhost:8080/pay?orderId=201911087855441”,“description”: "",“signedContent”: "”,}

簽名算法

使用申請時的rsaPrivate運用SHA1WithRSA算法對amount,assetType,callbackUrl,orderId,toAddr,uuid參數進行簽名。

假設需簽名的參數如下:

{“appUuid”:“uuidVal”,“orderId”:“orderIdVal”,“toAddr”:“toAddrVal”,“assetType”:“assetTypeVal”,“amount”:“amountVal”,“callbackUrl”:“callbackUrlVal”}

1.按照amount,assetType,callbackUrl,orderId,toAddr,uuid順序將參數排成json結構。

2.對參數使用SHA1withRSA進行簽名,簽名後的內容進行BASE64編碼即爲rsaContent。

2、支付完成後跳回原APP,後臺通知支付狀態

若支付成功,且得到區塊確認,那麼將會發送GET表單請求至callbackUrl。

CallbackUrl中攜帶的參數如下:

參數名稱 描述
uuid 開通支付服務時申請的appUuid
orderId 第三方業務系統訂單號
fromAddr 支付地址
toAddr 收款地址
assetType 付款資產類型
amount 付款金額,字符串類型
txid 支付成功後的鏈上交易號
callbackUrl 付款成功VAS服務通知付款狀態的後臺回調路徑
rsaContent 簽名數據,使用接入時獲得的rsa私鑰對參數進行簽名

簽名算法

使用APP申請時的rsaPrivate運用SHA1WithRSA算法對參數進行簽名。

1.按照amount,assetType,callbackUrl,fromAddr,orderId,toAddr,txid,uuid順序將參數排成json結構。

amount爲字符串類型,直接拼入JSON中,不要轉浮點字符串(1.00000)

2.對參數使用SHA1withRSA進行簽名,簽名後的內容進行BASE64編碼即爲rsaContent,第三方dapp可用公鑰對參數和簽名後信息進行驗證。

第三方Dapp需要返回的信息如下:

返回字段 描述
success true or false,若爲true,回調成功,若爲false,回調失敗
errorCode 錯誤碼,若success爲true,可不返回.
errorMsg 錯誤信息,若success爲true,可不返回.

當前價格查詢

接口地址

[POST] https://mobile.vasblock.com/vas/server/oauth/pay/price?currency=USD&accessToken=000000

注意,此處價格爲存託池價格非二級市場價格。

頻率限制:每分鐘限10次

接口參數

參數名稱 參數描述 是否必填
currency 幣種類型。目前僅支持CNY,USD,EUR,GBP,JPY,KRW
accessToken 接入方accessToken

返回結果

名稱 描述
success true or false,若爲true,調用成功,若爲false,調用錯誤
errorCode 錯誤碼。當success爲false時有效
errorMsg 錯誤信息。當success爲false時有效
result 當success爲true時得到指定幣種當前價格,否則返回空

錯誤碼

錯誤碼 描述
900013 accessToken錯誤
900014 獲取價格失敗
900015 對標貨幣類型錯誤
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章