celery-pay-assistant​支付助手

联合创作 · 2023-09-30 04:29

​支付助手 - 是一个基于微信支付API、支付宝支付API封装的Spring Boot Stater。通过简单注解配置即可进行支付交易。


主要特性



  • 简单注解配置,即可实现支付相关操作

  • 省掉碍眼繁琐的签名与验签,简化支付交互过程

  • 透传返回交互结果


使用指引


引入依赖


implementation("cool.doudou:pay-assistant:latest")

配置文件


pay:
modes:
- wx
- ali
notify-server-address: http://127.0.0.1:8000
wx:
appId: wx000001
mchId: 14000001
private-key-path: /home/test.pem
private-key-serial-number: 70000000001
api-key-v3: abcdefg
ali:
appId: ali00001
private-key-path: /home/test.pem
public-key-path: /home/test-pub.pem

参数说明



下单


















































参数 名称 微信 支付宝
outTradeNo 商户订单号 数字、大小写字母_-*且在同一个商户号下唯一 字母、数字、下划线且需保证在商户端不重复
money 总金额 单位为分 单位为元,精确到小数点后两位
description 商品描述 - 不可使用特殊字符,如 /,=,& 等
timeExpire 订单失效时间 格式为yyyy-MM-DDTHH🇲🇲ss+TIMEZONE 格式为yyyy-MM-dd HH🇲🇲ss
attach 附加数据 在查询API和支付通知中原样返回 在异步通知、对账单中原样返回
uid 用户ID 用户标识 买家支付宝用户ID


退款












































参数 名称 微信 支付宝
outTradeNo 商户订单号 数字、大小写字母_-*且在同一个商户号下唯一 字母、数字、下划线且需保证在商户端不重复
outRefundNo 退款单号 商户系统内部唯一,只能是数字、大小写字母_-*@、竖线 标识一次退款请求,需要保证在交易号下唯一
reason 退款原因 - -
money 总金额 单位为分 无此参数
refundMoney 退款金额 单位为分 单位为元


账单




  • 微信交易账单需要两步:首先tradeBill获取账单地址,然后downloadBill返回字节数组数据流

  • 支付宝交易账单需要一步:tradeBill获取账单地址,自行请求下载文件


使用方式



下单、查询、关闭、退款、交易账单




  • PayModeEnum.WX:微信

  • PayModeEnum.ALI:支付宝



@Service
public class PayService {
@Autowired
private PayHelper payHelper;

/**
* 下单
*/
public void place() {
PlaceOrderParam placeOrderParam = new PlaceOrderParam();
// ...
payHelper.place(PayModeEnum.WX, placeOrderParam);
}

/**
* 查询
*/
public void query() {
payHelper.query(PayModeEnum.WX, "xxxxxx00001");
}

/**
* 关闭
*/
public void close() {
payHelper.close(PayModeEnum.WX, "xxxxxx00001");
}

/**
* 退款
*/
public void refund() {
RefundParam refundParam = new RefundParam();
// ...
payHelper.refund(PayModeEnum.WX, refundParam);
}

/**
* 交易账单
*/
public void tradeBill() {
payHelper.tradeBill(PayModeEnum.WX, "2022-07-07");
}
}



支付通知




@Component
public class PayNotifyComponent {
/**
* 微信
*/
@WxPayNotify
public void wxPayNotify(String message) {
System.out.println(message);
}

/**
* 支付宝
*/
@AliPayNotify
public void aliPayNotify(String message) {
System.out.println(message);
}
}

浏览 15
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报