查看原文
其他

一款简单易学的支付宝开源支付项目

TJ TJ君 2021-11-12

大家好,我是TJ

一个励志推荐10000款开源项目与工具的程序员


这两天TJ君稍微关注了一下娱乐新闻,因为知名的钢琴家李云迪出事了,铺天盖地都是其涉嫌PC被捕的事情,其中主要的一个证据,就是李云迪通过支付宝实名转账给了涉事女子,成为铁一般的犯罪事实,金额还不小,据说一次一万。

不过这说到支付宝的转账,TJ君昨天刚看到一个基于spring-boot的支付实例项目spring-boot-pay,项目可以拿来即插即用,也可以作为一款学习支付宝支付服务的好案例。TJ君觉得要和大家分享一下!

要先提示大家的是支付宝测试均需要企业认证,如果想测试的小伙伴正好没有企业认证,那也可以使用服务商模式申请开通个人商户,一样可以用来测试。

那具体如何申请服务商模式,项目里有申请链接,感兴趣的小伙伴可以关注TJ君回复关键字获取项目地址后自行查看。

项目包含了支付宝支付服务中的各种场景,包括:扫码支付、电脑支付、WAP支付、APP支付服务端

主要运用的技术栈有:

  • JDK1.8
  • Maven
  • IDEA
  • SpringBoot2.2.6
  • Dubbo2.7.3
  • zookeeper3.5.3

项目运行起来的演示画面丝毫不逊色于一些大厂出品:

模拟登陆

模拟首页

模拟支付

支付宝参数zfbinfo.properties包含如下内容:

支付宝网关名、partnerId和appId
open_api_domain = https://openapi.alipay.com/gateway.do
mcloud_api_domain = http://mcloudmonitor.com/gateway.do
此处请填写你的PID
pid =XXXXXXXXXXXXXX
此处请填写你当面付的APPID
appid =XXXXXXXXXXXXXX

RSA私钥、公钥和支付宝公钥
private_key = XXXXXXXXXXXXXX
public_key = XXXXXXXXXXXXXX
alipay_public_key = XXXXXXXXXXXXXX

当面付最大查询次数和查询间隔(毫秒)
max_query_retry = 5
query_duration = 5000

当面付最大撤销次数和撤销间隔(毫秒)
max_cancel_retry = 3
cancel_duration = 2000

交易保障线程第一次调度延迟和调度间隔(秒)
heartbeat_delay = 5
heartbeat_duration = 900

当然,项目要用到的支付宝的公钥参数、支付宝的SDK-alipay-sdk-java,都需要从阿里的官网获得,地址如下:

  • https://openclub.alipay.com/read.php?tid=2190&fid=69
  • https://docs.open.alipay.com/54/103419/

作者对如何部署整个项目、使用户能够正常使用,写了详尽的部署及启动说明:

简单来说,就是

  • 1、安装注册中心zookeeper
  • 2、基础配置初始化类:com.itstyle.common.cinfig.InitPay
  • 3、配置支付宝相关账号以及证书
  • 4、启动项目

对于扫码支付、电脑支付、WAP支付、APP支付服务端等各种支付方式,代码中也是分类清晰,让人一目了然

    /**
     * 电脑支付
     * @param product
     * @param map
     * @return
     */

 @ApiOperation(value="电脑支付")
 @PostMapping(value="pcPay")
    public String  pcPay(Product product,ModelMap map) {
  logger.info("电脑支付");
  String form  =  aliPayService.aliPayPc(product);
  map.addAttribute("form", form);
  return "aliPay/pay";
    }

    /**
     * 手机H5支付
     * @param product
     * @param map
     * @return
     */

 @ApiOperation(value="手机H5支付")
 @PostMapping(value="mobilePay")
    public String  mobilePay(Product product,ModelMap map) {
  logger.info("手机H5支付");
  String form  =  aliPayService.aliPayMobile(product);
  map.addAttribute("form", form);
  return "aliPay/pay";
    }

    /**
     * 扫码支付
     * @param product
     * @param map
     * @return
     */

 @ApiOperation(value="二维码支付")
 @PostMapping(value="qcPay")
    public String  qcPay(Product product,ModelMap map) {
  logger.info("二维码支付");
  String message  =  aliPayService.aliPay(product);
  if(!Constants.FAIL.equals(message)){
   map.addAttribute("img", message);
  }else{

  }
  return "aliPay/qcpay";
    }

 @ApiOperation(value="app支付服务端")
 @PostMapping(value="appPay")
    public String  appPay(Product product,ModelMap map) {
  logger.info("app支付服务端");
  String orderString  =  aliPayService.appPay(product);
  map.addAttribute("orderString", orderString);
  return "aliPay/pay";
    }

相信整个项目对于想学习支付方面知识的小伙伴,肯定有所裨益,另外项目除了支付宝支付,还有其他微信支付,银联支付的相关内容,感兴趣的小伙伴可以一并学习。除了想学习的小伙伴,项目只要配置好相关参数,把接口类打个包,就可以最简单的直接使用,简单省事。心动不如行动,完整项目地址如下:

点击下方卡片,关注公众号“TJ君

回复“支付宝支付”,获取仓库地址

关注我,每天了解一个牛x、好用、有趣的东东

往期推荐

强力 Java 爬虫工具

30秒就能学会代码?什么东西这么厉害?

GitHub一个神奇的开源项目,汇聚天涯神贴讨论房价涨跌,买房之前的好帮手

一款GitHub开源加速神器,从此登录GitHub只剩一个快字~

用Spring Boot复刻一款天猫商城,你可以做到!


: . Video Mini Program Like ,轻点两下取消赞 Wow ,轻点两下取消在看

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存