API การตรวจสอบสิทธิ์ APK ของ Android

การตรวจสอบสิทธิ์สามารถเกิดขึ้นได้ในสภาพแวดล้อมที่แตกต่างกัน 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

Activity.RESULT_OK
การตรวจสอบสิทธิ์สำเร็จ
Activity.RESULT_CANCELED ผู้ใช้ยกเลิกการโฟลว์ด้วยตนเองและควรล้มเลิกกระบวนการดังกล่าว
Activity.RESULT_FIRST_USER การตรวจสอบสิทธิ์ล้มเหลวด้วยเหตุผลที่ร้ายแรงและควรล้มเลิกกระบวนการดังกล่าว เซิร์ฟเวอร์ IE แสดงการตอบสนอง HTTP 500 เมื่อเข้าสู่ระบบ

อื่นๆ

ช่อง
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 จะบังคับให้กิจกรรมแรกที่เปิดตัวเป็นไปตามรูปแบบนี้ แต่กิจกรรมย่อยใดๆ ที่เปิดตัวไปแล้วก็ต้องเป็นไปตามรูปแบบนี้ด้วย หากไม่เป็นเช่นนั้น การซื้อจากนักพัฒนาซอฟต์แวร์บุคคลที่สามอาจใช้งานไม่ได้