ข้ามไปที่เนื้อหา

การชำระเงิน Web PG

API การชำระเงิน PG เว็บไม่ใช้ Hive SDK การเรียกเก็บเงิน เมื่อพัฒนาแอป Windows แต่เป็น API ที่ใช้เมื่อคุณต้องการใช้การชำระเงิน PG บนเว็บไซต์ API การชำระเงิน PG เว็บแตกต่างจาก API ที่ใช้ในการดำเนินการชำระเงิน PG ในแอป

Note

ในการดำเนินการชำระเงิน PG ในแอป คุณต้องใช้ Hive SDK Billing และ API การชำระเงิน PG ทั่วไป

การดูรายการสินค้า

นำข้อมูลสินค้าเข้ามา ใช้ในการ implement รายการสินค้าในแอป

URL ที่ร้องขอ

สภาพแวดล้อม URL
URL การผลิต https://store.withhive.com/external/api/product
URL แซนด์บ็อกซ์ https://sandbox-store.withhive.com/external/api/product
HTTP Method POST
Content-Type text/html; charset=utf-8
รูปแบบข้อมูล JSON
การอนุญาต Bearer (โทเค็น)

Bearer โทเค็นคือ Hive คอนโซล แอปเซ็นเตอร์ > การจัดการโปรเจกต์ > เลือกเกมของผู้พัฒนาเกม > รายละเอียดเกม > ข้อมูลพื้นฐาน ที่ตรงกับคีย์การรับรองของ Hive

พารามิเตอร์คำขอ

ฟิลด์ ประเภท จำเป็น คำอธิบาย
api String O ค่าการแยกประเภท api (`product` ใช้ค่าคงที่)
market_id String O รหัสตลาด Hive (การชำระเงิน PG: `15` ใช้ค่าคงที่)
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_type String O ประเภทสินค้า (ใช้แล้วหมดไป: consumable)

องค์ประกอบการตอบกลับ

ฟิลด์ ประเภท จำเป็น คำอธิบาย
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 สตริง ใช่ ประเภทสินค้า (ใช้แล้ว: consumable)
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 Method POST
Content-Type text/html; charset=utf-8
Data Format JSON
Authorization Bearer (โทเค็น)

Bearer โทเค็นคือ Hive คอนโซล แอปเซ็นเตอร์ > การจัดการโปรเจกต์ > เลือกเกมของผู้พัฒนาเกม > รายละเอียดเกม > ข้อมูลพื้นฐาน ที่ตรงกับ Hive คีย์การรับรอง

พารามิเตอร์การร้องขอ

ฟิลด์ ประเภท จำเป็น คำอธิบาย
market_id String O รหัสตลาด Hive
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 String O PID สินค้า
server_id String O รหัสเซิร์ฟเวอร์
os String O Windows: 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) จะส่งผลการชำระเงินไปยังเซิร์ฟเวอร์ Hive IAP v4 โดยตรง วิธีนี้ช่วยเสริมความปลอดภัยจากความไม่เสถียรของเครือข่ายและป้องกันการปลอมแปลงข้อมูลการชำระเงิน การทำงานเบื้องต้น จะทำการตรวจสอบข้อมูลการชำระเงินที่ลงทะเบียนและข้อมูลของบริษัทประมวลผลการชำระเงิน (PG) เพื่อทำการตรวจสอบข้ามข้อมูล หากความสมบูรณ์ของข้อมูลการชำระเงินได้รับการยืนยัน จะมีการจัดเตรียมมาตรการความปลอดภัยเพิ่มเติมและบันทึกข้อมูลการชำระเงิน ข้อมูลการชำระเงินที่บันทึกไว้สามารถตรวจสอบได้ผ่าน API การตรวจสอบประวัติการชำระเงินที่เสร็จสมบูรณ์

ในฝั่งของไคลเอนต์ เมื่อถึงเวลาที่ต้องการข้อมูลการชำระเงินที่เสร็จสมบูรณ์ของผู้ใช้ จะมีการขอข้อมูลไปยังเซิร์ฟเวอร์เกม และเซิร์ฟเวอร์เกมจะทำการตรวจสอบข้อมูลการชำระเงินผ่านเซิร์ฟเวอร์ Hive IAP v4 หากมีประวัติการชำระเงินของผู้ใช้ จะใช้ purchase_bypass_info ในการตรวจสอบข้อมูลการชำระเงิน

