余额充值

使用用户余额充值 API 对用户的余额账户进行充值功能。使用充值前,和支付一样,你需要开通相应的支付渠道,用户可以选择这些开通的渠道进行付款,同时用户可以选择给自己或者其他用户充值余额。目前支持功能如下:

  • 「充值赠送」功能(用户实际到账余额大于支付金额),用于商户营销赠送等场景,对应充值创建 API 中的 balance_bonus[amount] 赠送余额(此处赠送的余额不可提现,若希望赠送可提现余额给用户,请使用 企业付款 API
  • 「充值手续费」功能(实际充值金额小于充值订单金额),用于打赏抽成等场景,对应充值创建 API 中的 user_fee 充值时用户需要承担的手续费(手续费必须小于支付金额);
  • 充值退款,目前仅支持全额原路退回到支付渠道。「充值优惠」赠送的金额将会退还到企业运营账户中。
  • 同一个用户,可以给自己或者其他用户充值;用户 ID 在 Ping++ 系统内不存在时,会自动生成。

recharge1

  1. 客户端打开充值界面,用户输入充值金额和选择支付渠道,按场景也可以此时传入用户 ID,并发送给服务端;(Ping++ SDK 不涉及你的客户端和你的服务端之间的数据交互,此处请你自定义通信方式。)
  2. 服务端根据用户的充值信息调用 Server-SDK 的余额充值 API 请求 Ping++;
  3. Ping++ 响应你的服务端请求,返回余额充值对象(包含支付凭证)给你的服务端;
  4. 你的服务端响应你的客户端请求,需要将该余额充值对象返回给客户端。注意:这里的余额充值对象返回类型必须是 JSON 格式;
  5. 客户端拿到充值对象后,需要调用 Client-SDK 封装的方法调起支付控件、打开支付页面,用户完成充值支付;
  6. 第三方支付渠道会直接在客户端返回同步支付结果,此处不要使用客户端的成功结果更新充值对象的状态。你可以通过接受充值成功的 webhooks,或者重新获取该用户的当前余额来确定余额是否充值成功;
  7. 请在 Dashboard 配置 Webhooks 的 recharge.succeeded 充值成功事件。充值完成时,Ping++ 会主动以 POST 方式向你配置在 Dashboard 上的 Webhooks 通知地址发送充值对象事件。
  8. 使用扫码渠道时,请不要将服务端拿到的 Recharge 传给 Ping++ 的 Client-SDK。
  9. 同时,请务必加上充值对象主动查询机制:如果在可接受时间范围内没有收到 Webhooks 通知,你也可以调用 Server-SDK 封装的查询方法,主动向 Ping++ 发起请求来获得订单状态,该查询结果可以作为交易结果。

下一步充值退款