ดูรายการสินค้าและการซื้อ
ค้นหารายการสินค้า¶
เรียกใช้ API ค้นหารายการผลิตภัณฑ์เมื่อผู้ใช้เข้าสู่ร้านค้าในแอป หากผู้ใช้ขอรายการผลิตภัณฑ์ ให้ส่งคืนคลาส IAPV4Product พร้อมข้อมูลผลิตภัณฑ์
รายชื่อผลิตภัณฑ์และรายละเอียด¶
| ชื่อฟิลด์ | คำอธิบาย |
|---|---|
| marketPid | รหัสผลิตภัณฑ์ที่ลงทะเบียนในร้านค้าในแอป |
| currency | ประเภทสกุลเงิน (เช่น KRW/USD) |
| price | ราคาผลิตภัณฑ์ |
| title | ชื่อผลิตภัณฑ์ |
| displayPrice | สตริงประเภทของราคาผลิตภัณฑ์ (เช่น $100.00) เพิ่มเติม |
| productDescription | รายละเอียดผลิตภัณฑ์ |
| originalMarketJson | ข้อมูลผลิตภัณฑ์ที่ได้รับจากตลาด เมื่อใช้การสมัครสมาชิก Google V2 สามารถตรวจสอบข้อมูลผลิตภัณฑ์ที่กำหนดใน Google Play Console ได้ด้วย originalMarketJson |
| displayOriginalPrice | สตริงราคาก่อนส่วนลด |
| originalPrice | ราคาต้นฉบับโดยไม่มีส่วนลด |
| iconURL | ไอคอนผลิตภัณฑ์ (512*512) ใช้งานได้กับ Hive SDK v4.12.0 ขึ้นไป สำหรับ Google เท่านั้น |
displayPrice¶
- ส่ง displayPrice พร้อมกับการรวมกันของสัญลักษณ์สกุลเงินและราคาในคำสั่ง (เช่น $0.99) เนื่องจาก Android หรือ iOS มีประเภทการแสดงผลของตนเอง ลำดับของสัญลักษณ์สกุลเงินและราคาอาจแสดงผลแตกต่างกันในหลายประเทศขึ้นอยู่กับ OS
- ตรวจสอบให้แน่ใจว่าได้แสดงสัญลักษณ์สกุลเงินของแต่ละประเทศให้ตรงกับตารางของมัน อ้างอิงจากนโยบายตัวระบุเพื่อยืนยันตารางของสัญลักษณ์สกุลเงิน
- ในกรณีที่มีประเทศเพิ่มเติมที่ต้องการเพิ่มหรือเปลี่ยนแปลง VAT เซิร์ฟเวอร์จะคำนวณ VAT ของสกุลเงินทั้งหมดและเพิ่มไปยัง displayPrice, price, displayOriginalPrice และ originalPrice ดังนั้นคุณจึงไม่ต้องทำงานเพิ่มเติมเกี่ยวกับ VAT
Note
Google รองรับการแสดงราคาต้นฉบับเมื่อค่าของราคาและค่าของ originalPrice แตกต่างกัน หากสองค่านี้เหมือนกัน หมายความว่าสินค้านั้นไม่ได้ลดราคา
Apple ไม่ได้ให้ค่า iconURL
originalPrice และ displayOriginalPrice ใช้ได้เฉพาะสำหรับ Google (v4 12.0.0 +) และ Apple (v4 24.0.0 +) หากค่าราคาและค่าของ originalPrice เหมือนกัน หมายความว่าไม่ได้อยู่ในสถานะลดราคา ในทางกลับกัน หากสองค่าต่างกัน เนื่องจากมีการลดราคา คุณสามารถใช้เพื่อแสดงราคาลดราคาและราคาต้นฉบับแยกกัน
ในการค้นหารายการผลิตภัณฑ์ ให้เรียกใช้วิธี getProductInfo() ในคลาส IAPV4 เพื่อรับข้อมูลผลิตภัณฑ์ของรายการและยอดเงิน Lebi
ต่อไปนี้คือตัวอย่างโค้ดในการขอค้นหารายการผลิตภัณฑ์
API Reference: hive .IAPV4.getProductInfo
API Reference: IAPV4 ::getProductInfo
เอกสารอ้างอิง API: IAPV4.getProductInfo
API Reference: com .hive.IAPV4.getProductInfo
API Reference: IAPV4Interface .getProductInfo
API Reference: HIVEIAPV4::getProductInfo
Warning
การไม่เรียกใช้เมธอด getProductInfo() จะทำให้ไม่สามารถใช้ประโยชน์จากข้อมูลผลิตภัณฑ์ที่สามารถบริโภคได้เมื่อดำเนินการรายการผลิตภัณฑ์
มันต้องการให้ไคลเอนต์เกมดำเนินการตอบสนองโดยตรงสำหรับการคืนค่าความล้มเหลวของ Result API เช่น ลองใหม่จนกว่าจะได้รับการตอบกลับที่สำเร็จ หรือ แสดงป๊อปอัพข้อผิดพลาด (เช่น ตลาดไม่พร้อมใช้งาน) ให้กับผู้ใช้.
สำหรับรายละเอียดของรหัส API ผลลัพธ์ โปรดดูที่ Result API Code - IAP v4.
การซื้อสินค้า¶
เรียกใช้เมธอด purchase() ในคลาส IAPV4 พร้อมกับ Market PID ซึ่งเป็นพารามิเตอร์ที่ลงทะเบียนใน Apple App Store และ Google Play Store เพื่อขอซื้อผลิตภัณฑ์ใน IAP v4.
ต่อไปนี้คือตัวอย่างโค้ดสำหรับการขอซื้อผลิตภัณฑ์.
เอกสาร API: hive .IAPV4.purchase
#include "HiveIAPV4.h"
FString MarketPid = TEXT("YOUR_PRODUCT_MARKET_PID");
FString IapPayload = TEXT("YOUR_CUSTOM_PAYLOAD");
FHiveIAPV4::Purchase(MarketPid, IapPayload, FHiveIAPV4OnPurchaseDelegate::CreateLambda([this](const FHiveResultAPI& Result, const FHiveIAPV4Receipt& Receipt) {
if (Result.IsSuccess()) {
//TODO: Request verification of receipt with received receipt
}
}));
API Reference: IAPV4 ::purchase
#include <HIVE_SDK_Plugin/HIVE_CPP.h>
using namespace std;
using namespace hive;
string marketPid = "{YOUR_PRODUCT_MARKET_PID}";
string iapPayload = "{YOUR_CUSTOM_PAYLOAD}";
IAPV4::purchase(marketPid, iapPayload, [=](ResultAPI const & result, IAPV4Receipt const & receipt) {
if (result.isSuccess()) {
// TODO: Request verification of receipt with received receipt
}
});
API Reference: com.hive.IAPV4.purchase
import com.hive.IAPV4
import com.hive.ResultAPI
val marketPid = "{YOUR_PRODUCT_MARKET_PID}"
val iapPayload = "{YOUR_CUSTOM_PAYLOAD}"
IAPV4.purchase(marketPid, iapPayload, object : IAPV4.IAPV4PurchaseListener {
override fun onIAPV4Purchase(result: ResultAPI, iapV4Receipt: IAPV4.IAPV4Receipt?) {
if (result.isSuccess) {
// call successful
}
}
})
API Reference: com .hive.IAPV4.purchase
API Reference: HIVEIAPV4::purchase:additionalInfo:handler:
เอกสารอ้างอิง API: HIVEIAPV4::purchase:additionalInfo:handler:
#import <HIVEService/HIVEService-Swift.h>
NSString *marketPid = @"{YOUR_PRODUCT_MARKET_PID}";
NSString *iapPayload = @"{YOUR_CUSTOM_PAYLOAD}";
[HIVEIAPV4 purchase: marketPid iapPayload: iapPayload handler: ^(HIVEResultAPI *result, HIVEIAPV4Receipt *receipt) {
if ([result isSuccess]) {
// TODO: Request verification of receipt with received receipt
}
}];
Note
คุณสมบัติที่รองรับอาจแตกต่างกันไปตามระบบปฏิบัติการ/ตลาด. สำหรับรายละเอียดเพิ่มเติม โปรดดู สถานะของคุณสมบัติที่รองรับ.
การใช้ iapPayload¶
เมื่อเรียกใช้วิธี purchase() หรือ purchaseSubscription บริษัทเกมสามารถส่ง iapPayload เป็นอาร์กิวเมนต์ได้ iapPayload คือข้อมูลเมตาดาต้าการซื้อที่กำหนดโดยบริษัทเกม ตัวอย่างเช่น อาจรวมถึงเวลาการซื้อ ข้อมูลผู้ใช้ ข้อมูลตัวละครในเกม จำนวนการซื้อ (สำหรับสินค้าที่ใช้แล้วหมดไป) โทเค็นการซื้อ ฯลฯ
หากคุณส่ง iapPayload เป็นอาร์กิวเมนต์ เซิร์ฟเวอร์ IAP ของ Hive จะจับคู่ค่าของ iapPayload นี้กับใบเสร็จการซื้อที่ตรงกันเมื่อ HYPERLINK_MD_20 และแจ้งให้เซิร์ฟเวอร์เกมทราบ โดยเฉพาะอย่างยิ่ง เซิร์ฟเวอร์จะจับคู่ค่าของ iapPayload กับคีย์ใบเสร็จที่ไม่ซ้ำกัน hiveiap_transaction_id และส่งต่อไปยังเซิร์ฟเวอร์เกม
การจับคู่ใบเสร็จการซื้อกับ iapPayload สามารถช่วยแก้ปัญหาต่างๆ ได้ ตัวอย่างเช่น หากเกิดข้อผิดพลาดระหว่างการซื้อสินค้าและการชำระเงินเสร็จสมบูรณ์ แต่สินค้าไม่ได้ถูกส่งมอบ คุณสามารถใช้ restore() method เพื่อขอใบเสร็จการซื้อของผู้ใช้ อย่างไรก็ตาม ใบเสร็จจะไม่มีข้อมูลเกี่ยวกับว่าสินค้าใดควรจะถูกส่งมอบ เมื่อไหร่ที่มันถูกซื้อ หรือว่าตัวละครใดทำการซื้อ โดยการจับคู่ใบเสร็จการซื้อกับ iapPayload ที่เกี่ยวข้อง คุณสามารถได้รับข้อมูลนี้และส่งมอบสินค้าที่ถูกต้องให้กับผู้ใช้
Note
การใช้ iapPayload คุณสามารถวิเคราะห์ข้อมูลผู้ใช้ที่ใช้ระบบการชำระเงินในทางที่ผิด
iapPayload สามารถมีขนาดสูงสุด 20KB (UTF-8).
ฟีเจอร์ที่รองรับอาจแตกต่างกันไปตามระบบปฏิบัติการ/ตลาด สำหรับรายละเอียดเพิ่มเติม โปรดดูที่ สถานะของฟีเจอร์ที่รองรับ.
Warning
เมื่อส่ง iapPayload แนะนำให้เข้ารหัสมัน แตกต่างจากใบเสร็จ, iapPayload มีความเสี่ยงต่อการปลอมแปลงและการดัดแปลง
ตั้งค่าปริมาณการซื้อของใช้ที่ใช้แล้วหมดไป¶
Google Play Store อนุญาตให้ผู้ใช้ซื้อผลิตภัณฑ์ในแอปเดียวกันสองรายการหรือมากกว่าในการทำธุรกรรมเดียวโดยการระบุจำนวนในรถเข็น หากการตั้งค่าผลิตภัณฑ์ใน Google Play Console ของคุณอนุญาตให้มีการซื้อหลายจำนวน แอปของคุณควรจัดการการซื้อหลายจำนวนและส่งมอบรายการตามจำนวนการซื้อที่ระบุ อย่างไรก็ตาม การซื้อหลายจำนวนจะใช้ได้เฉพาะสำหรับผลิตภัณฑ์ในแอปที่ใช้ได้ ซึ่งเป็นผลิตภัณฑ์ที่สามารถซื้อใหม่ได้หลังจากการบริโภค อย่าเปิดใช้งานฟีเจอร์นี้สำหรับผลิตภัณฑ์ที่ไม่สามารถซื้อซ้ำได้
Note
หากคุณใช้การซื้อหลายจำนวนสำหรับรายการ คุณสามารถตรวจสอบจำนวนการซื้อได้ที่ hiveiap_quantity ในการตอบกลับการตรวจสอบใบเสร็จ.
ข้อควรระวังก่อนเรียกใช้วิธี purchase()¶
- หากเกิดข้อผิดพลาด RESPONSE_FAIL หรือ CANCELED ขณะเรียกใช้เมธอด
purchase()เนื่องจากปัญหาตลาด ให้แจ้งปัญหาแก่ผู้ใช้ว่ามีข้อผิดพลาดในกระบวนการซื้อ - หากผู้ใช้ได้รับการแจ้งเตือนเกี่ยวกับปัญหาการซื้อเนื่องจากปัญหาตลาด ให้เรียกใช้เมธอด
restore()เพื่อกู้คืนการซื้อ - หากเกิดข้อผิดพลาด NEED_RESTORE ขณะเรียกใช้เมธอด
purchase()การซื้อจะถูกยกเลิก เพื่อกู้คืนการซื้อ ให้เรียกใช้เมธอดrestore() - ในกรณีที่ระบบการเรียกเก็บเงินพยายามชำระเงินแบบออฟไลน์หรือเด็กขอให้พ่อแม่ชำระเงินแทนขณะเรียกใช้เมธอด
purchase()จะมีการส่งข้อผิดพลาด ITEM_PENDING และรายการจะอยู่ในสถานะรอดำเนินการ การซื้อแทนของพ่อแม่ได้รับการสนับสนุนสำหรับ Google Play Store, Amazon และ Apple App Store - หากชำระเงินแบบออฟไลน์สำเร็จหรือพ่อแม่ชำระเงินแทนลูกของตน
IAP_UPDATEDเหตุการณ์จะถูกส่งผ่าน UserEngagement เมื่อพารามิเตอร์ถูกส่งกลับผ่านการเรียกกลับ eventEnd ของ UserEngagement ให้เรียกใช้restoreSubscription()หากtypeเป็น "subscription" หรือเรียกใช้restore()หากtypeว่าง สลิปที่เสร็จสมบูรณ์สามารถตรวจสอบได้โดยการเรียกใช้วิธีเหล่านี้ - เพื่อแก้ไขข้อผิดพลาด NOT_SUPPORTED ที่แจ้งว่าการซื้อไม่สามารถใช้ได้ ให้ดูที่ คู่มือสำหรับวลีในการจำกัดการซื้อในแอป
- เมื่อทำการซื้อผ่าน HIVESTORE ในสภาพแวดล้อมเดสก์ท็อป หน้าจอคำขอชำระเงินจะแสดงในหน้าต่างใหม่

