支付
支付模块提供游戏内物品的购买支付和买断支付的相关功能,阅读JOGOS_SDK 简介
页面与您的游戏引擎相关的部分后,可以按如下方式使用相关的功能:
javascript
window.JOGOS_SDK.payment;
应用内购买
第 1 步:创建商品 ID
- 在开发者后台 Information / Purchase 页面创建商品。
- 注意同个游戏下的商品 ID 不可重复。
第 2 步:发起订单
- 当玩家需要购买游戏内的物品时,可以商品购买按钮上调用此接口打开 Jogos 支付窗口。
- 开发者需要传入商品 Id,打开支付窗口成功后返回订单编号,开发者后述可用此订单编号查询此订单的相关信息。
- goodsId 既是您在开发者后台创建的商品 ID。
javascript
// 成功返回订单编号
let orderNo = await window.JOGOS_SDK.payment.buyGoods(goodsId: string);
第 3 步:等待用户进行付款
由客户端订阅订单支付完成通知
玩家下单后到实际支付成功可能有较长的一段时间,开发者可通知此接口订阅玩家支付成功消息,当玩家支付成功后,平台会通知订阅时的回调主动通知开发者订单已经支付完毕并返回最新的订单信息。
javascript
window.JOGOS_SDK.payment.subscribeOrderPaid(callbackFn: (order: PaymentOrder) => void);
第 4 步:发货,并通知平台订单已经发货
由客户端处理发货(单机游戏)
开发者获知玩家付款成功后,自动处理发放奖励,并调用此接口通知平台已经发货。
javascript
await window.JOGOS_SDK.payment.deliverGoods(orderNo: string);
由"游戏服务端"接入的方式:
服务器接入相关API,请查阅:服务端接入接口
页面。
其他接口
订单信息
根据订单编号查询订单的详细信息。订单结构如下所示:
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币(积分)扣减
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);
获取订单列表
开发者可通过此接口根据订单状态查询自己关注的订单信息,成功后返回订单列表,订单信息与订单详情结构一样。
javascript
// 成功返回订单列表
let orderList = await window.JOGOS_SDK.payment.getOrderList(
status?: 'pending' | 'fail' | 'cancel' | 'expire' | 'success' | 'refunding' | 'refunded',
pageNo?: number, // 页码:默认为1
pageSize?: number // 每页记录数:默认为20
);
买断制游戏
- 在开发者后台将您的游戏设置成“Game Pricing” (买断制类型),并设置您的游戏价格。
- 为您的游戏创建两个提交版本:试玩版与正式版
- 试玩版:建议删除玩家接触不到的关卡资产、模型、贴图、音乐等,仅保留玩家仅能试玩的内容。额外打包这个版本上传。
- 正式版:玩家可使用完整游戏内容的版本。
- 在试玩版游戏内设置购买按钮:
- 当玩家试玩结束时,比如试玩版达到第一章最后一关后,需要购买正式版游戏时,设计一个“贩卖正式版”的界面和购买按钮:
- 购买按钮可以调用
buyOut
接口打开 Jogos 平台支付窗口,让玩家尽快购买游戏正式版; - 当用户购买成功后,Jogos 平台会自动切换到正式版游戏供玩家继续游玩,开发者无需额外处理。
- 请保持试玩版与正式版的版本号一致,Jogos 平台会自动迁移用户存档到正式版。
- 支付成功后返回会订单编号,开发者可用根据此订单编号查询此订单的相关信息。
javascript
// 成功返回订单编号
let orderNo = await window.JOGOS_SDK.payment.buyOut();