余额提现
使用余额提现 API 对用户的余额账户进行提现功能。
提现功能包含用户提现申请、提现确认或者取消、提现完成、提现查询等。
使用提现功能前,需要开通相应的提现用的企业付款渠道。目前支持支付宝、微信(App、JSAPI 和小程序)和银行卡(银联电子代付、通联代付以及京东代付渠道)提现和批量提现操作。
提现申请时,支持用户使用两种模式发起提现:
- 传入完整提现账户信息,例如支付宝账号、姓名。
- 使用用户绑定的结算账户进行提现(类似绑卡提现)。详情参考 用户结算账户 。
如果不想承担提现的渠道手续费成本,可以在提现时收取用户手续费,此时用户实际到账金额等于用户余额扣除金额减用户手续费。
-
客户端打开提现界面,用户输入提现金额和选择提现的企业付款渠道。并向服务端发起提现请求。
-
服务端根据用户的提现信息调用 Ping++
Server_SDK
中的的提现申请 API 发起请求。 -
Ping++ 响应你的服务端的提现申请请求,生成提现对象,返回给你的服务端。
-
服务端接收到提现对象。此时可以同意或撤销提现申请,服务端调用(批量)提现确认 API 发起请求。
-
Ping++ 响应提现确认,若同意提现,且用户余额满足,则 Ping++ 会立即向渠道发起提现(企业付款)请求。若取消提现,则不会发起提现操作,返回已撤销状态的提现对象。
-
发起提现请求后,根据渠道的响应,会有以下两种情况:
- 1)因用户原因失败(如提现账户填写错误)。提现对象会变为已撤销状态,并通过 Webhooks 通知。需要修改提现账户后重新发起提现申请。
- 2)因商户原因(如提现金额不足)或渠道系统原因失败。提现对象会变为提现已申请状态。此时商户可以继续对这个提现对象发起(批量)提现确认。
-
在 Dashboard 配置 Webhooks 的
balance.withdrawal.succeeded
或batch_withdrawal.succeeded
事件。提现成功时,Ping++ 会主动以 POST 方式向你配置在 Dashboard 上的 Webhooks 通知地址发送提现完成结果,服务端的订单状态请根据 Webhooks 通知更新;同理,配置对应的batch_withdrawal.failed
、batch_withdrawal.partially_succeeded
和batch_withdrawal.canceled
事件时,也会发送对应的批量提现失败或部分成功、批量提现撤销的 Webhooks 通知。 -
同时,请务必加上订单支付结果主动查询机制:如果在可接受时间范围内没有收到 Webhooks 通知,你也可以调用
Server_SDK
封装的查询方法,主动向 Ping++ 发起请求来获得提现状态,该查询结果可以作为交易结果。
下一步余额赠送