將客戶帳戶與付款處理方的關聯,連結至要新增的 Google 付款方式。
整合商驗證使用者後,帳戶就會建立關聯。關聯是透過伺服器對伺服器呼叫進行,該呼叫包含相關聯驗證流程 (authenticationRequestId
)、associationId
和 googlePaymentToken
(GPT) 的 requestId
。付款處理方應將 associationId
和 googlePaymentToken
連結至客戶的帳戶,以便進行驗證。GPT 是用來辦理付款。在重新驗證呼叫期間,系統會使用 associationId
來識別要驗證的帳戶。
如果 Google 傳送 associationId
或 googlePaymentToken
,且整合商在其他關聯中已看過,就會擲回錯誤。
如果端點在處理要求時發生錯誤,來自這個端點的回應主體應為
類型。ErrorResponse
要求範例如下:
{
"requestHeader": {
"protocolVersion": {
"major": 1,
"minor": 0,
"revision": 0
},
"requestId": "cmVxdWVzdDE",
"requestTimestamp": "1481899949606"
},
"googlePaymentToken": "ZXhhbXBsZSB1bmlxdWUgcGF5bWVudCB0b2tlbiB2YWx1ZQ__",
"authenticationRequestId": "bnAxdWTydDX==",
"associationId": "LmddbXBsZSByZWZlcmVuY2UgdG9rZW4gdmFsdWU_",
"provideUserInformation": true
}
回應範例如下所示:
{
"responseHeader": {
"responseTimestamp": "1481899949611"
},
"paymentIntegratorAssociateAccountId": "xx77df88934hfd",
"accountId": "1234-5678-91",
"accountNickname": "***-91",
"tokenExpirationTime": "0",
"userInformation": {
"name": "Example Customer",
"addressLine": ["123 Main St"],
"localityName": "Springfield",
"administrativeAreaName": "CO",
"postalCodeNumber": "80309",
"countryCode": "US"
},
"result": "SUCCESS"
}
HTTP 要求
POST https://www.integratorhost.example.com/v1/associateAccount
要求主體
要求主體的資料會採用以下結構:
JSON 表示法 |
---|
{ "requestHeader": { object ( |
欄位 | |
---|---|
requestHeader |
必要項目:所有要求的通用標頭。 |
provideUserInformation |
必要項目:如果我們要求整合者提供與此帳戶相關聯的地址,則為 True。 |
googlePaymentToken |
必要項目:Google 將用於透過付款處理方發起交易的權杖。 這個字串的長度上限為 100 個半形字元。 |
associationId |
必要項目:此關聯的 ID。這個 ID 是由 Google 建立,會在重新驗證流程期間傳送,用來識別應驗證的帳戶。 這個字串的長度上限為 100 個半形字元。 |
聯集欄位
|
|
authenticationRequestId |
OPTIONAL:引發此呼叫前的驗證要求 |
otpVerification |
選用:驗證 |
回應主體
助理帳戶方法的回應物件。
如果成功,回應主體會含有以下結構的資料:
JSON 表示法 |
---|
{ "responseHeader": { object ( |
欄位 | |
---|---|
responseHeader |
必要項目:所有回應的通用標頭。 |
paymentIntegratorAssociateAccountId |
必要項目:此 ID 專屬於整合商,由整合商產生。只會將其用於偵錯,以便辨識這個呼叫。這是整合商瞭解此呼叫的 ID。 |
tokenExpirationTime |
選用:權杖到期後經過的毫秒數。使用 |
accountId |
必要項目:整合商的使用者帳戶 ID。這項資訊可讓 Google 風險瞭解重複利用帳戶、帳戶關係,以及 Google 客戶業務專員,協助客戶診斷問題。這個 ID 必須可供使用者識別 (例如:使用者知道這個 ID,因為這項資訊會顯示在對帳單中,或是在登入帳戶後顯示在網站上)。 在帳戶效期內,這個值不得變動。 |
userMessage |
已淘汰:在結果不是 |
userInformation |
必要項目:整合商已知悉的使用者資訊,並將該客戶提供給 Google,用於風險資訊並解決預先填入問題。 |
result |
必要項目:此關聯的結果。 |
聯集欄位
|
|
accountNickname |
選用:使用者已知此帳戶的字串,以供顯示。這是帳戶暱稱的後置字元。例如,電話號碼末 4 碼。Google 會在使用者介面中指出這只是暱稱的後置字串。 這個值會顯示在購買流程等使用者介面中,方便使用者分辨付款方式。 |
fullAccountNickname |
選用:使用者已知此帳戶的字串,以供顯示。與 這個值會顯示在購買流程等使用者介面中,方便使用者分辨付款方式。 |
UserInformation
可保存使用者資訊的結構。
JSON 表示法 |
---|
{ "name": string, "addressLine": [ string ], "localityName": string, "administrativeAreaName": string, "postalCodeNumber": string, "countryCode": string, "phone": string, "emailAddress": string } |
欄位 | |
---|---|
name |
選用:客戶的全名。 |
addressLine[] |
選用:包含非結構化的地址文字。 |
localityName |
選用:這是模糊的字詞,但通常是指地址的縣市/鄉鎮部分。如為未明確定義縣市或不適用於該結構的區域 (例如日本和中國),請將 localityName 留白並使用 addressLine。 範例:美國城市、義大利市鎮、英國郵鎮。 |
administrativeAreaName |
選用:這個國家/地區的頂層行政劃分」例如:美國各州、義大利地區、中國省份、日本的都/道/府/縣。」 |
postalCodeNumber |
選用:儘管名稱已開放,postalCodeNumber 值經常是英數字元。例如:「94043」、「SW1W」、「SW1W 9TQ」。 |
countryCode |
選用:客戶地址的國家/地區代碼,應為 ISO-3166-1 Alpha-2。 |
phone |
選用:客戶的電話號碼。 |
emailAddress |
選用:客戶的電子郵件地址。 |
AssociateAccountResultCode
關聯帳戶的結果代碼。
列舉 | |
---|---|
UNKNOWN_RESULT |
切勿設定這個預設值! |
SUCCESS |
成功連結。 |
USER_AUTHENTICATION_FAILED |
即使已傳回帳戶驗證組合,使用者驗證失敗。 |
NOT_ELIGIBLE |
使用者帳戶無法使用這項服務。 |
OTP_NOT_MATCHED |
動態密碼與整合服務供應商傳送的資料不符。 |
OTP_ALREADY_USED |
動態密碼已有人使用。 |
OTP_LIMIT_REACHED |
使用者要求或嘗試驗證的動態密碼過多。 |
OTP_EXPIRED |
動態密碼已失效。 |