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