การเลือกตลาด
'Market selection' คือฟีเจอร์ที่ช่วยให้ผู้ใช้เลือกมาร์เก็ตที่จะใช้ชำระเงินได้ ในสภาพแวดล้อมที่รองรับหลายมาร์เก็ต (เช่น App Store + PG)
วิธีการทำงาน¶
หน้านี้อธิบาย API ที่จำเป็นสำหรับฟีเจอร์ market selection (setMarketSelection, getSelectedMarket เป็นต้น) รวมถึงลำดับและรูปแบบการเรียกใช้งาน
เมื่อเรียก marketConnect ระหว่างการเริ่มต้น IAP v4 ระบบจะคืนรายการมาร์เก็ตที่ใช้งานได้บนอุปกรณ์ หากมีหลายมาร์เก็ต ให้เรียก setMarketSelection เพื่อเลือกมาร์เก็ต จากนั้นเรียก getSelectedMarket และดำเนินการซื้อด้วย market type ที่ได้
ลำดับการเรียก API¶
flowchart TD
A(["marketConnect"])
B(["getProductInfo"])
C{"ผู้ใช้เปลี่ยน<br/>วิธีชำระเงิน (market)<br/>หรือไม่?"}
D(["setMarketSelection"])
E(["getSelectedMarket"])
F(["purchase / restore"])
G{"ต้องการซื้อเพิ่ม<br/>ด้วย market อื่นหรือไม่?"}
H([เสร็จสิ้น])
A -- "เรียกครั้งเดียวตอนเปิดแอป" --> B
B -- "เรียกครั้งเดียวต่อ market ตอนใช้งานครั้งแรก" --> C
C -- "Yes" --> D
C -- "No" --> F
D --> E --> F
F --> G
G -- "Yes" --> D
G -- "No" --> 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 ปัจจุบันก่อนส่งคำขอซื้อ