調用 GenerateAliyunBidCertWaysUrl 為虛商客戶添加實名認證信息。
接入說明
調用 GenerateAliyunBidCertWaysUrl 時,公共請求參數中的 AccessKeyId 必須為虛商主賬號的密鑰 ID。
pop接口 GenerateAliyunBidCertWaysUrl,調用方式通過HTTP接口調用,必須為post方法。請求示例(使用post方法)
https://aas.aliyuncs.com/?Action=GenerateAliyunBidCertWaysUrl&Platform=pc&BidType=LIGHTWEIGHT&Timestamp=2021-09-28T09%3A35%3A30Z&Source=BID&Format=JSON&SubjectType=all&SignatureNonce=a193d4b3-e54b-40f7-9d22-62107514cedd&IsOpenApp=true&AliyunPk=10****4893&IsMobile=true&<公共請求參數>
獲取到接口返回的結果,是一個URL,此URL3小時有效,業務可以直接在URL中操作完成實名認證
參數說明
公共參數
字段名稱 | 字段類型 | 是否必填 | 描述 |
---|---|---|---|
Format | String | 是 | 返回值的類型,支持 JSON 與 XML。默認為 XML。 |
Version | String | 是 | 這里固定傳2015-07-01 |
AccessKeyId | String | 是 | 訪問服務使用的密鑰ID在調用其他接口時該參數為虛商伙伴主賬號的密鑰 ID。 |
Signature | String | 是 | 簽名結果串,關于簽名的計算方法,請參見簽名機制。 |
SignatureMethod | String | 是 | 簽名方式,目前支持 HMAC-SHA1 |
Timestamp | String | 是 | 請求的時間戳。日期格式按照 ISO8601 標準表示,并需要使用 UTC 時間。格式為:YYYY-MM-DDTHH:MM:SSZ。例如,2016-05-23T12:00:00Z(北京時間2016年5月23日20點0分0秒) |
SignatureVersion | String | 是 | 簽名算法版本,目前版本是1.0 |
SignatureNonce | String | 是 | 唯一隨機數,用于防止網絡重放攻擊。用戶在不同請求間要使用不同的隨機數值 |
業務參數
字段名稱 | 字段類型 | 是否必填 | 字段說明 | 示意 | 字段描述 |
---|---|---|---|---|---|
action | String | 必填 | 接口名稱 | GenerateAliyunBidCertWaysUrl | 接口名稱,默認傳GenerateAliyunBidCertWaysUrl |
AliyunPk | String | 必填 | 阿里云主賬號uid | 123*******789 | 被實名認證的賬號的阿里云數字 ID |
BidType | String | 必填 | 虛商類型 | LIGHTWEIGHT | 虛商類型NORMAL:普通虛商(默認值)LIGHTWEIGHT:輕量級虛商 |
Platform | String | 必填 | 業務方所在的平臺類型 | pc | 這里有3個可選值pc (表示URL需要在電腦pc中打開)h5 (表示URL需要在h5中打開)app (表示URL需要在app中打開) |
SubjectType | String | 必填 | 認證類型 | all | 這里有3個可選值all : 可以選擇個人實名認證和企業實名認證personal 只可以選擇個人實名認證enterprise 只可以選擇企業實名認證 |
Source | String | 必填 | 業務來源 | BID | 固定傳BID |
IsOpenApp | Boolean | 必填 | 選擇支付寶快速認證的時候是否需要喚醒支付寶app。一般在移動端都需要填true | true | true或者false |
IsMobile | Boolean | 必填 | 選擇支付寶快速認證的時候,支付寶授權的頁面是否需要移動端樣式。一般在移動端都需要填true | true | true或者false |
返回值
字段 | 說明 |
---|---|
RequestId | requestId,用來追蹤請求 |
Data | 返回的實名認證的URL,客戶需要在自己的虛商系統展示開。 |
Success | 請求成功或者失敗,Success=true表示成功否則表示失敗 |
Code | 錯誤代碼 |
Message | Success=false或者為空的時候返回的錯誤信息 |
//請求成功的示意
{
"RequestId":"7A4326A9-5B17-5BB2-B95D-4CE1EAAD55B9",
// 此url直接在業務方對應的平臺打開
"Data":"https://account.aliyun.com/cert/listCertWays.html?token=YWxpeXVuSWxxxxxxxxxxdXRQa2RGY0R4Q3BoVjZ5M3ZuemdHRQ==",
"Success":true
}
// 請求失敗的示意
{
"RequestId":"382AD1A2-0641-55EB-A113-395A45AC80C7",
"Message":"Specified signature is not matched with our calculation. server string to sign is:POST&%2F&AccessKeyId%3DLTxxxxxxg0N7cz5%26Action%3DGenerateAliyunBidCertWaysUrl%26AliyunPk%3D1039740447764893%26BidType%3DLIGHTWEIGHT%26Format%3Djson%26IsMobile%3Dtrue%26IsOpenApp%3Dtrue%26Platform%3Dpc%26SignatureMethod%3DHmac-SHA1%26SignatureNonce%3Dcac135a3-a3f3-4b11-9cc8-2479bd2c4fb2%26SignatureVersion%3D1.0%26Source%3Decs%26SubjectType%3Dall%26Timestamp%3D2021-09-28T09%253A37%253A17Z%26Version%3D2015-07-01",
"Code":"SignatureDoesNotMatch"
}
錯誤信息
HttpCode | 錯誤代碼 | 錯誤提示 | 錯誤描述 |
---|---|---|---|
400 | Empty PK | The input parameter 'PK' mandatory for processing this request is not supplied. | PK 不能為空 |
403 | Not Bid | The interface can not be called by a non-bid account | 調用方不是一個虛商用戶 |
403 | Bid Mismatch | Pk is not belong to the Bid. | 被調用方不屬于此虛商用戶(即被調用的阿里云 PK 并非由此虛商創建) |
404 | Invalid PK | The specified parameter 'PK' does not exist in our records. | 此 PK 對應的賬號不存在 |
400 | Already Certified | Account is already certified | 此賬號已實名認證,舊信息不會覆蓋 |
404 | InvalidApi.NotFound | InvalidApi.NotFound | 虛商平臺需要通過CBM聯系阿里云主賬號接口提供方根據虛商主賬號uid開通接口權限,否則出現 InvalidApi.NotFound 錯誤 |
404 | InvalidAccessKeyId.NotFound | InvalidAccessKeyId.NotFound | AccessKeyId 不存在 |
400 | SignatureNonceUsed | SignatureNonceUsed | 15分鐘內使用相同的SignatureNonce發送請求,則會返回該錯誤。如果您是自己封裝請求,請確保每次請求使用的SignatureNonce不一樣,建議使用uuid作為SignatureNonce |
400 | SignatureDoesNotMatch | SignatureDoesNotMatch | 簽名計算錯誤,請確認簽名算法 |
前端接入
嵌入 FastAuthc
// src 是你通過接口獲取的鏈接
<iframe src={src} />
監聽 FastAuthc
//由于 FastAuthc 是通過 IFrame 的形式接入到你的應用中,需要用 Event 來進行雙邊通信
window.addEventListener("message", (e) => {
const { data } = e;
console.log(data);
})
數據結構
// Data 為 FastAuthc 發送出的消息 data 的數據結構如下
// data 的數據結構如下
{
success: boolean;
type: MessageType;
data: any; // (額外附加信息)
}
//MessageType 為 FastAuthc 發送消息的時機
export enum MessageType {
INIT = "aliyun_fast_auth_init", // 頁面初始化
LATER = "aliyun_fast_auth_later", // 暫不認證
ANOTHER_AUTHC_WAY = "aliyun_fast_auth_another_authc_way", // 選擇其他認證方式
AUTHC_SUCCESS = "aliyun_fast_auth_success", // 認證成功
AUTHC_FAIL = "aliyun_fast_auth_fail", // 認證失敗
RE_AUTHC = "aliyun_fast_auth_re_authc", // 重新認證
OPEN_ALIPAY = "aliyun_fast_auth_open_alipay", // 打開支付寶認證頁
}
//認證失敗的例子
{
success: true,
type: "fail",
data: {
reason: "認證失敗的原因",
},
}
//其他情況
{
success: true,
type: 對應情況的 MessageType,
data: {},
}
附錄
簽名 http://bestwisewords.com/document_detail/91847.htm#concept-2041363