การชำระเงิน
โมดูลการชำระเงินให้บริการการซื้อไอเท็มในเกมและการซื้อเกมแบบซื้อขาด หลังจากอ่านส่วนที่เกี่ยวข้องกับเอนจินเกมของคุณในหน้า JOGOS_SDK แนะนำ
แล้ว สามารถใช้งานฟังก์ชันดังต่อไปนี้ได้:
javascript
window.JOGOS_SDK.payment;
การซื้อในแอป (In-App Purchase)
ขั้นตอนที่ 1: สร้างสินค้า ID
- สร้างสินค้าในหน้า Information / Purchase ของแดชบอร์ดนักพัฒนา
- โปรดทราบว่า สินค้า ID ในเกมเดียวกันต้องไม่ซ้ำกัน
ขั้นตอนที่ 2: สร้างคำสั่งซื้อ
- เมื่อผู้เล่นต้องการซื้อไอเท็มในเกม ให้เรียกใช้อินเทอร์เฟซนี้บนปุ่มซื้อสินค้า เพื่อเปิดหน้าต่างการชำระเงินของ Jogos
- นักพัฒนาต้องส่งค่า goodsId ซึ่งเป็นสินค้า ID ที่สร้างไว้ในแดชบอร์ด
- เมื่อเปิดหน้าต่างการชำระเงินสำเร็จ ระบบจะส่งคืนหมายเลขคำสั่งซื้อ (orderNo) นักพัฒนาสามารถใช้หมายเลขนี้เพื่อตรวจสอบข้อมูลของคำสั่งซื้อภายหลังได้
javascript
// ส่งคืนหมายเลขคำสั่งซื้อสำเร็จ
let orderNo = await window.JOGOS_SDK.payment.buyGoods(goodsId: string);
ขั้นตอนที่ 3: รอให้ผู้ใช้ทำการชำระเงิน
การสมัครรับการแจ้งเตือนการชำระเงินเสร็จสิ้นจากฝั่งไคลเอนต์
หลังจากผู้เล่นสร้างคำสั่งซื้อแล้ว การชำระเงินจริงอาจใช้เวลานาน นักพัฒนาสามารถใช้ API นี้เพื่อติดตามเหตุการณ์ เมื่อการชำระเงินเสร็จสิ้น แพลตฟอร์มจะส่งการแจ้งเตือนกลับผ่านคอลแบ็ก พร้อมส่งข้อมูลคำสั่งซื้อที่อัปเดต
javascript
window.JOGOS_SDK.payment.subscribeOrderPaid(callbackFn: (order: PaymentOrder) => void);
ขั้นตอนที่ 4: จัดส่งสินค้า และแจ้งแพลตฟอร์มว่าคำสั่งซื้อนี้ถูกจัดส่งแล้ว
การจัดส่งจากฝั่งไคลเอนต์ (เกมออฟไลน์)
เมื่อนักพัฒนาทราบว่าผู้เล่นชำระเงินสำเร็จ ให้ดำเนินการมอบรางวัลอัตโนมัติ และเรียก API นี้เพื่อแจ้งแพลตฟอร์มว่าการจัดส่งเสร็จสิ้นแล้ว
javascript
await window.JOGOS_SDK.payment.deliverGoods(orderNo: string);
สำหรับการเชื่อมต่อจากฝั่ง "เกมเซิร์ฟเวอร์":
สำหรับ API ที่เกี่ยวข้องกับเซิร์ฟเวอร์ โปรดดูที่หน้า Server API
อินเทอร์เฟซอื่น ๆ
ข้อมูลคำสั่งซื้อ
สามารถตรวจสอบรายละเอียดของคำสั่งซื้อด้วยหมายเลข orderNo โครงสร้างของคำสั่งซื้อมีดังนี้:
javascript
// คำสั่งซื้อการชำระเงิน
export interface PaymentOrder {
// เกม Id
gameId: number;
// ชื่อเกม
gameName: string;
// ผู้ใช้ Id
userId: number;
// หมายเลขคำสั่งซื้อ
orderNo: string;
// สินค้า Id
productId: string;
// ชื่อสินค้า
productName: string;
// สกุลเงิน
currency: string;
// ประเทศ
country: string;
// ส่วนลด
discount: number;
// หัก Jogos Coin (คะแนน)
calorcoin: number;
// จำนวนเงินที่ชำระ
paid: number;
// ช่องทางการชำระเงิน
channel: string;
// ประเภทการชำระเงิน
paymentType: string;
// หมายเลขธุรกรรมการชำระเงิน
paymentNo: string;
// สถานะการจัดส่ง
deliverGoods: boolean;
// สถานะคำสั่งซื้อ pending: รอชำระ fail: ชำระล้มเหลว cancel: ยกเลิก expire: หมดอายุ success: ชำระสำเร็จ refunding: กำลังคืนเงิน refunded: คืนเงินสำเร็จ refund-fail: คืนเงินล้มเหลว
status: 'pending' | 'fail' | 'cancel' | 'expire' | 'success' | 'refunding' | 'refunded' | 'refund-fail';
// เวลาสร้างคำสั่งซื้อ
createTime: String;
// หมายเลขการคืนเงิน
refundNo: String;
// คำอธิบายการคืนเงิน
refundDescription: String;
// เวลาที่ร้องขอการคืนเงิน
refundTime: String;
// เวลาที่คืนเงินสำเร็จ
refundedTime: String;
}
ดึงข้อมูลคำสั่งซื้อ
javascript
// ส่งคืนข้อมูลคำสั่งซื้อสำเร็จ
let order = await window.JOGOS_SDK.payment.getOrderDetail(orderNo: string);
ดึงรายการคำสั่งซื้อ
นักพัฒนาสามารถใช้ API นี้เพื่อค้นหารายการคำสั่งซื้อตามสถานะ และจะส่งคืนรายการคำสั่งซื้อ ข้อมูลคำสั่งซื้อจะเหมือนกับโครงสร้างรายละเอียดคำสั่งซื้อ
javascript
// ส่งคืนรายการคำสั่งซื้อสำเร็จ
let orderList = await window.JOGOS_SDK.payment.getOrderList(
status?: 'pending' | 'fail' | 'cancel' | 'expire' | 'success' | 'refunding' | 'refunded',
pageNo?: number, // หมายเลขหน้า ค่าเริ่มต้นคือ 1
pageSize?: number // จำนวนต่อหน้า ค่าเริ่มต้นคือ 20
);
เกมแบบซื้อขาด (Buy-Out Game)
- ตั้งค่าเกมของคุณในแดชบอร์ดเป็นประเภท “Game Pricing” (เกมแบบซื้อขาด) และกำหนดราคา
- สร้างเวอร์ชันของเกมสองแบบ: รุ่นทดลอง และรุ่นเต็ม
- รุ่นทดลอง: แนะนำให้ตัดทรัพยากร เช่น ด่าน โมเดล เท็กซ์เจอร์ เพลง ที่ผู้เล่นไม่สามารถเข้าถึงออกไป และเก็บเฉพาะคอนเทนต์ที่สามารถเล่นได้เท่านั้น แล้วทำการอัปโหลดแพ็กเกจนี้
- รุ่นเต็ม: เวอร์ชันที่มีคอนเทนต์ทั้งหมดของเกมให้ผู้เล่นเข้าถึง
- ตั้งค่าปุ่มซื้อภายในรุ่นทดลอง:
- เมื่อผู้เล่นจบการทดลอง เช่น หลังจากเล่นถึงด่านสุดท้ายของบทแรก ให้แสดง UI สำหรับการซื้อรุ่นเต็ม พร้อมปุ่มซื้อ:
- ปุ่มซื้อสามารถเรียกใช้ API
buyOut
เพื่อเปิดหน้าต่างการชำระเงินของ Jogos ให้ผู้เล่นซื้อรุ่นเต็มได้ทันที - เมื่อผู้เล่นซื้อสำเร็จ แพลตฟอร์ม Jogos จะสลับเป็นรุ่นเต็มโดยอัตโนมัติ นักพัฒนาไม่ต้องดำเนินการเพิ่มเติม
- โปรดรักษาหมายเลขเวอร์ชันให้ตรงกันระหว่างรุ่นทดลองและรุ่นเต็ม เพื่อให้ Jogos โอนย้ายเซฟไฟล์ผู้เล่นโดยอัตโนมัติ
- เมื่อชำระเงินสำเร็จ ระบบจะส่งคืนหมายเลขคำสั่งซื้อ (orderNo) นักพัฒนาสามารถใช้หมายเลขนี้เพื่อตรวจสอบข้อมูลคำสั่งซื้อได้
javascript
// ส่งคืนหมายเลขคำสั่งซื้อสำเร็จ
let orderNo = await window.JOGOS_SDK.payment.buyOut();