การตรวจสอบสิทธิ์สามารถเกิดขึ้นได้ในสภาพแวดล้อมที่แตกต่างกัน 3 แบบดังนี้
- แอป Android ของผู้รวมการชำระเงิน
- เว็บไซต์บนอุปกรณ์เคลื่อนที่ของผู้รวมชำระเงิน
- เว็บไซต์บนเดสก์ท็อปของผู้รวมการชำระเงิน
ไม่ว่าจะเป็นขั้นตอนใด Google จะส่งต่อการโต้ตอบของผู้ใช้ไปยังซอฟต์แวร์ของผู้ผสานการชำระเงิน ผู้รวมบริการชำระเงินสามารถเลือกแสดงอินเทอร์เฟซแก่ผู้ใช้หรือเพียงแค่ส่งคืนทันที ถ้ามีข้อมูลที่เหมาะสมอยู่แล้ว ขั้นตอนทั้งหมดจะส่งผลให้ผู้ผสานการทำงานสร้าง AuthenticationResponse คำตอบนี้จะได้รับการลงนามและส่งกลับไปยัง Google
เว็บไซต์ในอุปกรณ์เคลื่อนที่และเดสก์ท็อปต้องเป็นไปตามข้อกำหนด WebRedirect Authentication API ขณะที่ขั้นตอนของแอป Android ต้องเป็นไปตามข้อกำหนด API การตรวจสอบสิทธิ์ของ Android
ผู้รวมบริการควรใช้โซลูชัน Android APK เพื่อตรวจสอบสิทธิ์ผู้ใช้ การตรวจสอบสิทธิ์นี้มีรูปแบบที่ต่างกัน แต่มีวัตถุประสงค์เดียวกับการตรวจสอบสิทธิ์ที่การตรวจสอบสิทธิ์ผ่านเว็บ
ผู้ใช้ตรวจสอบสิทธิ์กับผู้ผสานการชำระเงินผ่านทางกิจกรรม Android จะมีการเรียกใช้เจตนาการตรวจสอบสิทธิ์ในระหว่างการเชื่อมโยงบัญชีและเพื่อให้ผู้ใช้ทำงานผิดพลาด ผู้ผสานรวมจำเป็นต้องรวมสิ่งต่อไปนี้ไว้ในธีมกิจกรรมเพื่อป้องกันไม่ให้ Android ยุติ Play ในเบื้องหลังระหว่างการตรวจสอบสิทธิ์
<item name="android:windowIsTranslucent">true</item>
คำจำกัดความของเมธอด
Intent ต้องมีพร็อพเพอร์ตี้ต่อไปนี้
คุณสมบัติของเมธอด | |
---|---|
การดำเนินการ |
com.google.android.payments.standard.AUTHENTICATE_V1 |
หมวดหมู่ | android.intent.category.DEFAULT |
ส่งคำขอ
ช่อง | |
---|---|
gspAuthenticationRequest
|
AuthenticationRequest
คำขอตรวจสอบสิทธิ์ |
gspAssociationId
|
string
หากมี ข้อมูลนี้จะมีตัวระบุที่ผู้ผสานการทำงานระบบใช้เพื่อค้นหาข้อมูลเข้าสู่ระบบสำหรับผู้ใช้ที่ทดสอบ หากไม่เห็นส่วนนี้ ผู้ใช้จะมีตัวเลือกในการเปลี่ยนการระบุบัญชี |
คำตอบ
หลังจากที่ผู้ใช้ตรวจสอบสิทธิ์เสร็จแล้ว แอปพลิเคชันของคุณต้องส่งความตั้งใจผลลัพธ์กลับไปที่ Google หากการตรวจสอบสิทธิ์สำเร็จ ให้สร้าง Intent และเพิ่ม gspAuthenticationResponse ที่เข้ารหัสเป็นส่วนเสริม จากนั้น ตั้งค่าผลลัพธ์กิจกรรมเป็นรหัสผลลัพธ์ที่เหมาะสม
...
result.setExtra("gspAuthenticationResponse", gspAuthenticationResponse);
setResult(Activity.RESULT_OK, result);
...
finish();
ผลลัพธ์
ช่อง | |||||||
---|---|---|---|---|---|---|---|
ผลลัพธ์ |
int
|
อื่นๆ
ช่อง | |
---|---|
gspAuthenticationResponse |
AuthenticationResponse
การตอบกลับการตรวจสอบสิทธิ์ ค่าที่เข้ารหัสนี้ต้องไม่เกิน 1 KB |
ข้อกำหนดอื่นๆ เกี่ยวกับกิจกรรม
กิจกรรมที่รองรับการดำเนินการ AUTHENTICATE_V1
ที่กล่าวถึงข้างต้นต้องตรวจสอบด้วยว่าตัวเรียกใช้ API มาจากแอปพลิเคชันที่ Google รับรองเท่านั้น
วิธีนี้จะช่วยป้องกันไม่ให้แอปอื่นๆ พยายามเรียกใช้กิจกรรมของคุณและเรียกโทเค็นระบุตัวตน ซึ่งทำได้โดยใช้ StandardPaymentUtils.verifyCallingActivityIsGoogleSigned
ที่ให้มาหลัง super.onCreate
ภายในการใช้งานกิจกรรม
ตัวอย่างมีดังนี้
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
StandardPaymentsUtils.verifyCallingActivityIsGoogleSigned(this);
....
}
กิจกรรมทั้งหมดที่เกิดขึ้นภายในขั้นตอน authenticate
ต้องมีธีมกิจกรรมที่มี windowIsTranslucent=true
ซึ่งต้องดำเนินการโดยใช้แอตทริบิวต์ AndroidManifest android:theme และไม่ใช้ Context.setTheme()
โดยโปรแกรมแล้ว การตั้งค่าธีมทำงานไม่ถูกต้องสำหรับความโปร่งแสงของหน้าต่าง Google จะบังคับให้กิจกรรมแรกที่เปิดตัวเป็นไปตามรูปแบบนี้ แต่กิจกรรมย่อยใดๆ ที่เปิดตัวไปแล้วก็ต้องเป็นไปตามรูปแบบนี้ด้วย หากไม่เป็นเช่นนั้น การซื้อจากนักพัฒนาซอฟต์แวร์บุคคลที่สามอาจใช้งานไม่ได้