Method: associateAccount

เชื่อมโยงบัญชีของลูกค้ากับผู้ประมวลผลการชำระเงินกับเครื่องมือของ 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": boolean,
  "googlePaymentToken": string,
  "associationId": string,

  // Union field account_verification can be only one of the following:
  "authenticationRequestId": string,
  "otpVerification": {
    object (OtpVerification)
  }
  // End of list of possible types for union field account_verification.
}
ช่อง
requestHeader

object (RequestHeader)

ต้องระบุ: ส่วนหัวทั่วไปสำหรับคำขอทั้งหมด

provideUserInformation

boolean

ต้องระบุ: เป็นจริงหากเราต้องการให้ผู้รวมบริการระบุที่อยู่ที่เชื่อมโยงกับบัญชีนี้

googlePaymentToken

string

ต้องระบุ: โทเค็นที่ Google จะใช้เพื่อเริ่มการซื้อกับผู้ประมวลผลการชำระเงิน

สตริงนี้มีความยาวได้สูงสุด 100 อักขระ

associationId

string

REQUIRED: ตัวระบุการเชื่อมโยงนี้ ตัวระบุนี้สร้างขึ้นโดย Google และจะส่งในระหว่างการตรวจสอบสิทธิ์อีกครั้งเพื่อระบุว่าบัญชีใดควรผ่านการตรวจสอบสิทธิ์

สตริงนี้มีความยาวได้สูงสุด 100 อักขระ

ฟิลด์การรวม account_verification

account_verification ต้องเป็นค่าใดค่าหนึ่งต่อไปนี้เท่านั้น

authenticationRequestId

string

ไม่บังคับ: requestId ของคำขอการตรวจสอบสิทธิ์ที่เกิดขึ้นก่อนการโทรนี้ ตัวระบุนี้สร้างขึ้นโดย Google ในระหว่างขั้นตอนการตรวจสอบสิทธิ์ ตัวเลือกนี้จะแสดงขึ้นก็ต่อเมื่อผู้ใช้ผ่านการตรวจสอบสิทธิ์แอป Android, การตรวจสอบสิทธิ์ผ่านเว็บ หรือวิธีการตรวจสอบสิทธิ์แบบไม่พร้อมกันที่ใช้ authenticationResultNotification เท่านั้น

otpVerification

object (OtpVerification)

ไม่บังคับ: ข้อมูลที่จำเป็นต่อการยืนยัน OTP ที่สร้างขึ้นจาก sendOtp ตัวเลือกนี้จะปรากฏขึ้นเมื่อผู้ใช้ดำเนินการตามเส้นทาง sendOtp เท่านั้น

เนื้อหาการตอบกลับ

ออบเจ็กต์การตอบกลับสำหรับเมธอดบัญชีที่เชื่อมโยง

หากทำสำเร็จ เนื้อหาการตอบกลับจะมีข้อมูลซึ่งมีโครงสร้างดังต่อไปนี้

การแสดง JSON
{
  "responseHeader": {
    object (ResponseHeader)
  },
  "paymentIntegratorAssociateAccountId": string,
  "tokenExpirationTime": string,
  "accountId": string,
  "userMessage": string,
  "userInformation": {
    object (UserInformation)
  },
  "result": enum (AssociateAccountResultCode),

  // Union field account_names can be only one of the following:
  "accountNickname": string,
  "fullAccountNickname": string
  // End of list of possible types for union field account_names.
}
ช่อง
responseHeader

object (ResponseHeader)

ต้องระบุ: ส่วนหัวทั่วไปสำหรับคำตอบทั้งหมด

paymentIntegratorAssociateAccountId

string

ต้องระบุ: ตัวระบุนี้ใช้เฉพาะสำหรับผู้ผสานการทำงานระบบและสร้างขึ้นโดยผู้ผสานการทำงานระบบ ซึ่งจะใช้สำหรับการแก้ไขข้อบกพร่องเพื่อระบุการเรียกใช้นี้เท่านั้น นี่คือตัวระบุที่ผู้ผสานรวมจะรู้จักการเรียกใช้นี้

tokenExpirationTime

string (int64 format)

ไม่บังคับ: มิลลิวินาทีตั้งแต่ Epoch เมื่อโทเค็นหมดอายุ ใช้ 0 เพื่อส่งสัญญาณว่าโทเค็นไม่หมดอายุ

accountId

string

ต้องระบุ: รหัสบัญชีที่ผู้ใช้มีกับผู้ผสานการทำงาน ระบบจะใช้ข้อมูลนี้เพื่อให้ Google มีความเสี่ยงในการทำความเข้าใจการใช้บัญชีซ้ำและความสัมพันธ์กับบัญชี รวมถึงตัวแทนฝ่ายปฏิบัติการลูกค้าของ Google เพื่อช่วยให้ลูกค้าวินิจฉัยปัญหาได้ ตัวระบุนี้ควรให้ผู้ใช้รู้จัก (เช่น ผู้ใช้รู้จักรหัสนี้เพราะปรากฏในใบแจ้งยอดหรือปรากฏในเว็บไซต์หลังจากเข้าสู่ระบบบัญชี)

