Skip to content

Commit cb593de

Browse files
egzosnegzosn
authored andcommitted
转账与发红包功能实现
1 parent aa04a94 commit cb593de

2 files changed

Lines changed: 73 additions & 53 deletions

File tree

pay-java-demo/src/main/java/com/egzosn/pay/demo/controller/AliPayController.java

Lines changed: 21 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,13 @@
55
import com.egzosn.pay.ali.api.AliPayConfigStorage;
66
import com.egzosn.pay.ali.api.AliPayService;
77
import com.egzosn.pay.ali.bean.AliTransactionType;
8+
import com.egzosn.pay.ali.bean.AliTransferOrder;
89
import com.egzosn.pay.ali.bean.AliTransferType;
910
import com.egzosn.pay.ali.bean.OrderSettle;
10-
import com.egzosn.pay.common.bean.*;
11+
import com.egzosn.pay.common.bean.PayOrder;
12+
import com.egzosn.pay.common.bean.RefundOrder;
13+
import com.egzosn.pay.common.bean.TransactionType;
14+
import com.egzosn.pay.common.bean.TransferOrder;
1115
import com.egzosn.pay.common.http.HttpConfigStorage;
1216
import com.egzosn.pay.common.http.UriVariables;
1317
import com.egzosn.pay.common.util.sign.SignUtils;
@@ -17,6 +21,7 @@
1721
import org.springframework.beans.factory.config.AutowireCapableBeanFactory;
1822
import org.springframework.web.bind.annotation.RequestMapping;
1923
import org.springframework.web.bind.annotation.RestController;
24+
2025
import javax.annotation.PostConstruct;
2126
import javax.annotation.Resource;
2227
import javax.imageio.ImageIO;
@@ -109,7 +114,7 @@ public Map<String, Object> app() {
109114
PayOrder order = new PayOrder("订单title", "摘要", new BigDecimal(0.01), UUID.randomUUID().toString().replace("-", ""));
110115
//App支付
111116
order.setTransactionType(AliTransactionType.APP);
112-
data.put("orderInfo", UriVariables.getMapToParameters(service.orderInfo(order)));
117+
data.put("orderInfo", UriVariables.getMapToParameters(service.app(order)));
113118
return data;
114119
}
115120

