การเลือกตลาด
'Market selection' คือฟีเจอร์ที่ช่วยให้ผู้ใช้เลือกมาร์เก็ตที่จะใช้ชำระเงินได้ ในสภาพแวดล้อมที่รองรับหลายมาร์เก็ต (เช่น App Store + PG)
วิธีการทำงาน¶
หน้านี้อธิบาย API ที่จำเป็นสำหรับฟีเจอร์ market selection (setMarketSelection, getSelectedMarket เป็นต้น) รวมถึงลำดับและรูปแบบการเรียกใช้งาน
เมื่อเรียก marketConnect ระหว่างการเริ่มต้น IAP v4 ระบบจะคืนรายการมาร์เก็ตที่ใช้งานได้บนอุปกรณ์ หากมีหลายมาร์เก็ต ให้เรียก setMarketSelection เพื่อเลือกมาร์เก็ต จากนั้นเรียก getSelectedMarket และดำเนินการซื้อด้วย market type ที่ได้
ลำดับการเรียก API¶
marketConnect: เรียกหนึ่งครั้งเมื่อเปิดแอปgetProductInfo: เรียกครั้งแรกหนึ่งครั้งต่อสโตร์ (ไม่จำเป็นต้องเรียกซ้ำสำหรับการซื้อเพิ่มเติมภายในสโตร์เดียวกัน)setMarketSelection: เรียกเฉพาะเมื่อผู้ใช้เปลี่ยนไปยังสโตร์อื่นgetSelectedMarket: ไม่บังคับ (ใช้ตรวจสอบสโตร์ที่เลือกอยู่ในปัจจุบัน)
flowchart TD
A(["marketConnect"])
D(["setMarketSelection"])
E(["getSelectedMarket"])
B(["getProductInfo"])
C{"เปลี่ยนวิธีชำระเงิน (สโตร์)"}
F(["purchase / restore / transactionFinish"])
H([เสร็จสิ้น])
A --> D
D --> E --> B
B --> C
C -- "ใช่" --> D
C -- "ไม่ใช่" --> F
F --> H การเรียก getProductInfo¶
ใน flow ข้างต้น ให้เรียก getProductInfo เพียงครั้งเดียวต่อ market ในครั้งแรก
- หลังเรียกสำเร็จ ข้อมูลสินค้าของ market นั้นจะถูกแคชใน SDK แม้ภายหลังเปลี่ยน market ด้วย
setMarketSelectionก็ไม่ต้องเรียกซ้ำ
setMarketSelection¶
API setMarketSelection ใช้กำหนด market สำหรับขั้นตอนซื้อถัดไป โดยรับค่า IAPV4Type
ช่วงเวลาที่ควรเรียก setMarketSelection
ให้เรียกหลัง marketConnect และก่อน purchase หรือ restore * เรียกเมื่อผู้ใช้เปลี่ยนวิธีชำระเงิน (market) * หลังเปลี่ยนแล้ว purchase และ restore จะทำงานตาม market ใหม่
IAPV4Type¶
IAPV4Type คือ enum ที่แทนประเภท market ที่รองรับใน IAP v4
| Value | Name | Description |
|---|---|---|
| 0 | notSelected | ยังไม่เลือก |
| 1 | appStore | Apple App Store |
| 2 | Google Play Store | |
| 3 | lebi | Lebi Market |
| 4 | oneStore | ONE Store |
| 5 | amazon | Amazon Appstore |
| 6 | samsung | Samsung Galaxy Store |
| 7 | huawei | Huawei AppGallery |
| 8 | funtap | Funtap |
| 9 | oppoAppMarket | OPPO App Market |
| 10 | vivoAppStore | vivo App Store |
| 11 | tencentMyapp | Tencent Myapp |
| 12 | xiaomiAppStore | Xiaomi App Store |
| 13 | huaweiAppGalleryChina | Huawei AppGallery China |
| 14 | facebookCloudGame | Facebook Cloud Game |
| 15 | hiveStore | PG |
| 16 | steam | Steam |
| 17 | nowgg | now.gg |
getSelectedMarket¶
เรียก getSelectedMarket เพื่อรับ market type ที่ถูกเลือกอยู่ในปัจจุบัน
ช่วงเวลาที่ควรเรียก getSelectedMarket
ใช้เพื่อตรวจสอบ market ปัจจุบันก่อนส่งคำขอซื้อ