余额提现

使用余额提现 API 对用户的余额账户进行提现功能。

提现功能包含用户提现申请、提现确认或者取消、提现完成、提现查询等。

使用提现功能前,需要开通相应的提现用的企业付款渠道。目前支持支付宝、微信(App、JSAPI 和小程序)和银行卡(银联电子代付、通联代付以及京东代付渠道)提现和批量提现操作。

提现申请时,支持用户使用两种模式发起提现:

  • 传入完整提现账户信息,例如支付宝账号、姓名。
  • 使用用户绑定的结算账户进行提现(类似绑卡提现)。详情参考 用户结算账户

如果不想承担提现的渠道手续费成本,可以在提现时收取用户手续费,此时用户实际到账金额等于用户余额扣除金额减用户手续费。

withdrawal1

  1. 客户端打开提现界面,用户输入提现金额和选择提现的企业付款渠道。并向服务端发起提现请求。

  2. 服务端根据用户的提现信息调用 Ping++ Server_SDK 中的的提现申请 API 发起请求。

  3. Ping++ 响应你的服务端的提现申请请求,生成提现对象,返回给你的服务端。

  4. 服务端接收到提现对象。此时可以同意或撤销提现申请,服务端调用(批量)提现确认 API 发起请求。

  5. Ping++ 响应提现确认,若同意提现,且用户余额满足,则 Ping++ 会立即向渠道发起提现(企业付款)请求。若取消提现,则不会发起提现操作,返回已撤销状态的提现对象。

  6. 发起提现请求后,根据渠道的响应,会有以下两种情况:

    • 1)因用户原因失败(如提现账户填写错误)。提现对象会变为已撤销状态,并通过 Webhooks 通知。需要修改提现账户后重新发起提现申请。
    • 2)因商户原因(如提现金额不足)或渠道系统原因失败。提现对象会变为提现已申请状态。此时商户可以继续对这个提现对象发起(批量)提现确认。
  7. 在 Dashboard 配置 Webhooks 的 balance.withdrawal.succeededbatch_withdrawal.succeeded 事件。提现成功时,Ping++ 会主动以 POST 方式向你配置在 Dashboard 上的 Webhooks 通知地址发送提现完成结果,服务端的订单状态请根据 Webhooks 通知更新;同理,配置对应的 batch_withdrawal.failedbatch_withdrawal.partially_succeededbatch_withdrawal.canceled 事件时,也会发送对应的批量提现失败或部分成功、批量提现撤销的 Webhooks 通知。

  8. 同时,请务必加上订单支付结果主动查询机制:如果在可接受时间范围内没有收到 Webhooks 通知,你也可以调用 Server_SDK 封装的查询方法,主动向 Ping++ 发起请求来获得提现状态,该查询结果可以作为交易结果。

下一步余额赠送