將客戶帳戶與付款處理方建立關聯,連結至要新增的 Google 付款方式。
帳戶關聯作業會在整合商驗證使用者後開始。系統會透過伺服器對伺服器呼叫進行關聯,該呼叫包含相關聯驗證流程的 requestId
(authenticationRequestId
)、associationId
和 googlePaymentToken
(GPT)。付款處理方應將 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 |
選用:憑證到期後,從 Epoch 紀元時間起算,以秒為單位。使用 |
accountId |
必要項目:使用者擁有整合商的帳戶 ID。這些異動會用來瞭解 Google 風險,瞭解帳戶重複使用/帳戶之間的關係,以及 Google 客戶服務服務專員,協助客戶診斷問題。此 ID 必須是使用者可辨識的 (例如使用者知道這個 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 |
OPTIONAL:這個國家/地區的頂層行政區,例如:美國各州、義大利區域、中國省、日本都/道/府/縣。 |
postalCodeNumber |
選用:儘管名稱不同,postalCodeNumber 值通常都是英數字元。例如:「94043」、「SW1W」、「SW1W 9TQ」。 |
countryCode |
選用:客戶地址的國家/地區代碼,應為 ISO-3166-1 Alpha-2。 |
phone |
OPTIONAL:客戶的電話號碼。 |
emailAddress |
選填:客戶的電子郵件地址。 |
AssociateAccountResultCode
關聯帳戶的結果代碼。
列舉 | |
---|---|
UNKNOWN_RESULT |
請不要設定這個預設值! |
SUCCESS |
連結成功。 |
USER_AUTHENTICATION_FAILED |
即使傳回帳戶驗證套件,使用者驗證卻失敗。 |
NOT_ELIGIBLE |
使用者帳戶不符合這項服務的使用資格。 |
OTP_NOT_MATCHED |
動態密碼與整合商傳送的內容不符。 |
OTP_ALREADY_USED |
動態密碼已使用過。 |
OTP_LIMIT_REACHED |
使用者要求或嘗試驗證的動態密碼過多。 |
OTP_EXPIRED |
動態密碼已失效。 |