mirror of
https://gitee.com/egzosn/pay-java-parent.git
synced 2026-06-09 02:42:20 +08:00
支付宝微信转账完成
This commit is contained in:
@@ -458,7 +458,46 @@ public class AliPayService extends BasePayService {
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> transfer(TransferOrder order) {
|
||||
return null;
|
||||
//获取公共参数
|
||||
Map<String, Object> parameters = getPublicParameters(AliTransactionType.TRANS);
|
||||
|
||||
Map<String, Object> bizContent = new TreeMap<String, Object>();
|
||||
bizContent.put("out_biz_no", order.getOutNo());
|
||||
bizContent.put("payee_type", "ALIPAY_LOGONID");
|
||||
bizContent.put("payee_account", order.getPayeeAccount());
|
||||
bizContent.put("amount", order.getAmount().setScale(2, BigDecimal.ROUND_HALF_UP));
|
||||
bizContent.put("payer_show_name", order.getPayerName());
|
||||
bizContent.put("payee_real_name", order.getPayeeName());
|
||||
bizContent.put("remark", order.getRemark());
|
||||
//设置请求参数的集合
|
||||
parameters.put("biz_content", JSON.toJSONString(bizContent));
|
||||
//设置签名
|
||||
setSign(parameters);
|
||||
return getHttpRequestTemplate().postForObject(getReqUrl() + "?" + UriVariables.getMapToParameters(parameters), null, JSONObject.class);
|
||||
}
|
||||
|
||||
/**
|
||||
* 转账
|
||||
*
|
||||
* @param outNo 商户转账订单号
|
||||
* @param tradeNo 支付平台转账订单号
|
||||
*
|
||||
* @return 对应的转账订单
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> transferQuery(String outNo, String tradeNo) {
|
||||
//获取公共参数
|
||||
Map<String, Object> parameters = getPublicParameters(AliTransactionType.TRANS_QUERY);
|
||||
|
||||
Map<String, Object> bizContent = new TreeMap<String, Object>();
|
||||
if (StringUtils.isEmpty(outNo)){
|
||||
bizContent.put("order_id", tradeNo);
|
||||
}else {
|
||||
bizContent.put("out_biz_no", outNo);
|
||||
}
|
||||
//设置请求参数的集合
|
||||
parameters.put("biz_content", JSON.toJSONString(bizContent));
|
||||
return getHttpRequestTemplate().postForObject(getReqUrl() + "?" + UriVariables.getMapToParameters(parameters), null, JSONObject.class);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -64,8 +64,15 @@ public enum AliTransactionType implements TransactionType {
|
||||
/**
|
||||
* 下载对账单
|
||||
*/
|
||||
DOWNLOADBILL("alipay.data.dataservice.bill.downloadurl.query")
|
||||
|
||||
DOWNLOADBILL("alipay.data.dataservice.bill.downloadurl.query"),
|
||||
/**
|
||||
* 转账到支付宝
|
||||
*/
|
||||
TRANS("alipay.fund.trans.toaccount.transfer"),
|
||||
/**
|
||||
* 转账查询
|
||||
*/
|
||||
TRANS_QUERY("alipay.fund.trans.order.query")
|
||||
;
|
||||
|
||||
|
||||
|
||||
@@ -256,6 +256,33 @@ public abstract class BasePayService implements PayService {
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> transfer(TransferOrder order) {
|
||||
return new HashMap<>();
|
||||
return new HashMap<>(0);
|
||||
}
|
||||
|
||||
/**
|
||||
* 转账
|
||||
*
|
||||
* @param outNo 商户转账订单号
|
||||
* @param tradeNo 支付平台转账订单号
|
||||
*
|
||||
* @return 对应的转账订单
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> transferQuery(String outNo, String tradeNo){
|
||||
return new HashMap<>(0);
|
||||
}
|
||||
|
||||
/**
|
||||
* 转账
|
||||
*
|
||||
* @param outNo 商户转账订单号
|
||||
* @param tradeNo 支付平台转账订单号
|
||||
* @param callback 处理器
|
||||
* @param <T> 返回类型
|
||||
* @return 对应的转账订单
|
||||
*/
|
||||
@Override
|
||||
public <T>T transferQuery(String outNo, String tradeNo, Callback<T> callback){
|
||||
return callback.perform(transferQuery(outNo, tradeNo));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -321,4 +321,27 @@ public interface PayService {
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 转账
|
||||
*
|
||||
* @param outNo 商户转账订单号
|
||||
* @param tradeNo 支付平台转账订单号
|
||||
*
|
||||
* @return 对应的转账订单
|
||||
*/
|
||||
Map<String, Object> transferQuery(String outNo, String tradeNo);
|
||||
|
||||
/**
|
||||
* 转账
|
||||
*
|
||||
* @param outNo 商户转账订单号
|
||||
* @param tradeNo 支付平台转账订单号
|
||||
* @param callback 处理器
|
||||
* @param <T> 返回类型
|
||||
* @return 对应的转账订单
|
||||
*/
|
||||
<T>T transferQuery(String outNo, String tradeNo, Callback<T> callback);
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -338,4 +338,5 @@ public enum SignUtils {
|
||||
*/
|
||||
public abstract boolean verify(String text, String sign, String key, String characterEncoding);
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -518,13 +518,35 @@ public class WxPayService extends BasePayService {
|
||||
public Map<String, Object> transfer(TransferOrder order) {
|
||||
Map<String, Object> parameters = new TreeMap<String, Object>();
|
||||
parameters.put("mch_id", payConfigStorage.getPid());
|
||||
parameters.put("partner_trade_no", order.getOutNo());
|
||||
parameters.put("nonce_str", SignUtils.randomStr());
|
||||
parameters.put("enc_bank_no", keyPublic(order.getPayeeAccount()));
|
||||
parameters.put("enc_true_name", keyPublic(order.getPayeeName()));
|
||||
parameters.put("bank_code", order.getBank().getCode());
|
||||
parameters.put("amount", conversion(order.getAmount()));
|
||||
if (!StringUtils.isEmpty(order.getRemark())){
|
||||
parameters.put("desc", order.getRemark());
|
||||
}
|
||||
parameters.put(SIGN, SignUtils.valueOf(payConfigStorage.getSignType()).sign(parameters, payConfigStorage.getKeyPrivate(), payConfigStorage.getInputCharset()));
|
||||
return getHttpRequestTemplate().postForObject(getUrl(WxTransactionType.BANK), parameters, JSONObject.class);
|
||||
}
|
||||
|
||||
return null;
|
||||
/**
|
||||
* 转账
|
||||
*
|
||||
* @param outNo 商户转账订单号
|
||||
* @param tradeNo 支付平台转账订单号
|
||||
*
|
||||
* @return 对应的转账订单
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> transferQuery(String outNo, String tradeNo) {
|
||||
Map<String, Object> parameters = new TreeMap<String, Object>();
|
||||
parameters.put("mch_id", payConfigStorage.getPid());
|
||||
parameters.put("partner_trade_no", StringUtils.isEmpty(outNo) ? tradeNo : outNo);
|
||||
parameters.put("nonce_str", SignUtils.randomStr());
|
||||
parameters.put(SIGN, SignUtils.valueOf(payConfigStorage.getSignType()).sign(parameters, payConfigStorage.getKeyPrivate(), payConfigStorage.getInputCharset()));
|
||||
return getHttpRequestTemplate().postForObject(getUrl(WxTransactionType.QUERY_BANK), parameters, JSONObject.class);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -536,4 +558,7 @@ public class WxPayService extends BasePayService {
|
||||
return amount.multiply(new BigDecimal(100)).setScale(0, BigDecimal.ROUND_HALF_UP).intValue();
|
||||
}
|
||||
|
||||
public String keyPublic(String content){
|
||||
return SignUtils.RSA.createSign(content, payConfigStorage.getKeyPublic(), payConfigStorage.getInputCharset());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -86,7 +86,15 @@ public enum WxTransactionType implements TransactionType {
|
||||
/**
|
||||
* 下载对账单
|
||||
*/
|
||||
DOWNLOADBILL("pay/downloadbill")
|
||||
DOWNLOADBILL("pay/downloadbill"),
|
||||
/**
|
||||
* 银行卡转账
|
||||
*/
|
||||
BANK("mmpaysptrans/pay_bank"),
|
||||
/**
|
||||
* 转账查询
|
||||
*/
|
||||
QUERY_BANK("mmpaysptrans/query_bank")
|
||||
;
|
||||
|
||||
WxTransactionType(String method) {
|
||||
|
||||
Reference in New Issue
Block a user