@@ -287,8 +292,8 @@ public Map<String, Object> refund(RefundOrder order) {
287292
* @return 返回支付方查询退款后的结果
288293
*/
289294
@RequestMapping("refundquery")
290-
public Map<String, Object> refundquery(QueryOrder order) {
291-
return service.refundquery(order.getTradeNo(), order.getOutTradeNo());
295+
public Map<String, Object> refundquery(RefundOrder order) {
296+
return service.refundquery(order);
292297
}
293298

294299
/**
@@ -303,18 +308,6 @@ public Object downloadbill(QueryOrder order) {
303308
}
304309

305310

306-
/**
307-
* 通用查询接口,根据 AliTransactionType 类型进行实现,此接口不包括退款
308-
*
309-
* @param order 订单的请求体
310-
* @return 返回支付方对应接口的结果
311-
*/
312-
@RequestMapping("secondaryInterface")
313-
public Map<String, Object> secondaryInterface(QueryOrder order) {
314-
TransactionType type = AliTransactionType.valueOf(order.getTransactionType());
315-
return service.secondaryInterface(order.getTradeNoOrBillDate(), order.getOutTradeNoBillType(), type);
316-
}
317-
318311
/**
319312
* 转账
320313
*
@@ -323,15 +316,18 @@ public Map<String, Object> secondaryInterface(QueryOrder order) {
323316
* @return 对应的转账结果
324317
*/
325318
@RequestMapping("transfer")
326-
public Map<String, Object> transfer(TransferOrder order) {
327-
// order.setOutNo("转账单号");
328-
// order.setPayeeAccount("收款方账户,支付宝登录号,支持邮箱和手机号格式");
329-
// order.setAmount(new BigDecimal(10));
330-
// order.setPayerName("付款方姓名, 非必填");
331-
// order.setPayeeName("收款方真实姓名, 非必填");
332-
// order.setRemark("转账备注, 非必填");
333-
//收款方账户类型 ,默认值 ALIPAY_LOGONID:支付宝登录号,支持邮箱和手机号格式。
334-
order.setTransferType(AliTransferType.ALIPAY_LOGONID);
319+
public Map<String, Object> transfer(AliTransferOrder order) {
320+
order.setOutBizNo("转账单号");
321+
order.setTransAmount(new BigDecimal(10));
322+
order.setOrderTitle("转账业务的标题");
323+
order.setIdentity("参与方的唯一标识");
324+
order.setIdentityType("参与方的标识类型,目前支持如下类型:");
325+
order.setName("参与方真实姓名");
326+
order.setRemark("转账备注, 非必填");
327+
//单笔无密转账到支付宝账户
328+
order.setTransferType(AliTransferType.TRANS_ACCOUNT_NO_PWD);
329+
//单笔无密转账到银行卡
330+
// order.setTransferType(AliTransferType.TRANS_BANKCARD_NO_PWD);
335331
return service.transfer(order);
336332
}
337333

pay-java-demo/src/main/java/com/egzosn/pay/demo/controller/WxPayController.java

Lines changed: 52 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -2,27 +2,16 @@
22
package com.egzosn.pay.demo.controller;
33

44

5-
import com.egzosn.pay.common.api.Callback;
6-
import com.egzosn.pay.common.api.PayService;
75
import com.egzosn.pay.common.bean.*;
86
import com.egzosn.pay.common.http.HttpConfigStorage;
9-
import com.egzosn.pay.common.http.UriVariables;
10-
import com.egzosn.pay.demo.entity.PayType;
117
import com.egzosn.pay.demo.request.QueryOrder;
12-
import com.egzosn.pay.demo.service.PayResponse;
13-
import com.egzosn.pay.demo.service.handler.AliPayMessageHandler;
14-
import com.egzosn.pay.demo.service.handler.WxPayMessageHandler;
158
import com.egzosn.pay.wx.api.WxPayConfigStorage;
169
import com.egzosn.pay.wx.api.WxPayService;
17-
import com.egzosn.pay.wx.bean.WxBank;
18-
import com.egzosn.pay.wx.bean.WxTransactionType;
19-
import com.egzosn.pay.wx.bean.WxTransferType;
20-
import org.springframework.beans.factory.config.AutowireCapableBeanFactory;
10+
import com.egzosn.pay.wx.bean.*;
2111
import org.springframework.web.bind.annotation.RequestMapping;
2212
import org.springframework.web.bind.annotation.RestController;
2313

2414
import javax.annotation.PostConstruct;
25-
import javax.annotation.Resource;
2615
import javax.imageio.ImageIO;
2716
import javax.servlet.http.HttpServletRequest;
2817
import java.io.ByteArrayOutputStream;
@@ -43,7 +32,7 @@
4332
@RequestMapping("wx")
4433
public class WxPayController {
4534

46-
private PayService service = null;
35+
private WxPayService service = null;
4736

4837

4938

@@ -155,7 +144,7 @@ public Map<String, Object> app() {
155144
PayOrder order = new PayOrder("订单title", "摘要", new BigDecimal(0.01), UUID.randomUUID().toString().replace("-", ""));
156145
//App支付
157146
order.setTransactionType(WxTransactionType.APP);
158-
data.put("orderInfo", service.orderInfo(order));
147+
data.put("orderInfo", service.app(order));
159148
return data;
160149
}
161150

@@ -334,8 +323,8 @@ public Map<String, Object> refund(RefundOrder order) {
334323
* @return 返回支付方查询退款后的结果
335324
*/
336325
@RequestMapping("refundquery")
337-
public Map<String, Object> refundquery(QueryOrder order) {
338-
return service.refundquery(order.getTradeNo(), order.getOutTradeNo());
326+
public Map<String, Object> refundquery(RefundOrder order) {
327+
return service.refundquery(order);
339328
}
340329

341330
/**
@@ -350,18 +339,6 @@ public Object downloadbill(QueryOrder order) {
350339
}
351340

352341

353-
/**
354-
* 通用查询接口,根据 WxTransactionType 类型进行实现,此接口不包括退款
355-
*
356-
* @param order 订单的请求体
357-
* @return 返回支付方对应接口的结果
358-
*/
359-
@RequestMapping("secondaryInterface")
360-
public Map<String, Object> secondaryInterface(QueryOrder order) {
361-
TransactionType type = WxTransactionType.valueOf(order.getTransactionType());
362-
return service.secondaryInterface(order.getTradeNoOrBillDate(), order.getOutTradeNoBillType(), type);
363-
}
364-
365342

366343

367344
/**
@@ -428,4 +405,51 @@ public Map<String, Object> transferQuery(String outNo, String wxTransferType) {
428405
//默认查询银行卡的记录 com.egzosn.pay.wx.bean.WxTransferType#QUERY_BANK
429406
return service.transferQuery(outNo, wxTransferType);
430407
}
408+
409+
/**
410+
* 微信发红包
411+
* @param redpackOrder 红包订单
412+
* @return 结果
413+
*/
414+
public Map<String, Object> sendredpack(RedpackOrder redpackOrder) {
415+
redpackOrder.setTransferType(WxSendredpackType.SENDREDPACK);
416+
return service.sendredpack(redpackOrder);
417+
}
418+
419+
/**
420+
* 发放裂变红包
421+
* @param redpackOrder 红包订单
422+
* @return 结果
423+
*/
424+
public Map<String, Object> sendgroupredpack(RedpackOrder redpackOrder) {
425+
redpackOrder.setTransferType(WxSendredpackType.SENDGROUPREDPACK);
426+
return service.sendredpack(redpackOrder);
427+
}
428+
429+
430+
/**
431+
* 小程序发红包
432+
* @param redpackOrder 红包订单
433+
* @return 结果
434+
*/
435+
public Map<String, Object> sendminiprogramhb(RedpackOrder redpackOrder) {
436+
redpackOrder.setTransferType(WxSendredpackType.SENDMINIPROGRAMHB);
437+
return service.sendredpack(redpackOrder);
438+
}
439+
440+
441+
/**
442+
* 查询红包记录
443+
* 用于商户对已发放的红包进行查询红包的具体信息,可支持普通红包和裂变包
444+
* 查询红包记录API只支持查询30天内的红包订单,30天之前的红包订单请登录商户平台查询。
445+
*
446+
* @param mchBillno 商户发放红包的商户订单号
447+
* @return 返回查询结果
448+
*/
449+
public Map<String, Object> gethbinfo(String mchBillno) {
450+
return service.gethbinfo(mchBillno);
451+
}
452+
453+
454+
431455
}

0 commit comments

Comments
 (0)