package com.stylefeng.guns.modular.cloudPayment.example;
|
|
import com.stylefeng.guns.modular.cloudPayment.mock.MockData;
|
import com.stylefeng.guns.modular.cloudPayment.req.WithdrawalReq;
|
import com.unionpay.upyzt.Upyzt;
|
import com.unionpay.upyzt.exception.UpyztException;
|
import com.unionpay.upyzt.model.Withdrawal;
|
import com.unionpay.upyzt.resp.WithdrawalResp;
|
import com.unionpay.upyzt.util.StringUtils;
|
|
import java.io.Serializable;
|
import java.time.OffsetDateTime;
|
import java.util.HashMap;
|
import java.util.Map;
|
|
public class WithdrawalExample implements Serializable {
|
|
|
/**
|
* 提现
|
*
|
* @return 返回参数
|
* @throws UpyztException 异常
|
*/
|
public static WithdrawalResp create(WithdrawalReq withdrawalReq) throws UpyztException {
|
Map<String, Object> params = new HashMap<>();
|
params.put("out_order_no", withdrawalReq.getOutOrderNo());
|
params.put("sent_at", OffsetDateTime.now().toString());
|
params.put("amount", withdrawalReq.getAmount());
|
params.put("balance_acct_id", withdrawalReq.getBalanceAcctId());
|
params.put("bank_acct_no", Upyzt.encryptField(withdrawalReq.getBankAcctNo()));
|
params.put("password", Upyzt.encryptField(withdrawalReq.getPassword()));
|
// params.put("remark", "用于 SDK 示例测试");
|
// params.put("bank_memo", "银行附言");
|
|
// 以下参数绑定账户无需填写,提现到非绑定账户时必填
|
if(!StringUtils.isBlank(withdrawalReq.getBankBranchCode())){
|
params.put("bank_acct_type", withdrawalReq.getBankAcctType());
|
params.put("bank_branch_code", withdrawalReq.getBankBranchCode());
|
params.put("bank_code", withdrawalReq.getBankBranchCode());
|
params.put("name", Upyzt.encryptField(withdrawalReq.getName()));
|
// 仅提现到个人非绑定账户时必填
|
params.put("mobile_number", Upyzt.encryptField(withdrawalReq.getMobileNumber()));
|
params.put("service_fee", withdrawalReq.getServiceFee());
|
// params.put("metadata", MockData.metadata());
|
}
|
|
params.put("extra", MockData.withdrawalExtra(withdrawalReq));
|
|
return Withdrawal.create(params);
|
}
|
|
/**
|
* 提现订单查询(系统订单号)
|
*
|
* @return 返回参数
|
* @throws UpyztException 异常
|
*/
|
public static WithdrawalResp retrieveById(String withdrawalId) throws UpyztException {
|
return Withdrawal.retrieveById(withdrawalId);
|
}
|
|
/**
|
* 提现订单查询(平台订单号)
|
*
|
* @return 返回参数
|
* @throws UpyztException 异常
|
*/
|
public WithdrawalResp retrieveByOutOrderNo(String outOrderNo) throws UpyztException {
|
return Withdrawal.retrieveByOutOrderNo(outOrderNo);
|
}
|
|
}
|