เชื่อมโยงบัญชีของลูกค้ากับผู้ประมวลผลการชำระเงินกับเครื่องมือของ 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 |
ต้องระบุ: เป็นจริงหากเราต้องการให้ผู้รวมบริการระบุที่อยู่ที่เชื่อมโยงกับบัญชีนี้ |
googlePaymentToken |
ต้องระบุ: โทเค็นที่ Google จะใช้เพื่อเริ่มการซื้อกับผู้ประมวลผลการชำระเงิน สตริงนี้มีความยาวได้สูงสุด 100 อักขระ |
associationId |
REQUIRED: ตัวระบุการเชื่อมโยงนี้ ตัวระบุนี้สร้างขึ้นโดย Google และจะส่งในระหว่างการตรวจสอบสิทธิ์อีกครั้งเพื่อระบุว่าบัญชีใดควรผ่านการตรวจสอบสิทธิ์ สตริงนี้มีความยาวได้สูงสุด 100 อักขระ |
ฟิลด์การรวม
|
|
authenticationRequestId |
ไม่บังคับ: |
otpVerification |
ไม่บังคับ: ข้อมูลที่จำเป็นต่อการยืนยัน OTP ที่สร้างขึ้นจาก |
เนื้อหาการตอบกลับ
ออบเจ็กต์การตอบกลับสำหรับเมธอดบัญชีที่เชื่อมโยง
หากทำสำเร็จ เนื้อหาการตอบกลับจะมีข้อมูลซึ่งมีโครงสร้างดังต่อไปนี้
การแสดง JSON |
---|
{ "responseHeader": { object ( |
ช่อง | |
---|---|
responseHeader |
ต้องระบุ: ส่วนหัวทั่วไปสำหรับคำตอบทั้งหมด |
paymentIntegratorAssociateAccountId |
ต้องระบุ: ตัวระบุนี้ใช้เฉพาะสำหรับผู้ผสานการทำงานระบบและสร้างขึ้นโดยผู้ผสานการทำงานระบบ ซึ่งจะใช้สำหรับการแก้ไขข้อบกพร่องเพื่อระบุการเรียกใช้นี้เท่านั้น นี่คือตัวระบุที่ผู้ผสานรวมจะรู้จักการเรียกใช้นี้ |
tokenExpirationTime |
ไม่บังคับ: มิลลิวินาทีตั้งแต่ Epoch เมื่อโทเค็นหมดอายุ ใช้ |
accountId |
ต้องระบุ: รหัสบัญชีที่ผู้ใช้มีกับผู้ผสานการทำงาน ระบบจะใช้ข้อมูลนี้เพื่อให้ Google มีความเสี่ยงในการทำความเข้าใจการใช้บัญชีซ้ำและความสัมพันธ์กับบัญชี รวมถึงตัวแทนฝ่ายปฏิบัติการลูกค้าของ Google เพื่อช่วยให้ลูกค้าวินิจฉัยปัญหาได้ ตัวระบุนี้ควรให้ผู้ใช้รู้จัก (เช่น ผู้ใช้รู้จักรหัสนี้เพราะปรากฏในใบแจ้งยอดหรือปรากฏในเว็บไซต์หลังจากเข้าสู่ระบบบัญชี) ค่านี้ต้องเปลี่ยนแปลงไม่ได้ตลอดอายุของบัญชี |
userMessage |
เลิกใช้งานแล้ว: คำอธิบายผลลัพธ์ที่จะแสดงต่อผู้ใช้หากผลลัพธ์ไม่ใช่ |
userInformation |
ต้องระบุ: ข้อมูลผู้ใช้ที่ผู้ผสานรวมทราบและจะแชร์ข้อมูลเกี่ยวกับลูกค้ารายนี้กับ Google ใช้สำหรับข้อมูลความเสี่ยงและแก้ไขการป้อนข้อมูลล่วงหน้า |
result |
REQUIRED: ผลของการเชื่อมโยงนี้ |
ฟิลด์การรวม
|
|
accountNickname |
ไม่บังคับ: สตริงที่ผู้ใช้รู้จักบัญชีนี้เพื่อวัตถุประสงค์ในการแสดงผล ชื่อนี้คือคำต่อท้ายของชื่อเล่นของบัญชี เช่น ตัวเลข 4 หลักสุดท้ายของหมายเลขโทรศัพท์ Google จะระบุในอินเทอร์เฟซผู้ใช้ว่านี่เป็นเพียงส่วนต่อท้ายของชื่อเล่นเท่านั้น ค่านี้จะแสดงใน UI เช่น ขั้นตอนการซื้อเพื่อให้ผู้ใช้แยกความแตกต่างระหว่างวิธีการชำระเงินต่างๆ ได้ |
fullAccountNickname |
ไม่บังคับ: สตริงที่ผู้ใช้รู้จักบัญชีนี้เพื่อวัตถุประสงค์ในการแสดงผล นี่คือชื่อเล่นแบบเต็มของบัญชี ซึ่งต่างจาก ค่านี้จะแสดงใน UI เช่น ขั้นตอนการซื้อเพื่อให้ผู้ใช้แยกความแตกต่างระหว่างวิธีการชำระเงินต่างๆ ได้ |
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
รหัสผลลัพธ์สำหรับบัญชีที่เชื่อมโยง
Enum | |
---|---|
UNKNOWN_RESULT |
ห้ามตั้งค่าเริ่มต้นนี้เป็นอันขาด |
SUCCESS |
เชื่อมโยงสำเร็จ |
USER_AUTHENTICATION_FAILED |
แม้ว่าจะมีการส่งชุดการตรวจสอบสิทธิ์บัญชีกลับมา แต่การตรวจสอบสิทธิ์ผู้ใช้ล้มเหลว |
NOT_ELIGIBLE |
บัญชีของผู้ใช้ไม่มีสิทธิ์ใช้บริการนี้ |
OTP_NOT_MATCHED |
OTP ไม่ตรงกับข้อมูลที่ผู้ผสานการทำงานส่งมา |
OTP_ALREADY_USED |
ใช้ OTP ไปแล้ว |
OTP_LIMIT_REACHED |
ผู้ใช้ขอหรือพยายามยืนยัน OTP จำนวนมากเกินไป |
OTP_EXPIRED |
OTP หมดอายุแล้ว |