การเรียก hive.IAPV4.purchase(marketPid, null, onIAPV4PurchaseCB); จะส่งคืนการตอบสนองทันทีพร้อมกับ ErrorCode:IAPSUCCESS=90 และ Code:IAPV4HiveStoreSuccess=-6110000 โดยไม่มีข้อมูลใบเสร็จ ผ่าน onIAPV4PurchaseCB ขึ้นอยู่กับ ErrorCode (หรือ Code) สามารถแสดงข้อความแนะนำเกี่ยวกับสถานะของความมีสิทธิ์ในการแจกจ่ายสินค้าได้
รหัสข้อผิดพลาดในการซื้อ¶
| รหัสข้อผิดพลาด | คำอธิบาย |
|---|---|
| NEED_INITIALIZE | ไม่สามารถเริ่มต้นได้ |
| NETWORK | ข้อผิดพลาดของเครือข่าย |
| NOT_SUPPORTED | ไม่สามารถซื้อได้ (การซื้อภายในแอปถูกปฏิเสธบนอุปกรณ์ เป็นต้น) ผู้ใช้ตั้งร้านค้าที่ไม่สามารถใช้งานได้ |
| INVALID_SESSION | เซสชันไม่ถูกต้องสำหรับการซื้อ |
| INVALID_PARAM | พารามิเตอร์ไม่ถูกต้อง |
| IN_PROGRESS | API การซื้อกำลังดำเนินการ |
| ITEM_PENDING | ขอให้ชำระเงินแบบออฟไลน์หรือเด็กขอให้พ่อแม่ชำระเงินแทนเขา/เธอ |
| CANCELED | ผู้ใช้ยกเลิก |
| NEED_RESTORE | ต้องการ API การกู้คืน |
| RESPONSE_FAIL | ข้อผิดพลาดของเซิร์ฟเวอร์ IAP |
วลีที่ต้องจำกัดในการซื้อในแอป¶
| Korean | ฟีเจอร์การซื้อในแอพถูกบล็อคทำให้ไม่สามารถทำการซื้อได้ กรุณาปลดบล็อคแล้วลองอีกครั้ง (การตั้งค่า > เวลาหน้าจอ > จำกัดเนื้อหาและความเป็นส่วนตัว > การซื้อใน iTunes และ App Store > การซื้อในแอพ) |
|---|---|
| English | คุณไม่สามารถทำการซื้อได้เนื่องจากฟีเจอร์การซื้อในแอพถูกบล็อค กรุณาปลดบล็อคฟีเจอร์แล้วลองอีกครั้ง (การตั้งค่า > เวลาหน้าจอ > การจำกัดเนื้อหาและความเป็นส่วนตัว > การซื้อใน iTunes และ App Store > การซื้อในแอพ) |
| French | คุณไม่สามารถทำการซื้อได้เนื่องจากฟีเจอร์การซื้อในแอพถูกบล็อค กรุณาปลดบล็อคฟีเจอร์แล้วลองอีกครั้ง (การตั้งค่า > เวลาหน้าจอ > การจำกัดเนื้อหาและความเป็นส่วนตัว > การซื้อใน iTunes และ App Store > การซื้อในแอพ) |
| German | คุณไม่สามารถทำการซื้อได้เนื่องจากฟีเจอร์การซื้อในแอพถูกบล็อค กรุณาปลดบล็อคฟีเจอร์แล้วลองอีกครั้ง (การตั้งค่า > เวลาหน้าจอ > การจำกัดเนื้อหาและความเป็นส่วนตัว > การซื้อใน iTunes และ App Store > การซื้อในแอพ) |
| Japanese | คุณไม่สามารถทำการซื้อได้เนื่องจากฟีเจอร์การซื้อในแอพถูกบล็อค กรุณาปลดบล็อคฟีเจอร์แล้วลองอีกครั้ง (การตั้งค่า > เวลาหน้าจอ > การจำกัดเนื้อหาและความเป็นส่วนตัว > การซื้อใน iTunes และ App Store > การซื้อในแอพ) |
| Chinese Simplified | คุณไม่สามารถทำการซื้อได้เนื่องจากฟีเจอร์การซื้อในแอพถูกบล็อค กรุณาปลดบล็อคฟีเจอร์แล้วลองอีกครั้ง (การตั้งค่า > เวลาหน้าจอ > การจำกัดเนื้อหาและความเป็นส่วนตัว > การซื้อใน iTunes และ App Store > การซื้อในแอพ) |
| Chinese Traditional | คุณไม่สามารถทำการซื้อได้เนื่องจากฟีเจอร์การซื้อในแอพถูกบล็อค กรุณาปลดบล็อคฟีเจอร์แล้วลองอีกครั้ง (การตั้งค่า > เวลาหน้าจอ > การจำกัดเนื้อหาและความเป็นส่วนตัว > การซื้อใน iTunes และ App Store > การซื้อในแอพ) |
| Russian | คุณไม่สามารถทำการซื้อได้เนื่องจากฟีเจอร์การซื้อในแอพถูกบล็อค กรุณาปลดบล็อคฟีเจอร์แล้วลองอีกครั้ง (การตั้งค่า > เวลาหน้าจอ > การจำกัดเนื้อหาและความเป็นส่วนตัว > การซื้อใน iTunes และ App Store > การซื้อในแอพ) |
| Spanish | คุณไม่สามารถทำการซื้อได้เนื่องจากฟีเจอร์การซื้อในแอพถูกบล็อค กรุณาปลดบล็อคฟีเจอร์แล้วลองอีกครั้ง (การตั้งค่า > เวลาหน้าจอ > การจำกัดเนื้อหาและความเป็นส่วนตัว > การซื้อใน iTunes และ App Store > การซื้อในแอพ) |
| Portuguese | คุณไม่สามารถทำการซื้อได้เนื่องจากฟีเจอร์การซื้อในแอพถูกบล็อค กรุณาปลดบล็อคฟีเจอร์แล้วลองอีกครั้ง (การตั้งค่า > เวลาหน้าจอ > การจำกัดเนื้อหาและความเป็นส่วนตัว > การซื้อใน iTunes และ App Store > การซื้อในแอพ) |
| Indonesian | คุณไม่สามารถทำการซื้อได้เนื่องจากฟีเจอร์การซื้อในแอพถูกบล็อค กรุณาปลดบล็อคฟีเจอร์แล้วลองอีกครั้ง (การตั้งค่า > เวลาหน้าจอ > การจำกัดเนื้อหาและความเป็นส่วนตัว > การซื้อใน iTunes และ App Store > การซื้อในแอพ) |
| Turkish | คุณไม่สามารถทำการซื้อได้เนื่องจากฟีเจอร์การซื้อในแอพถูกบล็อค กรุณาปลดบล็อคฟีเจอร์แล้วลองอีกครั้ง (การตั้งค่า > เวลาหน้าจอ > การจำกัดเนื้อหาและความเป็นส่วนตัว > การซื้อใน iTunes และ App Store > การซื้อในแอพ) |
| Vietnamese | คุณไม่สามารถทำการซื้อได้เนื่องจากฟีเจอร์การซื้อในแอพถูกบล็อค กรุณาปลดบล็อคฟีเจอร์แล้วลองอีกครั้ง (การตั้งค่า > เวลาหน้าจอ > การจำกัดเนื้อหาและความเป็นส่วนตัว > การซื้อใน iTunes และ App Store > การซื้อในแอพ) |
| Thai | คุณไม่สามารถทำการซื้อได้เนื่องจากฟีเจอร์การซื้อในแอพถูกบล็อค กรุณาปลดบล็อคฟีเจอร์แล้วลองอีกครั้ง (การตั้งค่า > เวลาหน้าจอ > การจำกัดเนื้อหาและความเป็นส่วนตัว > การซื้อใน iTunes และ App Store > การซื้อในแอพ) |
| Italian | คุณไม่สามารถทำการซื้อได้เนื่องจากฟีเจอร์การซื้อในแอพถูกบล็อค กรุณาปลดบล็อคฟีเจอร์แล้วลองอีกครั้ง (การตั้งค่า > เวลาหน้าจอ > การจำกัดเนื้อหาและความเป็นส่วนตัว > การซื้อใน iTunes และ App Store > การซื้อในแอพ) |
| Arabic | คุณไม่สามารถทำการซื้อได้เนื่องจากฟีเจอร์การซื้อในแอพถูกบล็อค กรุณาปลดบล็อคฟีเจอร์แล้วลองอีกครั้ง (การตั้งค่า > เวลาหน้าจอ > การจำกัดเนื้อหาและความเป็นส่วนตัว > การซื้อใน iTunes และ App Store > การซื้อในแอพ) |
วลีเพื่อแจ้งนโยบายการถอนการซื้อ¶
ตามพระราชบัญญัติการส่งเสริมอุตสาหกรรมเนื้อหา Content Industry Promotion Act กรุณาเปิดเผยประกาศเกี่ยวกับการถอนการซื้อและลิงก์ไปยังนโยบายการถอนการซื้อของคุณในร้านเกมของคุณ สำหรับ iOS หากมีการเปิดเผยประกาศเกี่ยวกับการถอนการซื้อในระหว่างกระบวนการตรวจสอบของ Apple ในแอปของคุณ อาจเป็นเหตุผลในการปฏิเสธการตรวจสอบเกมของคุณ