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

การชำระเงิน 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

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

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

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

บริการแจ้งผลการชำระเงินจะส่งผลไปยังเซิร์ฟเวอร์เกมทันทีเมื่อการชำระเงินเสร็จสมบูรณ์หรือถูกยกเลิก 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..."
}