ค่านี้ต้องเปลี่ยนแปลงไม่ได้ตลอดอายุของบัญชี

userMessage
(deprecated)

string

เลิกใช้งานแล้ว: คำอธิบายผลลัพธ์ที่จะแสดงต่อผู้ใช้หากผลลัพธ์ไม่ใช่ SUCCESS

userInformation

object (UserInformation)

ต้องระบุ: ข้อมูลผู้ใช้ที่ผู้ผสานรวมทราบและจะแชร์ข้อมูลเกี่ยวกับลูกค้ารายนี้กับ Google ใช้สำหรับข้อมูลความเสี่ยงและแก้ไขการป้อนข้อมูลล่วงหน้า

result

enum (AssociateAccountResultCode)

REQUIRED: ผลของการเชื่อมโยงนี้

ฟิลด์การรวม account_names

account_names ต้องเป็นค่าใดค่าหนึ่งต่อไปนี้เท่านั้น

accountNickname

string

ไม่บังคับ: สตริงที่ผู้ใช้รู้จักบัญชีนี้เพื่อวัตถุประสงค์ในการแสดงผล ชื่อนี้คือคำต่อท้ายของชื่อเล่นของบัญชี เช่น ตัวเลข 4 หลักสุดท้ายของหมายเลขโทรศัพท์ Google จะระบุในอินเทอร์เฟซผู้ใช้ว่านี่เป็นเพียงส่วนต่อท้ายของชื่อเล่นเท่านั้น

ค่านี้จะแสดงใน UI เช่น ขั้นตอนการซื้อเพื่อให้ผู้ใช้แยกความแตกต่างระหว่างวิธีการชำระเงินต่างๆ ได้

fullAccountNickname

string

ไม่บังคับ: สตริงที่ผู้ใช้รู้จักบัญชีนี้เพื่อวัตถุประสงค์ในการแสดงผล นี่คือชื่อเล่นแบบเต็มของบัญชี ซึ่งต่างจาก accountNickname เช่น 56565-56501 สำหรับหมายเลขโทรศัพท์ หรือ sally@sample-email.com สำหรับข้อมูลประจำตัวอีเมล

ค่านี้จะแสดงใน UI เช่น ขั้นตอนการซื้อเพื่อให้ผู้ใช้แยกความแตกต่างระหว่างวิธีการชำระเงินต่างๆ ได้

UserInformation

โครงสร้างที่มีข้อมูลเกี่ยวกับผู้ใช้

การแสดง JSON
{
  "name": string,
  "addressLine": [
    string
  ],
  "localityName": string,
  "administrativeAreaName": string,
  "postalCodeNumber": string,
  "countryCode": string,
  "phone": string,
  "emailAddress": string
}
ช่อง
name

string

ไม่บังคับ: ชื่อและนามสกุลของลูกค้า

addressLine[]

string

ไม่บังคับ: ไฟล์นี้มีข้อความที่อยู่ที่ไม่มีโครงสร้าง

localityName

string

ไม่บังคับ: เป็นคำที่คลุมเครือ แต่โดยทั่วไปจะหมายถึงเมืองของที่อยู่ ในภูมิภาคของโลกซึ่งมีการกำหนดย่านไม่ถูกต้องหรือไม่อยู่ในโครงสร้างนี้ (เช่น ญี่ปุ่นและจีน) ให้ปล่อย localityName ว่างไว้และใช้ addressLine

ตัวอย่าง: เมืองในสหรัฐอเมริกา ชุมชนด้านไอที เมืองตามเขตไปรษณีย์ของสหราชอาณาจักร

administrativeAreaName

string

ไม่บังคับ: เขตการปกครองระดับสูงสุดของประเทศนี้" เช่น รัฐในสหรัฐอเมริกา ภูมิภาคไอที จังหวัดในจีน จังหวัดญี่ปุ่น"

postalCodeNumber

string

ไม่บังคับ: แม้ว่าจะชื่อ แต่ค่าPostalCodeNumber มักเป็นตัวอักษรและตัวเลขคละกัน เช่น "94043", "SW1W", "SW1W 9TQ"

countryCode

string

ไม่บังคับ: รหัสประเทศในที่อยู่ของลูกค้า ควรเป็น ISO-3166-1 Alpha-2

phone

string

ไม่บังคับ: หมายเลขโทรศัพท์ของลูกค้า

emailAddress

string

ไม่บังคับ: อีเมลของลูกค้า

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 หมดอายุแล้ว