การเลือกตลาด
'Market selection' คือฟีเจอร์ที่ช่วยให้ผู้ใช้เลือกมาร์เก็ตที่จะใช้ชำระเงินได้ ในสภาพแวดล้อมที่รองรับหลายมาร์เก็ต (เช่น App Store + Hive Store)
วิธีการทำงาน¶
หน้านี้อธิบาย 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 | Hive Store |
| 16 | steam | Steam |
| 17 | nowgg | now.gg |
getSelectedMarket¶
เรียก getSelectedMarket เพื่อรับ market type ที่ถูกเลือกอยู่ในปัจจุบัน
ช่วงเวลาที่ควรเรียก getSelectedMarket
ใช้เพื่อตรวจสอบ market ปัจจุบันก่อนส่งคำขอซื้อ