Commit ca2794d3 authored by jiaorz's avatar jiaorz

添加支付宝支付类型字段

parent a792f7c4
......@@ -113,7 +113,7 @@ public class OrderPayBiz extends BaseBiz<OrderPayMapper, OrderPay> {
jsParam = WXPay.apppay(amount + "", orderPayVo.getBody(), notify_url, trade_no, orderPayVo.getBuyerIp(), 0);
} else if (type == 1 && payWay == 2) {
sellerAccount = SystemConfig.ALIPAY_PID;
orderPayVo.setPayType(1);
orderPayVo.setPayType(2);
jsParam = generateAliPayment(orderPayVo, notifyUrl);
}else if (type == 3 && payWay == 1){
sellerAccount = SystemConfig.APP_PARTNER;
......@@ -347,15 +347,15 @@ public class OrderPayBiz extends BaseBiz<OrderPayMapper, OrderPay> {
}
//解冻预授权
public String fundAuthOrderUnFreeze(OrderPayVo orderPayVo, String notifyUrl) throws AlipayApiException {
public String fundAuthOrderUnFreeze(String outTradeNo, String serialNumber, Integer refundAmount, String refundReason, String notifyUrl) throws AlipayApiException {
AlipayClient alipayClient = getAlipayClient();
BigDecimal realAmount = new BigDecimal(orderPayVo.getAmount().toString()).divide(new BigDecimal("100"), 2, BigDecimal.ROUND_UP);
BigDecimal realAmount = new BigDecimal(refundAmount.toString()).divide(new BigDecimal("100"), 2, BigDecimal.ROUND_UP);
AlipayFundAuthOrderUnfreezeRequest request = new AlipayFundAuthOrderUnfreezeRequest();
AlipayFundAuthOrderUnfreezeModel model = new AlipayFundAuthOrderUnfreezeModel();
model.setAuthNo(orderPayVo.getTradeNo()); // 支付宝资金授权订单号,在授权冻结成功时返回需要入库保存
model.setOutRequestNo(orderPayVo.getOrderNo());//同一商户每次不同的资金操作请求,商户请求流水号不能重复,且与冻结流水号不同
model.setAuthNo(serialNumber); // 支付宝资金授权订单号,在授权冻结成功时返回需要入库保存
model.setOutRequestNo(outTradeNo);//同一商户每次不同的资金操作请求,商户请求流水号不能重复,且与冻结流水号不同
model.setAmount(realAmount.toString()); // 本次操作解冻的金额,单位为:元(人民币),精确到小数点后两位
model.setRemark(orderPayVo.getBody()); // 商户对本次解冻操作的附言描述,长度不超过100个字母或50个汉字
model.setRemark(refundReason); // 商户对本次解冻操作的附言描述,长度不超过100个字母或50个汉字
//选填字段,信用授权订单,针对信用全免订单,传入该值完结信用订单,形成芝麻履约记录
// model.setExtraParam("{\"unfreezeBizInfo\":\"{\\\"bizComplete\\\":\\\"true\\\"}\"}");
request.setBizModel(model);
......@@ -373,15 +373,15 @@ public class OrderPayBiz extends BaseBiz<OrderPayMapper, OrderPay> {
}
//取消预授权
public String fundAuthCancel(OrderPayVo orderPayVo, String notifyUrl) throws AlipayApiException {
public String fundAuthCancel(String outTradeNo, String serialNumber, String refundReason, String notifyUrl) throws AlipayApiException {
AlipayClient alipayClient = getAlipayClient();
AlipayFundAuthOperationCancelRequest request = new AlipayFundAuthOperationCancelRequest();
AlipayFundAuthOperationCancelModel model = new AlipayFundAuthOperationCancelModel();
model.setAuthNo(orderPayVo.getSerialNumber()); // 支付宝资金授权订单号,在授权冻结成功时返回参数中获得
model.setOutOrderNo(orderPayVo.getOrderNo()); //商户的授权资金订单号,与支付宝的授权资金订单号不能同时为空
model.setAuthNo(outTradeNo); // 支付宝资金授权订单号,在授权冻结成功时返回参数中获得
//model.setOutOrderNo(orderPayVo.getOrderNo()); //商户的授权资金订单号,与支付宝的授权资金订单号不能同时为空
//model.setOperationId("20171201317348823902"); //支付宝的授权资金操作流水号
model.setOutRequestNo(orderPayVo.getTradeNo());//与支付宝的授权资金操作流水号不能同时为空,与冻结流水号相同
model.setRemark(orderPayVo.getBody()); // 商户对本次撤销操作的附言描述,长度不超过100个字母或50个汉字
model.setOutRequestNo(serialNumber);//与支付宝的授权资金操作流水号不能同时为空,与冻结流水号相同
model.setRemark(refundReason); // 商户对本次撤销操作的附言描述,长度不超过100个字母或50个汉字
request.setBizModel(model);
request.setNotifyUrl(notifyUrl);//异步通知地址,必填,该接口只通过该参数进行异步通知
......@@ -398,19 +398,19 @@ public class OrderPayBiz extends BaseBiz<OrderPayMapper, OrderPay> {
}
//预授权转支付
public void tradePay(OrderPayVo orderPayVo, String notifyUrl) throws AlipayApiException {
public void tradePay(String outTradeNo, String serialNumber, Integer refundAmount, String refundReason, String subject, String notifyUrl) throws AlipayApiException {
AlipayClient alipayClient = getAlipayClient();
BigDecimal realAmount = new BigDecimal(orderPayVo.getAmount().toString()).divide(new BigDecimal("100"), 2, BigDecimal.ROUND_UP);
BigDecimal realAmount = new BigDecimal(refundAmount.toString()).divide(new BigDecimal("100"), 2, BigDecimal.ROUND_UP);
AlipayTradePayRequest request = new AlipayTradePayRequest();
AlipayTradePayModel model = new AlipayTradePayModel();
model.setOutTradeNo(orderPayVo.getOrderNo()); // 预授权转支付商户订单号,为新的商户交易流水号;如果重试发起扣款,商户订单号不要变;
model.setOutTradeNo(outTradeNo); // 预授权转支付商户订单号,为新的商户交易流水号;如果重试发起扣款,商户订单号不要变;
model.setProductCode("PRE_AUTH_ONLINE"); // 固定值PRE_AUTH_ONLINE
model.setAuthNo(orderPayVo.getTradeNo()); // 填写预授权冻结交易号
model.setSubject(orderPayVo.getSubject()); // 解冻转支付标题,用于展示在支付宝账单中
model.setAuthNo(serialNumber); // 填写预授权冻结交易号
model.setSubject(subject); // 解冻转支付标题,用于展示在支付宝账单中
model.setTotalAmount(realAmount.toString()); // 结算支付金额
model.setSellerId(SystemConfig.ALIPAY_PID); // 填写卖家支付宝账户pid
model.setBuyerId(SystemConfig.ALIPAY_APPID); // 填写预授权用户uid,通过预授权冻结接口返回的payer_user_id字段获取
model.setBody(orderPayVo.getBody()); // 可填写备注信息
model.setBody(refundReason); // 可填写备注信息
//如果需要从一笔授权中完成多笔订单支付,保持auth_no不变,不同订单根据outTradeNo进行标识,此时auth_confirm_mode不传或者传入NOT_COMPLETE;进行到最后一笔转支付时,auth_confirm_mode传入COMPLETE由支付宝完成剩余金额自动解冻,或者商户自行调用解冻接口将剩余金额解冻。
model.setAuthConfirmMode("NOT_COMPLETE");//传入该值用户剩余金额不会自动解冻
request.setBizModel(model);
......@@ -472,7 +472,7 @@ public class OrderPayBiz extends BaseBiz<OrderPayMapper, OrderPay> {
orderPayVo.setAmount(3);
orderPayVo.setBody("扣除租车订单费用");
orderPayVo.setSubject("租车订单交易费用");
orderPayBiz.fundAuthOrderUnFreeze(orderPayVo, "");
//orderPayBiz.fundAuthOrderUnFreeze(orderPayVo, "");
//orderPayBiz.alipayOrderRefund("20191024153859000003","2019102422001421530513773694", 2, "xxxx", "");
//orderPayBiz.tradePay(orderPayVo, "");
//orderPayBiz.fundAuthCancel(orderPayVo, "");
......
......@@ -89,8 +89,11 @@ public class OrderRefundBiz extends BaseBiz<OrderRefundMapper, OrderRefund> {
OrderPay orderPay = list.get(0);
String out_trade_no = orderPay.getTradeNo();
boolean flag = false;
if (orderPay.getPayWay() == 2) {
log.info("======支付宝退款中===========");
if (orderPay.getPayWay() == 2 && orderPay.getPayType() == 1) {
log.info("======支付宝APP支付退款中===========");
flag = payBiz.alipayOrderRefund(out_trade_no, orderPay.getSerialNumber(), refundAmount, refundDesc, out_trade_no + System.currentTimeMillis());
} else if (orderPay.getPayWay() == 2 && orderPay.getPayType() == 2) {
log.info("======支付宝预授权支付退款中===========");
flag = payBiz.alipayOrderRefund(out_trade_no, orderPay.getSerialNumber(), refundAmount, refundDesc, out_trade_no + System.currentTimeMillis());
} else if(orderPay.getPayWay() == 1){
log.info("======微信退款中===========");
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment