Skip to content

支付模块

本页介绍如何使用 Playol SDK 提供的支付模块,在无需自行接入支付渠道的前提下实现游戏内购功能,包括虚拟商品购买、去广告等支付场景,为玩家提供安全便捷的支付体验。

支付模块封装了完整的支付流程和安全校验机制,支持多种支付场景和支付模式,开发者只需调用简单的SDK即可完成支付集成,所有支付操作均通过加密通信确保数据安全性。


📌 一、使用场景

  • 套餐/皮肤/数值商品的即时充值;
  • 激励点位之外的直购(如去广告、礼包);
  • 平台托管结算:无需对接支付渠道,由平台统一处理。

🧩 二、方法与调用方式

支付模块在SDK加载时自动初始化,初始化失败会在浏览器控制台显示错误信息。

💳 发起支付

createPayment(params: PayRequest)

创建支付订单并发起支付流程

参数名类型是否必填说明
item_codestring商品编码,需从开发者平台配置的商品中获取
js
window.playolSDK.pay.createPayment({
  itemCode: "COIN_300",
})

📌 返回示例:

json

 {
   "orderId": "1942145682607271937",
   "itemId":"1942145682309476359"
 }

📌 说明:

  • 订单创建成功,返回 orderIditemId;订单创建失败,msg 包含错误原因(频率过高、参数缺失等)
  • orderId:订单编号,用于后续查询支付状态和结果
  • itemId: 商品ID,标识本次支付对应的具体商品

📦 查询支付信息

getPaymentInfo(orderId: string)

查询指定订单的最新支付信息

参数名类型是否必填说明
orderIdstring订单编号(订单创建成功后会返回)
js
window.playolSDK.pay.getPaymentInfo('1942145682607271937')

📌 返回说明:

含义
data加密数据
orderId订单id
orderStatus订单状态(0 待支付, 1 成功, 2 失败,3 已退款,5 取消)
sign签名
signTime签名时间
uuiduuid

查询的订单信息如需校验真实性,需后端自行拿平台私钥进行验证。

🗂️ 支付数据存储

如果没有游戏后端服务器处理支付结果,您可以使用数据模块提供的 set 来存储订单信息和玩家已购买的商品状态。

js
// 存储单个订单信息
const orderData = {
  orderId: '1942145682607271937',
  orderStatus: 1,
  ...
};

window.playolSDK.data.set('order_1942145682607271937', orderData);
// 存储用户所有订单
const userOrder = {
  '1942145682607271937': {
    orderId:'1942145682607271937',
    orderStatus:1,
    ...
  }
}
window.playolSDK.data.set('user_order',userOrder)
// 查询订单信息
window.playolSDK.data.get('user_order')

🔄 支付流程说明

为了帮助您更好地理解支付模块的工作流程,以下是完整的支付流程图:

img

流程说明:

  • 创建订单: 调用 createPayment() 创建支付订单,获取订单ID
  • 发起支付: SDK 自动跳转到支付页面,用户完成支付操作
  • 查询状态: 通过 getPaymentInfo() 轮询查询订单支付状态
  • 结果处理: 根据订单状态(成功/失败/取消)进行相应处理
  • 数据存储: 可根据自身情况选择将订单信息存储到数据模块,便于后续查询和管理

🔐 三、安全机制说明

  • 参数加密: 商品信息均通过非对称进行加密处理;
  • 自动注入: SDK 自动注入 gameIdrequestTime 等必要参数;
  • 签名验证: 平台侧会对请求进行签名验证,确保请求来源可信;
  • 安全传输: 支付数据通过加密通道传输;
  • 结果校验: 支付结果包含商品信息,可配合平台提供的私钥进行解密验证数据完整性。

❓ 四、常见问题

Q:createPayment 没有响应怎么办?

A:检查浏览器控制台是否有初始化错误,确认 SDK 已正确加载且支付模块初始化成功。

Q:如何处理支付结果通知?

A:通过轮询 getPaymentInfo(orderId)查询最新的订单状态,并展示给玩家。

Q:是否需要手动解密?

A:商品相关信息会加密,可配合平台提供的私钥进行解密。

Q: 支付失败的可能原因有哪些?

A: 常见原因包括:支付模块未初始化、参数缺失或格式错误、用户取消支付、网络异常、频率过高等限制。


🔗 相关文档推荐

👉 用户模块游戏模块数据模块邀请模块

基于 MIT 许可证发布