การชำระเงิน Web PG
API การชำระเงิน PG บนเว็บคือ API ที่ใช้เมื่อคุณต้องการนำการชำระเงิน PG ไปใช้บนเว็บไซต์ แม้ว่าจะไม่ใช้ Hive SDK billing เมื่อพัฒนาแอป Windows API การชำระเงิน PG บนเว็บจะแตกต่างจาก API ที่นำการชำระเงิน PG ไปใช้ในแอป
Note
ในการใช้งานการชำระเงิน PG ในแอป คุณต้องใช้ Hive SDK Billing และ General PG Payment API.
การสอบถามรายการสินค้า¶
ดึงข้อมูลสินค้า ใช้ในการแสดงรายการสินค้าภายในแอป
URL ที่ร้องขอ¶
สภาพแวดล้อม | URL |
---|---|
URL การผลิต | https://store.withhive.com/external/api/product |
URL แซนด์บ็อกซ์ | https://sandbox-store.withhive.com/external/api/product |
วิธีการ HTTP | POST |
ประเภทเนื้อหา | text/html; charset=utf-8 |
รูปแบบข้อมูล | JSON |
การอนุญาต | Bearer (token) |
โทเค็น Bearer จะตรงกับคีย์การตรวจสอบสิทธิ์ Hive ในคอนโซล Hive App Center > Project Management > Select Game Company > Game Details > Basic Information.
พารามิเตอร์คำขอ¶
ฟิลด์ | ประเภท | จำเป็น | คำอธิบาย |
---|---|---|---|
api | String | O | ตัวระบุ API (`product` ค่าคงที่) |
market_id | String | O | Hive รหัสตลาด (การชำระเงิน PG: `15` ค่าคงที่) |
appid | String | O | Hive รหัสแอป |
hive_country | String | O | รหัสประเทศ (ISO 3166-1 สองตัวอักษร) |
game_language | String | O | ภาษา (ISO 639-1 สองตัวอักษร) |
vid | String | O | Hive ข้อมูลบัญชี (Player ID) |
vid_type | String | O | ประเภทบัญชี (สำหรับเกมใหม่, v4) |
market_pid_type | String | O | ประเภทผลิตภัณฑ์ (ใช้แล้ว: ใช้แล้ว) |
องค์ประกอบการตอบกลับ¶
ฟิลด์ | ประเภท | จำเป็น | คำอธิบาย |
---|---|---|---|
result | จำนวนเต็ม | ใช่ | รหัสการตอบกลับ (0 คือสำเร็จ, อื่นๆ คือข้อผิดพลาด) |
result_msg | สตริง | ใช่ | ข้อความการตอบกลับ |
product_list | วัตถุ | ใช่ | รายการข้อมูลผลิตภัณฑ์ |
product_list > market_pid | สตริง | ใช่ | PID ของผลิตภัณฑ์ |
product_list > price | จำนวนเต็ม | ใช่ | ราคาผลิตภัณฑ์ (ค่าตัวเลข) |
product_list > currency | สตริง | ใช่ | สกุลเงินของราคาผลิตภัณฑ์ |
product_list > display_price | สตริง | ใช่ | ราคาผลิตภัณฑ์ (รวมสัญลักษณ์สกุลเงิน) |
product_list > title | สตริง | ใช่ | ชื่อผลิตภัณฑ์ |
product_list > description | สตริง | ใช่ | คำอธิบายผลิตภัณฑ์ |
product_list > product_type | สตริง | ใช่ | ประเภทผลิตภัณฑ์ (ใช้แล้ว) |
update_date | สตริง | ใช่ | วันที่และเวลาที่อัปเดตล่าสุดสำหรับข้อมูล PID ของผลิตภัณฑ์ |
ตัวอย่างคำขอ¶
curl -L -v \
-d '{"api": "product","market_id": 15,"appid": "com.com2us.hivesdk.windows.microsoftstore.global.normal","hive_country": "KR","game_language": "ko","vid": "100000000000","vid_type": "v4","market_pid_type": "consumable"}' \
-H "Content-Type: text/html" \
-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJIaXZlIiwiaWF0IjoxNjAyMDU2NzI2LCJqdGkiOiIxODczMTExMzIwIn0.3soFiHTPlObCoqR5xX9ZeOQTSvnHrHDHWmopP3QfWtY" \
https://sandbox-store.withhive.com/external/api/product
ตัวอย่างการตอบกลับ¶
{
"result": 0,
"result_msg": "success",
"product_list": [
{
"market_pid": "com.com2us.hivesdk.windows.microsoftstore.global.normal.item01",
"price": 1200,
"currency": "KRW",
"display_price": "₩1,200",
"title": "크리스탈 한 줌",
"description": "크리스탈 한 줌",
"product_type": "consumable"
}, {
"market_pid": "com.com2us.hivesdk.windows.microsoftstore.global.normal.item02",
"price": 2500,
"currency": "KRW",
"display_price": "₩2,500",
"title": "크리스탈 묶음",
"description": "크리스탈 묶음",
"product_type": "consumable"
}, {
"market_pid": "com.com2us.hivesdk.windows.microsoftstore.global.normal.item03",
"price": 3900,
"currency": "KRW",
"display_price": "₩3,900",
"title": "크리스탈 더미",
"description": "크리스탈 더미",
"product_type": "consumable"
}
],
"update_date": "2022-10-28 16:11:23"
}
คำขอการสั่งซื้อสินค้า¶
ทำการขอสั่งซื้อผลิตภัณฑ์โดยใช้ข้อมูล PID
(รหัสผลิตภัณฑ์) ที่เลือกจากรายการผลิตภัณฑ์
URL การร้องขอ¶
สภาพแวดล้อม | URL |
---|---|
URL การผลิต | https://store.withhive.com/external/api/order |
URL แซนด์บ็อกซ์ | https://sandbox-store.withhive.com/external/api/order |
วิธีการ HTTP | POST |
ประเภทเนื้อหา | text/html; charset=utf-8 |
รูปแบบข้อมูล | JSON |
การอนุญาต | Bearer (token) |
โทเค็น Bearer จะตรงกับ Hive คีย์การตรวจสอบสิทธิ์ที่พบใน Hive คอนโซล App Center > Project Management > Select Game Company > Game Details > Basic Information.
พารามิเตอร์การร้องขอ¶
ฟิลด์ | ประเภท | จำเป็น | คำอธิบาย |
---|---|---|---|
market_id | String | O | Hive รหัสตลาด |
appid | String | O | Hive Appid |
hive_country | String | O | รหัสประเทศ (ISO 3166-1 สองตัวอักษร) |
game_language | String | O | ภาษา (ISO 639-1 สองตัวอักษร) |
vid | String | O | Hive ข้อมูลบัญชี (Player ID) |
vid_type | String | O | ประเภทบัญชี (สำหรับเกมใหม่, v4) |
market_pid | String | O | Product PID |
server_id | String | O | รหัสเซิร์ฟเวอร์ |
os | String | O | Window: W, MAC: M, Android: A |
quantity | Integer | X | จำนวนการซื้อ (ค่าเริ่มต้นคือ 1 หากไม่ได้ส่ง) |
iap_payload | String | X | ข้อมูลเมตาการซื้อที่กำหนดโดยนักพัฒนาแอป ที่นี่ |
ตัวอย่างคำขอ¶
curl -L -v \
-d '{"market_id": 15,"appid": "com.com2us.hivesdk.windows.microsoftstore.global.normal","hive_country": "KR","game_language": "ko","vid": "100000000000","vid_type": "v4","market_pid": "com.com2us.hivesdk.windows.microsoftstore.global.normal.item01","server_id": "KR1","os": "A","quantity": 1,"iap_payload": "{\"character_id\":\"hivesdk01\"}"}' \
-H "Content-Type: text/html" \
-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJIaXZlIiwiaWF0IjoxNjAyMDU2NzI2LCJqdGkiOiIxODczMTExMzIwIn0.3soFiHTPlObCoqR5xX9ZeOQTSvnHrHDHWmopP3QfWtY" \
https://sandbox-store.withhive.com/external/api/order
ตัวอย่างการตอบกลับ¶
เมื่อคำขอการสั่งซื้อผลิตภัณฑ์ถูกประมวลผลสำเร็จ มันจะส่งคืนหน้าต่างป๊อปอัพเพื่อเลือกวิธีการชำระเงิน ด้านล่างนี้คือหน้า HTML ที่ประกอบขึ้นเป็นหน้าต่างป๊อปอัพ
การสอบถามรายละเอียดการชำระเงินที่เสร็จสมบูรณ์¶
เมื่อการชำระเงินเสร็จสมบูรณ์ หน่วยงานการชำระเงิน (PG) จะส่งผลการชำระเงินไปยังเซิร์ฟเวอร์ IAP v4 ของ Hive โดยตรง วิธีนี้ช่วยชดเชยความไม่เสถียรของเครือข่ายและป้องกันการดัดแปลงข้อมูลการชำระเงิน ในระหว่าง การเตรียมงาน จะมีการตรวจสอบความถูกต้องโดยการเปรียบเทียบข้อมูลการชำระเงินที่ลงทะเบียนกับข้อมูลของหน่วยงานการชำระเงิน (PG) เมื่อยืนยันความสมบูรณ์ของข้อมูลการชำระเงินแล้ว จะมีการรักษาความปลอดภัยเพิ่มเติม และข้อมูลการชำระเงินจะถูกเก็บรักษา ข้อมูลการชำระเงินที่เก็บรักษาสามารถเรียกคืนได้ผ่าน API การสอบถามประวัติการชำระเงินที่เสร็จสมบูรณ์
ไคลเอนต์ขอข้อมูลจากเซิร์ฟเวอร์เกมในช่วงเวลาที่ต้องการข้อมูลการชำระเงินของผู้ใช้ และเซิร์ฟเวอร์เกมจะดึงข้อมูลการชำระเงินผ่าน Hive IAP v4 เซิร์ฟเวอร์ หากมีบันทึกการชำระเงินของผู้ใช้ การตรวจสอบข้อมูลการชำระเงินจะดำเนินการโดยใช้ purchase_bypass_info
.
URL ที่ขอ¶
URL การผลิต | https://hiveiap.qpyou.cn/api_v4/purchases/unconsumed |
URL แซนด์บ็อกซ์ | https://sandbox-hiveiap.qpyou.cn/api_v4/purchases/unconsumed |
วิธีการ HTTP | POST |
ประเภทเนื้อหา | application/json |
รูปแบบข้อมูล | JSON |
การอนุญาต | Bearer (token) |
---|
โทเค็น Bearer จะตรงกับ Hive คีย์การตรวจสอบสิทธิ์ในคอนโซล Hive App Center > Project Management > Select Game Company > Game Details > Basic Information.
พารามิเตอร์การร้องขอ¶
ชื่อ | ประเภท | จำเป็น (จำเป็น: M, ไม่จำเป็น: O) | คำอธิบาย |
appid | String | M | ID ที่ลงทะเบียนและออกจาก Hive คอนโซล > App Center |
market_id | Number | M | หมายเลขตลาดที่ไม่ซ้ำกัน (ใช้ค่าคงที่ `15`) |
server_id | String | M | รหัสการระบุเซิร์ฟเวอร์เกมที่การชำระเงินเกิดขึ้น |
user_id_type | String | M | ประเภทผู้ใช้ HIVE uid : โมดูลบุคคล (v0) vid : การตรวจสอบสิทธิ์ v1 (v1) player_id : การตรวจสอบสิทธิ์ v4 (v4) |
user_id | Number | M | รหัสผู้ใช้ HIVE ส่งตามประเภท user_id uid : โมดูลบุคคล (v0) vid : การตรวจสอบสิทธิ์ v1 (v1) player_id : การตรวจสอบสิทธิ์ v4 (v4) |
องค์ประกอบการตอบกลับ¶
ชื่อ | ประเภท | จำเป็น (จำเป็น: M, ไม่จำเป็น: O) | คำอธิบาย |
result | หมายเลข | M | รหัสการตอบกลับ (0: สำเร็จ) |
result_msg | สตริง | M | ข้อความผลลัพธ์ตามรหัสการตอบกลับ |
unconsumed_lists | อาร์เรย์วัตถุ | M | |
┕ market_pid | สตริง | M | รหัสประจำสินค้าที่ไม่ซ้ำกัน |
┕ order_id | สตริง | M | หมายเลขคำสั่งซื้อ |
┕ server_id | สตริง | M | รหัสที่แยกความแตกต่างของเซิร์ฟเวอร์เกมที่ผู้ใช้ซื้อจาก |
┕ vid | สตริง | M | PlayerID ของผู้ใช้, VID สำหรับการตรวจสอบสิทธิ์ v1 |
┕ uid | สตริง | O | uid ของผู้ใช้ |
┕ amount | สตริง | M | จำนวนเงินที่ชำระ |
┕ currency | สตริง | M | สกุลเงินที่ชำระ |
┕ quantity | หมายเลข | M | จำนวนที่ซื้อ |
┕ started_datetime | วันเวลา | M | เวลาที่เริ่มการชำระเงิน (Y-m-d H:i:s) |
┕ paid_datetime | วันเวลา | M | เวลาที่ชำระเงินเสร็จสิ้น (Y-m-d H:i:s) |
┕ started_datetime_ms | หมายเลข | M | เวลาที่เริ่มการชำระเงิน (Unix TimeStamp Milliseconds) |
┕ paid_datetime_ms | หมายเลข | M | เวลาที่ชำระเงินเสร็จสิ้น (Unix TimeStamp Milliseconds) |
┕ hiveiap_receipt | สตริง | M | การเข้ารหัสข้อมูลการชำระเงิน HASH |
┕ purchase_bypass_info | สตริง | M | ข้อมูลที่จำเป็นสำหรับคำขอการตรวจสอบใบเสร็จ |
┕ iap_payload | สตริง | O | ข้อมูลเพิ่มเติมที่ได้รับจากไคลเอนต์เพื่อส่งไปยังเซิร์ฟเวอร์เกม (ในรูปแบบ JSON String) (ส่งคืน null หากไม่มีข้อมูลที่ได้รับ) |
ตัวอย่างคำขอ¶
curl -L -v
-d '{"appid" : "com.com2us.hivesdk.windows.microsoftstore.global.normal","market_id" : 15,"server_id" : "kr","user_id_type": "player_id", "user_id": 30000056996}' \
-H "Content-Type: text/html" \
-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJIaXZlIiwiaWF0IjoxNjAyMDU2NzI2LCJqdGkiOiIxODczMTExMzIwIn0.3soFiHTPlObCoqR5xX9ZeOQTSvnHrHDHWmopP3QfWtY" \
https://sandbox-hiveiap.qpyou.cn/api_v4/purchases/unconsumed
ตัวอย่างการตอบกลับ¶
{
"result": 0,
"result_msg": "SUCCESS",
"unconsumed_lists": [
{
"market_pid": "com.com2us.hivesdk.windows.microsoftstore.global.normal.item01",
"order_id": "h2164792542890731850",
"server_id": "kr",
"vid": "30000056996",
"uid": "13079",
"amount": "1200",
"currency": "KRW",
"quantity": 1,
"started_datetime": "2022-03-22 14:03:49",
"paid_datetime": "2022-03-22 14:04:39",
"market_id": "15",
"hiveiap_receipt": "2YnGzfTCGycoMjcSyYyNXBjANwmFyB6m\/c0bYazQ8VQ=",
"purchase_bypass_info": "eyJtYXJrZXRfcGlkIjoiY29tLmNvbTJ1cy5oaXZlc2R...",
"started_datetime_ms": 1647925429000,
"paid_datetime_ms": 1647925479000,
"iap_payload": null
}
]
}
การตรวจสอบข้อมูลการชำระเงิน¶
API การตรวจสอบผลการชำระเงินขึ้นอยู่กับ การตรวจสอบใบเสร็จ IAP v4.
การตรวจสอบผลการชำระเงินใช้ purchase_bypass_info
ที่ได้รับก่อนหน้านี้ purchase_bypass_info
ประกอบด้วยข้อมูลต่างๆ ที่ได้รับผ่าน SDK ก่อนที่จะดำเนินการชำระเงินและจะถูกส่งไปยัง Hive Analytics หากคุณต้องการส่ง บันทึกการขาย พร้อมกับคำขอการตรวจสอบใบเสร็จ ให้ใช้ game_info
ข้อมูล game_info
ที่ได้รับทำหน้าที่เป็นตัวกลางในการส่งบันทึกไปยังเซิร์ฟเวอร์วิเคราะห์จาก Hive IAP
URL ที่ร้องขอ¶
URL การผลิต | https://hiveiap-verify.qpyou.cn/api_v4/verify |
URL แซนด์บ็อกซ์ | https://sandbox-hiveiap-verify.qpyou.cn/api_v4/verify |
วิธี HTTP | POST |
ประเภทเนื้อหา | text/html |
รูปแบบข้อมูล | JSON |
การอนุญาต | Bearer (token) |
---|
โทเค็น Bearer จะตรงกับ Hive คีย์การตรวจสอบสิทธิ์ใน Hive คอนโซล App Center > Project Management > Select Game Company > Game Details > Basic Information.
พารามิเตอร์การร้องขอ¶
ชื่อ | ประเภท | จำเป็น (จำเป็น: M, ไม่จำเป็น: O) | คำอธิบาย |
purchase_bypass_info | String | M | ข้อมูลสำหรับการแทนที่ใบเสร็จและการส่งข้อมูลการวิเคราะห์ |
game_info | Object Array | O | หากมีบันทึกที่ต้องส่งไปยังเกม เช่น บันทึกเกมหรือบันทึกการขาย ให้เพิ่มค่าตรงนี้ไปยังเกมเพื่อการส่งข้อมูล และ Hive IAP จะทำหน้าที่เป็นตัวแทนในการส่งไปยังเซิร์ฟเวอร์การวิเคราะห์ ในขั้นตอนการตรวจสอบใบเสร็จ ไม่สามารถทราบได้ว่าไอเท็มได้ถูกส่งไปหรือไม่ (itemsendok) ดังนั้นส่วนนี้ต้องดำเนินการแยกต่างหากและจัดเตรียมเป็นข้อมูลเพิ่มเติม |
⠀⠀server_uid | bigint | O | User_id ที่ออกโดยเซิร์ฟเวอร์เกม หากไม่มี ให้ใช้ 0 |
⠀⠀giftee_uid | bigint | O | null: การชำระเงินสำหรับการใช้งานส่วนตัว 0: ผู้รับมีอยู่แต่ไม่สามารถตรวจสอบ UID ได้; บัญชีแขก Derby Days ไม่มีบัญชีแขกฮับ ดังนั้นจึงใช้ที่นี่ |
⠀⠀level | int | O | ระดับในเกมของผู้ใช้ ไม่จำเป็นหากไม่มีระดับ หากไม่มี ให้ใช้ 0 |
⠀⠀character_id | bigint | O | รหัสตัวละครที่ไม่ซ้ำกันภายในเซิร์ฟเวอร์ (PK?). หากไม่มีแนวคิดตัวละคร ให้ใช้ "0" |
⠀⠀character_type_id | int | O | รหัสประเภทตัวละคร สำหรับเกมที่ไม่มีแนวคิดตัวละคร ให้ป้อน "0" |
⠀⠀character_level | int | O | รหัสประเภทตัวละคร สำหรับเกมที่ไม่มีแนวคิดตัวละคร ให้ป้อน "0" |
⠀⠀is_emulator | int | O | หากเข้าถึงผ่านอีมูเลเตอร์สำหรับ PC เช่น BlueStacks ให้ป้อน "1"; หากไม่ใช่ ให้ป้อน "0" |
องค์ประกอบการตอบกลับ¶
ชื่อ | ประเภท | จำเป็น (จำเป็น: M, ไม่จำเป็น: O) | คำอธิบาย |
result | หมายเลข | M | รหัสการตอบกลับ (ดูรหัสการตอบกลับ) |
result_msg | ข้อความ | M | ข้อความผลลัพธ์ตามรหัสการตอบกลับ |
hiveiap_transaction_id | ข้อความ | M | รหัสธุรกรรมที่สร้างขึ้นสำหรับใบเสร็จที่ตรวจสอบแล้วแต่ละใบ รหัสนี้ควรเก็บไว้ที่เซิร์ฟเวอร์เกมเพื่อทำการตรวจสอบใบเสร็จซ้ำ |
hiveiap_market_id | ข้อความ | O | หมายเลขที่ไม่ซ้ำในตลาด (การชำระเงิน PG: กำหนดที่ 15) |
hiveiap_market_pid | ข้อความ | O | PID ของผลิตภัณฑ์การชำระเงิน |
hiveiap_market_transaction_id | ข้อความ | O | หมายเลขคำสั่งซื้อที่ไม่ซ้ำสำหรับคำสั่งซื้อ |
hiveiap_receipt | ข้อความ | O | ค่าของวัตถุใบเสร็จในตลาด (การชำระเงิน PG: กำหนดที่ null) |
hiveiap_purchase_test | ข้อความ | O | สถานะการชำระเงินทดสอบ (Y: การชำระเงินทดสอบ / N: การชำระเงินปกติ) |
รหัสการตอบกลับ¶
รหัส | ข้อความ | ความคิดเห็น |
0 | สำเร็จ, ใบเสร็จซ้ำ | การตรวจสอบสำเร็จ |
1000001 | ไม่มีพารามิเตอร์ที่ร้องขอ | เมื่อไม่มีพารามิเตอร์ถูกส่ง |
1000003 | ข้อผิดพลาดการเชื่อมต่อฐานข้อมูล | เมื่อการเชื่อมต่อฐานข้อมูลล้มเหลว |
1000005 | ข้อผิดพลาดของเซิร์ฟเวอร์ภายใน | ข้อผิดพลาดของเซิร์ฟเวอร์ภายใน |
1000006 | ข้อมูลพารามิเตอร์ที่จำเป็นขาดหายไป | เมื่อค่าพารามิเตอร์ที่จำเป็นขาดหายไป |
1000503 | ไม่สามารถตรวจสอบใบเสร็จได้ | ไม่สามารถตรวจสอบใบเสร็จได้หรือเป็นใบเสร็จที่ถูกแฮ็ก (เช่น การแฮ็กแบบปลอม) |
1000507 | ไม่สามารถบันทึกข้อมูลการซื้อได้ | ไม่สามารถบันทึกประวัติการซื้อได้ |
1000524 | ไม่สามารถตรวจสอบใบเสร็จได้ (ไม่มีคำสั่ง) | การตรวจสอบใบเสร็จล้มเหลว (คำสั่งที่ไม่มีอยู่) |
1000525 | ไม่สามารถตรวจสอบใบเสร็จได้ (พารามิเตอร์ผิด) | การตรวจสอบใบเสร็จล้มเหลว (ข้อผิดพลาดพารามิเตอร์) |
ตัวอย่างคำขอ¶
curl -L -v \
-d '{"purchase_bypass_info":"eyJtYXJrZXRfaWQiOiIxNSIsIm9yZGVyX2lkIjoiSDMxNjQ3OTI1NDI4OTA3MzE4NTAiLCJtYXJrZXRfcGlkIjoiY29tLmNvbTJ1cy5oaXZlc2RrLndpbmRvd3MubWljcm9zb2Z0c3RvcmUuZ2xvYmFsLm5vcm1hbC5pdGVtMDEiLCJ2aWQiOiIzMDAwMDA1Njk5NiIsInVpZCI6IjEzMDc5Iiwic2VydmVyX2lkIjoia3IiLCJhcHBpZCI6ImNvbS5jb20ydXMuaGl2ZXNkay53aW5kb3dzLm1pY3Jvc29mdHN0b3JlLmdsb2JhbC5ub3JtYWwiLCJhbW91bnQiOiIxMjAwIiwic3RhcnRlZF9kYXRldGltZSI6bnVsbCwicGFpZF9kYXRldGltZSI6bnVsbCwiY3VycmVuY3kiOiJLUlciLCJoaXZlaWFwX3JlY2VpcHQiOiIyWW5HemZUQ0d5Y29NamNTeVl5TlhCakFOd21GeUI2bVwvYzBiWWF6UThWUT0ifQ=="}' \
-H "Content-Type: text/html" \
-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJIaXZlIiwiaWF0IjoxNjAyMDU2NzI2LCJqdGkiOiIxODczMTExMzIwIn0.3soFiHTPlObCoqR5xX9ZeOQTSvnHrHDHWmopP3QfWtY" \
https://sandbox-hiveiap-verify.qpyou.cn/api_v4/verify
ตัวอย่างการตอบกลับ¶
{
"result": 0,
"result_msg": "success",
"hiveiap_transaction_id": "HS_13",
"hiveiap_market_id": 15,
"hiveiap_market_pid": "com.com2us.hivesdk.windows.microsoftstore.global.normal.item01",
"hiveiap_market_transaction_id": "h2164792542890731850",
"hiveiap_receipt": null,
"hiveiap_purchase_test": "N"
}
การประมวลผลผลลัพธ์การชำระเงิน¶
API การประมวลผลผลลัพธ์การชำระเงิน อิงจาก การส่งผลลัพธ์การชำระเงิน IAP v4 API การประมวลผลผลลัพธ์การชำระเงินจะทำให้กระบวนการชำระเงินเสร็จสมบูรณ์ตั้งแต่การซื้อสินค้าจนถึงการชำระเงินเสร็จสมบูรณ์ หากกระบวนการชำระเงินยังไม่เสร็จสิ้น ผู้ใช้จะไม่สามารถซื้อผลิตภัณฑ์เดียวกันได้ เมื่อพยายามซื้อและเข้าสู่หน้าชำระเงิน จะมีข้อความว่า 'คุณเป็นเจ้าของผลิตภัณฑ์นี้แล้ว' แสดงขึ้น และการชำระเงินจะไม่ดำเนินการต่อ
เมื่อพยายามซื้อและชำระเงินโดยการเปิดหน้าต่างชำระเงินหลายๆ หน้าต่าง ผลิตภัณฑ์ใดๆ ที่การชำระเงินยังไม่ได้ดำเนินการจะถูกยกเลิกโดยอัตโนมัติ หลังจากดำเนินการตามขั้นตอนการชำระเงินทั้งหมด เช่น การตรวจสอบขีดจำกัดการซื้อและการจัดส่งสินค้าโดยเซิร์ฟเวอร์เกม ผลลัพธ์การชำระเงินจะถูกส่งไปยังเซิร์ฟเวอร์ Hive IAP v4 เพื่อแจ้งว่าการชำระเงินเสร็จสมบูรณ์ หากคุณต้องการขอยกเลิกการชำระเงิน คุณยังสามารถขอยกเลิกผ่าน API การประมวลผลผลลัพธ์การจัดส่งได้
URL ที่ร้องขอ¶
URL การผลิต | https://hiveiap.qpyou.cn/api_v4/item_result |
URL Sandbox | https://sandbox-hiveiap.qpyou.cn/api_v4/item_result |
HTTP Method | POST |
Content-Type | text/html |
รูปแบบข้อมูล | JSON |
การอนุญาต | Bearer (token) |
---|
โทเค็น Bearer จะตรงกับคีย์การรับรองความถูกต้อง Hive ในคอนโซล Hive App Center > Project Management > Select Game Company > Game Details > Basic Information.
พารามิเตอร์การร้องขอ¶
ชื่อ | ประเภท | จำเป็น (จำเป็น: M, ไม่จำเป็น: O) | คำอธิบาย |
hiveiap_transaction_id | String | M | hiveiap_transaction_id ของผลการตรวจสอบใบเสร็จ |
result_status | Number | M | สถานะความสำเร็จในการจัดส่งสินค้า 0: การจัดส่งล้มเหลว 1: การจัดส่งสำเร็จ 2: คำขอคืนเงินการยกเลิกการชำระเงิน (เฉพาะ PG) |
result_status_message | String | O | เหตุผลในการจัดส่งล้มเหลวหรือคำขอยกเลิกการชำระเงิน |
user_id_type | String | M | Hive ประเภทผู้ใช้ v0: โมดูลบุคคล (uid) v1: การตรวจสอบสิทธิ์ v1 (vid) v4: การตรวจสอบสิทธิ์ v4 (player_id) |
user_id | Number | M | รหัสผู้ใช้ หาก user_id_type เป็น v0 ให้ส่ง uid; หาก v1 ให้ส่ง vid; หาก v4 ให้ส่ง player_id |
asset | Object Array | O | ข้อมูลของรายการที่จัดส่ง ให้ระบุค่าเฉพาะเมื่อการจัดส่งสำเร็จ และตอบกลับด้วยอาร์เรย์ว่าง ([]) เมื่อการจัดส่งล้มเหลว |
asset_id | String | O | รหัสรายการ |
asset_name | String | O | ชื่อรายการ |
⠀⠀quantity | Number | O | จำนวนรายการที่จัดส่ง |
องค์ประกอบการตอบกลับ¶
ชื่อ | ประเภท | จำเป็น (จำเป็น: M, ไม่จำเป็น: O) | คำอธิบาย |
result | หมายเลข | M | รหัสตอบกลับ (0: สำเร็จ) |
result_msg | สตริง | M | ข้อความผลลัพธ์ตามรหัสตอบกลับ |
ตัวอย่างคำขอ¶
curl -L -v
-d '{"hiveiap_transaction_id" : "HS_13","result_status": 1,"user_id_type": "vid","user_id": 30000056996,"asset": [ {"asset_id":"item_id","asset_name":"item_name","quantity":1}
,{"asset_id":"item_id","asset_name":"item_name","quantity":1}]}' \
-H "Content-Type: text/html" \
-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJIaXZlIiwiaWF0IjoxNjAyMDU2NzI2LCJqdGkiOiIxODczMTExMzIwIn0.3soFiHTPlObCoqR5xX9ZeOQTSvnHrHDHWmopP3QfWtY" \
https://sandbox-hiveiap.qpyou.cn/api_v4/item_result
ตัวอย่างการตอบกลับ¶
บริการแจ้งผลการชำระเงิน¶
บริการแจ้งผลการชำระเงินจะส่งผลไปยังเซิร์ฟเวอร์เกมทันทีเมื่อการชำระเงินเสร็จสมบูรณ์หรือถูกยกเลิก API นี้จะส่งค่าของ purchase_bypass_info
ในลักษณะเดียวกับการ สอบถามประวัติการชำระเงินที่เสร็จสมบูรณ์ ทำให้เกมสามารถใช้ค่านี้เพื่อตรวจสอบใบเสร็จและมอบผลิตภัณฑ์ให้กับผู้ใช้ การตรวจสอบใบเสร็จและการมอบผลิตภัณฑ์ควรทำเฉพาะเมื่อ type
ใน ข้อมูลการส่งผลการชำระเงิน เป็น paid.
Note
เพื่อใช้ API นี้ คุณต้องตั้งค่า บริษัท PG ใน Hive console ก่อน แนะนำให้ใช้ API นี้หรือ API การตรวจสอบประวัติการชำระเงินเพื่อการตรวจสอบใบเสร็จและการจัดส่งสินค้า
ข้อมูลพื้นฐานเกี่ยวกับการส่งผลลัพธ์การชำระเงิน¶
HTTP Method | POST |
Content-Type | application/json |
Data Format | JSON |
ข้อมูลการส่งผลลัพธ์การชำระเงิน¶
ชื่อ | ประเภท | จำเป็น (จำเป็น: M, ไม่จำเป็น: O) | คำอธิบาย |
type | String | M | ประเภทการแจ้งเตือน (paid: การชำระเงินเสร็จสิ้น, cancelled: การชำระเงินถูกยกเลิกหรือคืนเงิน) |
market_pid | String | M | รหัสผลิตภัณฑ์ที่ไม่ซ้ำกัน |
order_id | String | M | หมายเลขคำสั่งซื้อ |
server_id | String | M | รหัสที่แยกแยะเซิร์ฟเวอร์เกมที่ผู้ใช้ทำการซื้อเข้าถึง |
vid | String | M | รหัสผู้เล่นของผู้ใช้ที่ทำการซื้อ, VID สำหรับการตรวจสอบสิทธิ์ v1 |
vid_type | String | O | ค่าประเภท vid ตามเวอร์ชัน SDK (ค่าเริ่มต้น v4) |
uid | String | O | UID ของผู้ใช้ที่ทำการซื้อ |
amount | String | M | จำนวนเงินที่ชำระ |
currency | String | M | สกุลเงินในการชำระเงิน |
quantity | Number | M | จำนวนที่ซื้อ |
started_datetime | Datetime | M | เวลาที่เริ่มการชำระเงิน (Y-m-d H:i:s) |
paid_datetime | Datetime | M | เวลาที่การชำระเงินเสร็จสิ้น (Y-m-d H:i:s) |
cancelled_datetime | Datetime | O | เวลาที่การชำระเงินถูกยกเลิกหรือคืนเงิน (Y-m-d H:i:s) |
started_datetime_ms | Number | M | เวลาที่เริ่มการชำระเงิน (Unix TimeStamp Milliseconds) |
paid_datetime_ms | Number | M | เวลาที่การชำระเงินเสร็จสิ้น (Unix TimeStamp Milliseconds) |
cancelled_datetime_ms | Number | O | เวลาที่การชำระเงินถูกยกเลิกหรือคืนเงิน (Unix TimeStamp Milliseconds) |
cancelled_reason | String | O | เหตุผลในการยกเลิกหรือคืนเงินการชำระเงิน |
hiveiap_receipt | String | M | HASH ที่เข้ารหัสของข้อมูลการชำระเงิน |
purchase_bypass_info | String | M | ข้อมูลที่จำเป็นสำหรับการตรวจสอบใบเสร็จ |
iap_payload | สตริง | O | ข้อมูลเพิ่มเติมที่ได้รับจากลูกค้าเพื่อนำส่งไปยังเซิร์ฟเวอร์เกม ข้อมูลอยู่ในรูปแบบ JSON String และหากไม่มีข้อมูลใด ๆ จะส่งคืน null. |
ตัวอย่างการส่งผลการชำระเงิน (เมื่อชำระเงินเสร็จสิ้น)¶
{
"type": "paid",
"market_id": "15",
"order_id": "H2168993822440686730",
"market_pid": "com.com2us.hivesdk.windows.microsoftstore.global.normal.item01",
"vid": "20000011337",
"uid": "67200717",
"vid_type": "v4",
"server_id": "kr",
"appid": "com.com2us.hivesdk.windows.microsoftstore.global.normal",
"amount": "1200",
"started_datetime": "2023-07-21 20:17:06",
"paid_datetime": "2023-07-21 20:18:13",
"cancelled_datetime": null,
"cancelled_reason": null,
"currency": "KRW",
"quantity": 1,
"hiveiap_receipt": "tJpwQSIlNFiCSPokHSRYTvTLmtbDiSZnkYa7+IWaMwM=",
"started_datetime_ms": 1689938226000,
"paid_datetime_ms": 1689938293000,
"cancelled_datetime_ms": null,
"iap_payload": null,
"purchase_bypass_info": "eyJ0eXBlIjoicGFpZCIsIm1hcmtldF9pZCI6IjE1Iiwib3JkZXJfaWQiOi..."
}
ตัวอย่างการส่งผลลัพธ์การชำระเงิน (เมื่อการชำระเงินถูกยกเลิก)¶
{
"type": "cancelled",
"market_id": "15",
"order_id": "H2168993822440686730",
"market_pid": "com.com2us.hivesdk.windows.microsoftstore.global.normal.item01",
"vid": "20000011337",
"uid": "67200717",
"vid_type": "v4",
"server_id": "kr",
"appid": "com.com2us.hivesdk.windows.microsoftstore.global.normal",
"amount": "1200",
"started_datetime": "2023-07-21 20:17:06",
"paid_datetime": "2023-07-21 20:18:13",
"cancelled_datetime": "2023-07-21 20:21:44",
"cancelled_reason": "테스트 결제 취소",
"currency": "KRW",
"quantity": 1,
"hiveiap_receipt": "tJpwQSIlNFiCSPokHSRYTvTLmtbDiSZnkYa7+IWaMwM=",
"started_datetime_ms": 1689938226000,
"paid_datetime_ms": 1689938293000,
"cancelled_datetime_ms": 1689938504000,
"iap_payload": null,
"purchase_bypass_info": "eyJ0eXBlIjoiY2FuY2VsbGVkIiwibWFya2V0X2lkIjoiMT..."
}