URL ที่ร้องขอ

    URL ที่ใช้งาน https://hiveiap.qpyou.cn/api_v4/purchases/unconsumed
    URL Sandbox https://sandbox-hiveiap.qpyou.cn/api_v4/purchases/unconsumed
    HTTP Method POST
    Content-Type application/json
    Data Format JSON
    Authorization Bearer (โทเค็น)

Bearer token คือคีย์การรับรองของ Hive ที่สามารถพบได้ใน แอปเซ็นเตอร์ > การจัดการโปรเจกต์ > เลือกเกมของผู้พัฒนาเกม > รายละเอียดเกม > ข้อมูลพื้นฐาน

พารามิเตอร์คำขอ

    ชื่อ ประเภท ความจำเป็น (จำเป็น: M, ตัวเลือก: O) คำอธิบาย
    appid String M ID ที่ลงทะเบียนและออกจาก Hive Console > App Center
    market_id Number M หมายเลข ID ที่ไม่ซ้ำในตลาด (`15` ค่าคงที่)
    server_id String M รหัสแยกประเภทเซิร์ฟเวอร์เกมที่เกิดการชำระเงิน
    user_id_type String M ประเภทผู้ใช้ HIVE uid : โมดูลแต่ละตัว(v0) vid : การรับรอง v1(v1) player_id : การรับรอง v4(v4)
    user_id Number M หมายเลข ID ผู้ใช้ HIVE ส่งตาม user_id_type uid : โมดูลแต่ละตัว(v0) vid : การรับรอง v1(v1) player_id : การรับรอง v4(v4)

องค์ประกอบของการตอบกลับ

    ชื่อ ประเภท จำเป็นหรือไม่ (จำเป็น: M, ตัวเลือก: O) คำอธิบาย
    result Number M รหัสตอบกลับ (0: สำเร็จ)
    result_msg String M ข้อความผลลัพธ์ตามรหัสตอบกลับ
    unconsumed_lists Object Array M
    ┕ market_pid String M รหัสสินค้าเฉพาะ
    ┕ order_id String M หมายเลขคำสั่งซื้อ
    ┕ server_id String M รหัสแยกเกมเซิร์ฟเวอร์ที่ผู้ซื้อเข้าถึง
    ┕ vid String M PlayerID ของผู้ซื้อ สำหรับการรับรอง v1 คือ VID
    ┕ 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)
    ┕ hiveiap_receipt String M HASH การเข้ารหัสข้อมูลการชำระเงิน
    ┕ purchase_bypass_info String M ข้อมูลที่จำเป็นสำหรับการตรวจสอบใบเสร็จ
    ┕ additionalInfo String 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...",
            "additionalInfo": 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 Sandbox https://sandbox-hiveiap-verify.qpyou.cn/api_v4/verify
    วิธีการ HTTP POST
    ประเภทเนื้อหา text/html
    รูปแบบข้อมูล JSON
    การอนุญาต Bearer (โทเค็น)

Bearer โทเค็นคือ Hive คอนโซล แอปเซ็นเตอร์ > การจัดการโครงการ > เลือกเกมของผู้พัฒนา > รายละเอียดเกม > ข้อมูลพื้นฐาน ที่ตรงกับ Hive authentication key.

