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

การตรวจสอบสิทธิ์สามารถเกิดขึ้นได้ในสภาพแวดล้อมที่แตกต่างกัน 3 แบบ:

  • แอป Android ของผู้ผสานการชำระเงิน
  • เว็บไซต์บนอุปกรณ์เคลื่อนที่ของผู้รวมการชำระเงิน
  • เว็บไซต์บนเดสก์ท็อปของผู้รวมการชำระเงิน

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

เว็บไซต์ในอุปกรณ์เคลื่อนที่และเดสก์ท็อปต้องเป็นไปตาม WebRedirect Authentication API ในขณะที่กระบวนการของแอป Android ต้องเป็นไปตาม ข้อกำหนดของ API การตรวจสอบสิทธิ์

ผู้ผสานรวมระบบควรใช้โซลูชัน Android APK เพื่อตรวจสอบสิทธิ์ผู้ใช้ การตรวจสอบสิทธิ์นี้มีรูปแบบที่ต่างกัน แต่มีวัตถุประสงค์เดียวกับ การตรวจสอบสิทธิ์ที่ตั้งค่าโดยเว็บ การตรวจสอบสิทธิ์

ผู้ใช้ตรวจสอบสิทธิ์กับผู้รวบรวมการชำระเงินผ่านAndroid กิจกรรม จะมีการใช้ Intent ในการตรวจสอบสิทธิ์ระหว่างการเชื่อมโยงบัญชีและ อุปสรรคของผู้ใช้ ในการป้องกันไม่ให้ 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 ต้องดำเนินการด้วย แอตทริบิวต์ android:theme ของ AndroidManifest และไม่ได้ใช้ Context.setTheme() แบบเป็นโปรแกรม การตั้งค่าธีมทำงานไม่ถูกต้องสำหรับหน้าต่าง ความโปร่งแสง Google จะบังคับให้กิจกรรมแรกที่เปิดตัวเป็นไปตาม แต่กิจกรรมย่อยใดๆ ที่เปิดตัวด้วยต้องเป็นไปตาม รูปแบบ ไม่เช่นนั้น การซื้อจากนักพัฒนาซอฟต์แวร์บุคคลที่สามอาจใช้งานไม่ได้