From bd8dbc9199eeb2985e52b9a1ec1982090b05015a Mon Sep 17 00:00:00 2001 From: HH Date: Sun, 9 Apr 2023 21:56:56 +0800 Subject: [PATCH] =?UTF-8?q?api:=20=E9=92=B1=E5=8C=85=E4=BD=99=E9=A2=9D?= =?UTF-8?q?=E5=85=A8=E9=83=A8=E6=8F=90=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ghy/payment/service/AdapayService.java | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/ghy-payment/src/main/java/com/ghy/payment/service/AdapayService.java b/ghy-payment/src/main/java/com/ghy/payment/service/AdapayService.java index a0d8683b..ecf7a2f3 100644 --- a/ghy-payment/src/main/java/com/ghy/payment/service/AdapayService.java +++ b/ghy-payment/src/main/java/com/ghy/payment/service/AdapayService.java @@ -258,6 +258,30 @@ public class AdapayService { return (JSONObject) SettleAccount.balance(queryParams, deptId.toString()); } + /** + * 提现钱包里的所有余额(仅用于商户下的用户) + * + * @param deptId [必填]商户ID + * @param memberId [必填]商户用户对象 id,只能为英文、数字或者下划线的一种或多种组合 + * @param settleAccountId [必填]由Adapay生成的结算账户对象id + * @return 可用余额不足时 return null; + * 其它同 {@link AdapayService#drawCash(Long, String, String, String, String, String, String)} + */ + public JSONObject drawCashAll(@NotNull Long deptId, @NotNull String memberId, @NotNull String settleAccountId) throws BaseAdaPayException { + JSONObject balance = queryAccountBalance(deptId, memberId, settleAccountId, null); + if (AdapayStatusEnum.succeeded.code.equals(balance.getString("status"))) { + // 可用余额 + String avlBalance = balance.getString("avl_balance"); + if (StringUtils.isBlank(avlBalance) || "0.00".equals(avlBalance) || avlBalance.startsWith("-")) { + // 可用余额不足 + return null; + } + return drawCash(deptId, "", "T1", avlBalance, memberId, "", null); + } else { + throw new BaseAdaPayException(balance.getString("error_code") + ": " + balance.getString("error_msg")); + } + } + /** * 删除结算账户对象 https://docs.adapay.tech/api/trade.html#id50 * 删除结算账户对象是对已创建完成的结算账户对象进行删除操作。