API การเติมเงิน APK ของ Android

การเติมเงินจะเกิดขึ้นได้ในสภาพแวดล้อม 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

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

อื่นๆ

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