พารามิเตอร์การร้องขอ

    ชื่อ ประเภท ความจำเป็น (จำเป็น: 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 ไม่มีบัญชีแขกของ Hub ดังนั้นจึงอยู่ในหมวดนี้
    ⠀⠀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 Number M รหัสการตอบกลับ (ดูรหัสการตอบกลับ)
    result_msg String M ข้อความผลลัพธ์ตามรหัสการตอบกลับ
    hiveiap_transaction_id String M หมายเลขธุรกรรมที่สร้างขึ้นสำหรับใบเสร็จที่ตรวจสอบสำเร็จ ค่านี้จะถูกเก็บไว้ในเซิร์ฟเวอร์เกมเพื่อให้เกมทำการตรวจสอบใบเสร็จซ้ำ
    hiveiap_market_id String O หมายเลขเฉพาะของตลาด (การชำระเงิน PG: 15 คงที่)
    hiveiap_market_pid String O PID ของสินค้าที่ชำระเงิน
    hiveiap_market_transaction_id String O หมายเลขคำสั่งซื้อเฉพาะสำหรับคำสั่งซื้อ
    hiveiap_receipt String O ค่าของวัตถุใบเสร็จตลาด (การชำระเงิน PG: null คงที่)
    hiveiap_purchase_test String 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 POST
    ประเภทเนื้อหา text/html
    รูปแบบข้อมูล JSON
    การอนุญาต Bearer (โทเค็น)

โทเค็น Bearer จะตรงกับคีย์การรับรองของ Hive ใน แอปเซ็นเตอร์ > การจัดการโปรเจกต์ > เลือกเกมของผู้พัฒนา > รายละเอียดเกม > ข้อมูลพื้นฐาน

พารามิเตอร์คำขอ

    ชื่อ ประเภท ความจำเป็น (จำเป็น: 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 ข้อมูลไอเทมที่มอบให้ ส่งค่าก็ต่อเมื่อมอบสำเร็จ และตอบกลับด้วย array ว่าง ([]) เมื่อมอบไม่สำเร็จ
    asset_id String O รหัสไอเทม
    asset_name String O ชื่อไอเทม
    ⠀⠀quantity Number O จำนวนไอเทมที่มอบให้

องค์ประกอบการตอบกลับ

    ชื่อ ประเภท ความจำเป็น (จำเป็น: M, ตัวเลือก: O) คำอธิบาย
    result Number M รหัสการตอบกลับ (0: สำเร็จ)
    result_msg String 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

ตัวอย่างการตอบกลับ

{
    "result": 0,
    "result_msg": "success"
}

บริการแจ้งผลการชำระเงิน

บริการแจ้งผลการชำระเงินจะส่งผลการชำระเงินทันทีเมื่อมีการชำระเงินสำเร็จหรือยกเลิกการชำระเงิน API นี้จะส่งค่าของ purchase_bypass_info เช่นเดียวกับการตรวจสอบประวัติการชำระเงิน การตรวจสอบประวัติการชำระเงิน ดังนั้นเกมสามารถใช้ค่านี้ในการตรวจสอบใบเสร็จและมอบสินค้าให้กับผู้ใช้ได้ ข้อมูลการส่งผลการชำระเงิน จะต้องทำการตรวจสอบใบเสร็จและมอบสินค้าเฉพาะเมื่อ type เป็น paid เท่านั้น

Note

คุณต้องตั้งค่า PG ที่จะใช้ใน Hive Console ก่อนที่จะใช้ API นี้ แนะนำให้ใช้ 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 Number M PlayerID ของผู้ซื้อ สำหรับการรับรอง v1 คือ VID
    vid_type String O ค่าประเภท vid ตามเวอร์ชัน SDK (ค่าเริ่มต้น v4)
    uid Number 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)
    cancelled_reason String O เหตุผลที่การชำระเงินถูกยกเลิกหรือคืนเงิน
    hiveiap_receipt String M HASH การเข้ารหัสข้อมูลการชำระเงิน
    purchase_bypass_info String M ข้อมูลที่จำเป็นสำหรับการตรวจสอบใบเสร็จ
    additionalInfo String 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,
    "additionalInfo": null,
    "hiveiap_receipt": "tJpwQSIlNFiCSPokHSRYTvTLmtbDiSZnkYa7+IWaMwM=",
    "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,    
    "additionalInfo": null,
    "hiveiap_receipt": "tJpwQSIlNFiCSPokHSRYTvTLmtbDiSZnkYa7+IWaMwM=",
    "purchase_bypass_info": "eyJ0eXBlIjoiY2FuY2VsbGVkIiwibWFya2V0X2lkIjoiMT..."
}