|
|
@@ -311,6 +311,84 @@ public class AliApi {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
+ * 单笔转账接口
|
|
|
+ *
|
|
|
+ * @param name 收款人姓名
|
|
|
+ * @param idCard 收款人身份证号
|
|
|
+ * @param account 收款人支付宝账号
|
|
|
+ * @param money 收款金额
|
|
|
+ * @param phone 收款金额
|
|
|
+ * @return 是否成功
|
|
|
+ */
|
|
|
+ public StoreAliPayLog payAccount(String name, String idCard, String account, String money, String phone) {
|
|
|
+ try {
|
|
|
+ log.info("AliPayConfig.pay?name={}&idCard={}&phone={}&money={}", name, idCard, account, money);
|
|
|
+ // 初始化SDK
|
|
|
+ AlipayClient alipayClient = new DefaultAlipayClient(setAlipayConfig(null));
|
|
|
+ // 构造请求参数以调用接口
|
|
|
+ AlipayFundTransUniTransferRequest request = new AlipayFundTransUniTransferRequest();
|
|
|
+ AlipayFundTransUniTransferModel model = new AlipayFundTransUniTransferModel();
|
|
|
+ // 设置商家侧唯一订单号
|
|
|
+ model.setOutBizNo("pay_" + createOrderNo());
|
|
|
+ // 设置订单总金额
|
|
|
+ model.setTransAmount(money);
|
|
|
+ // 设置描述特定的业务场景
|
|
|
+ model.setBizScene("DIRECT_TRANSFER");
|
|
|
+ // 设置业务产品码
|
|
|
+ model.setProductCode("TRANS_ACCOUNT_NO_PWD");
|
|
|
+ // 设置转账业务的标题
|
|
|
+ model.setOrderTitle("商家转账");
|
|
|
+ // 设置收款方信息
|
|
|
+ Participant payeeInfo = new Participant();
|
|
|
+ payeeInfo.setCertType("IDENTITY_CARD");
|
|
|
+ payeeInfo.setCertNo(idCard);
|
|
|
+ payeeInfo.setIdentityType("ALIPAY_LOGON_ID");
|
|
|
+ payeeInfo.setIdentity(account);
|
|
|
+ payeeInfo.setName(name);
|
|
|
+ model.setPayeeInfo(payeeInfo);
|
|
|
+ // 设置业务备注
|
|
|
+ model.setRemark("爱丽恩提现业务");
|
|
|
+ // 设置转账业务请求的扩展参数
|
|
|
+ model.setBusinessParams("{\"payer_show_name_use_alias\":\"true\"}");
|
|
|
+ request.setBizModel(model);
|
|
|
+ AlipayFundTransUniTransferResponse response = alipayClient.certificateExecute(request);
|
|
|
+ if (response.isSuccess()) {
|
|
|
+ //查询用户
|
|
|
+ LambdaQueryWrapper<StoreUser> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ queryWrapper.eq(StoreUser::getIdCard, idCard);
|
|
|
+ queryWrapper.eq(StoreUser::getPhone, phone);
|
|
|
+ queryWrapper.eq(StoreUser::getName, name);
|
|
|
+ StoreUser one = storeUserService.getOne(queryWrapper);
|
|
|
+ JSONObject jsonObject = JSONObject.parseObject(response.getBody()).getJSONObject("alipay_fund_trans_uni_transfer_response");
|
|
|
+ StoreAliPayLog storeAliPayLog = new StoreAliPayLog();
|
|
|
+ storeAliPayLog.setTransAmount(money);
|
|
|
+ storeAliPayLog.setOutBizNo(jsonObject.getString("out_biz_no"));
|
|
|
+ storeAliPayLog.setOrderId(jsonObject.getString("order_id"));
|
|
|
+ storeAliPayLog.setPayFundOrderId(jsonObject.getString("pay_fund_order_id"));
|
|
|
+ storeAliPayLog.setTransDate(jsonObject.getString("trans_date"));
|
|
|
+ if (null == one) {
|
|
|
+ LambdaQueryWrapper<LifeUser> userQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ userQueryWrapper.eq(LifeUser::getIdCard, idCard);
|
|
|
+ userQueryWrapper.eq(LifeUser::getUserPhone, phone);
|
|
|
+ userQueryWrapper.eq(LifeUser::getRealName, name);
|
|
|
+ LifeUser userOne = lifeUserService.getOne(userQueryWrapper);
|
|
|
+ storeAliPayLog.setStoreUserId(userOne.getId());
|
|
|
+ } else {
|
|
|
+ storeAliPayLog.setStoreUserId(one.getId());
|
|
|
+
|
|
|
+ }
|
|
|
+ storeAliPayLogService.save(storeAliPayLog);
|
|
|
+ return storeAliPayLog;
|
|
|
+ } else {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ } catch (AlipayApiException e) {
|
|
|
+ log.error("AliPayConfig.pay ERROR Msg={}", e.getErrMsg());
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
* 银行卡核验
|
|
|
*
|
|
|
* @param name 姓名
|