bl.requestRecharge(Object object)
注意,使用支付能力前,必须先开通支付权限: 申请地址
发起充值请求,需要服务端与支付对接,参数请从创建订单接口获取,详情请参考支付文档说明。
哔哩哔哩App版本要求:
- App版本 >= 8.56.0
- SDK_Version >= 4.2.2
注:
自2025年8月15日起,版本低于8.56.0的哔哩哔哩App,将不再支持小游戏支付能力。
参数说明
调用参数完全透传后端返回的数据,不做任何更改
Object object
属性 | 类型 | 默认值 | 必填 | 说明 | 版本 |
---|---|---|---|---|---|
success | function | 是 | 接口调用成功的回调函数 | ||
fail | function | 否 | 接口调用失败的回调函数 |
回调参数
object.success 回调函数
参数
Object res
属性 | 类型 | 值 |
---|---|---|
code | number | 0 |
msg | string | 成功 |
object.fail 回调函数
参数
Object res
属性 | 类型 | 说明 |
---|---|---|
code | number | 错误码 |
msg | string | 错误信息 |
code 码对应的 msg
code | msg |
---|---|
1 | 正在支付当中, 还没有结束, 同时发起了另外一个支付流程 |
2 | 参数错误 |
3 | 用户取消 |
4 | 网络错误 |
5 | 第三方渠道调起失败 |
6 | 支付结果未知 |
9 | 支付宝签约失败 |
10 | 支付宝签约成功但扣款状态未知 |
12 | 获取资产充值参数失败 |
99 | 支付渠道发生的其他错误 |
100 | 内部发生其它错误 |
-15009 | 由于健康系统限制,本次支付已超过限额(这种错误情况会有默认弹窗提示) |
接口使用说明
步骤一:用户登录
通过 bl.login 获取 code,传给服务端接口(参考 bl.login 以及 code2Session )
步骤二:创建订单
步骤三:调起支付
前端调用本接口唤起支付控件,具体方法可以参考以下示例代码 示例代码
// 第一步:请联系运营确保当前 小游戏对应的 AppID 已经开通支付能力
// 第二步:小游戏登录获取 code
bl.login({
success({ code }) {
// 第三步请求业务服务端 生成订单
// 1. 服务端请求获取 openid,根据移动端请求提供的 code 作为 js_code 参数请求 code2session 接口, 参考文档: http://miniapp.bilibili.com/small-game-doc/open/login/#code2session
// 2. 服务端完成参数签名并调用下单接口,参考支付指南文档接口 http://miniapp.bilibili.com/small-game-doc/open/recharge/Recharge/,需注意不参与签名的参数
bl.request({
url: "https://xxx.com/", // 各业务服务端接口
method: "",
header: {},
data: {
code, // 需携带 code 参数供后端服务使用
},
success(res) {
// 下单成功
// 第四步:前端调起支付
bl.requestRecharge({
...res, // 透传后端返回的数据
success(res) {
console.log(res.code, res.msg); // 成功情况 code 是 0
},
fail(e) {
console.error(e.code, e.msg);
},
});
},
fail(res) {
// 业务后端接口访问失败
},
});
},
});
Unity 游戏 SDK 支付调用示例
注意:Unity 如需使用 SDK 调用支付,需要下载最新的 SDK前往下载
var option = new RequestRechargeOption()
{
// 这里完全透传responseData中的数据
success = (res) =>
{
DebugTool.Log("Bl_requestRecharge success");
DebugTool.Log(res.msg);
DebugTool.Log(res.code);
},
fail = (res) =>
{
DebugTool.Log("Bl_requestRecharge fail");
DebugTool.Log(res.msg);
DebugTool.Log(res.code);
}
};
WX.RequestRecharge(option);