- HTTP 请求
- 请求正文
- 响应正文
- UserInformation
<ph type="x-smartling-placeholder">
- </ph>
- JSON 表示法
- AssociateAccountResultCode
将客户的账号与付款处理方相关联,与要添加的 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 |
REQUIRED:如果我们希望集成商提供与此账号关联的地址,则为 true。 |
googlePaymentToken |
必需:Google 将用于向付款处理方发起购买交易的令牌。 这是一个字符串,长度上限为 100 个字符。 |
associationId |
必需:此关联的标识符。此标识符由 Google 创建,并在重新进行身份验证流程中发送,用于标识应该对哪个账号进行身份验证。 这是一个字符串,长度上限为 100 个字符。 |
联合字段
|
|
authenticationRequestId |
可选:此调用之前身份验证请求的 |
otpVerification |
可选:验证通过 |
响应正文
关联账号方法的响应对象。
如果成功,响应正文将包含结构如下的数据:
JSON 表示法 |
---|
{ "responseHeader": { object ( |
字段 | |
---|---|
responseHeader |
必需:所有响应的通用标头。 |
paymentIntegratorAssociateAccountId |
必需:此标识符专供集成商使用,由集成商生成。它仅用于调试目的,以便识别此调用。这是集成商知道此调用的标识符。 |
tokenExpirationTime |
可选:从公元纪年开始计算的令牌过期时间(以毫秒为单位)。使用 |
accountId |
必需:用户在集成商处拥有的账号 ID。这样做有助于 Google 了解账号重用情况和账号关系,并协助 Google 客户服务专员协助客户诊断问题。此标识符应便于用户识别(例如,用户知道此 ID,因为此 ID 显示在他们的对账单上,或在用户登录账号后显示在网站上)。 此值在账号生命周期内不得更改。 |
userMessage |
DEPRECATED:结果不是 |
userInformation |
必需:集成商了解并将与 Google 分享的有关此客户的用户信息。用于提供风险信息和解决预填充问题。 |
result |
必需:此关联的结果。 |
联合字段
|
|
accountNickname |
可选:出于显示目的而用户知道此账号的字符串。这是账号昵称的后缀。例如电话号码的最后四位数。Google 会在界面中指明这只是昵称的后缀。 此值将显示在购买流程等界面中,以便用户区分不同的付款方式。 |
fullAccountNickname |
可选:出于显示目的而用户知道此账号的字符串。与 此值将显示在购买流程等界面中,以便用户区分不同的付款方式。 |
UserInformation
包含用户相关信息的结构。
JSON 表示法 |
---|
{ "name": string, "addressLine": [ string ], "localityName": string, "administrativeAreaName": string, "postalCodeNumber": string, "countryCode": string, "phone": string, "emailAddress": string } |
字段 | |
---|---|
name |
可选:客户的全名。 |
addressLine[] |
可选:包含非结构化地址文本。 |
localityName |
可选:此术语不太准确,但通常是指地址的城市/城镇部分。对于没有明确定义 locality 或者其无法很好地对应这个结构的区域,应将 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 |
动态密码已过期。 |