SpringBoot风格支付宝、微信支付开发包

SpringBoot风格支付宝、微信支付开发包

2022-09-02 0 566
资源编号 38019 最近更新 2022-09-02
¥ 0人民币 升级VIP
立即下载 注意事项
下载不了?请联系网站客服提交链接错误!
增值服务: 安装指导 环境配置 二次开发 模板修改 源码安装

本期推荐的是一个SpringBoot风格微信和支付宝支付开发包——Payment Spring Boot。

SpringBoot风格支付宝、微信支付开发包

大部分的 Java Web 项目都会使用 Spring,尤其是 Spring Boot。所以该项目作者选择了直接构建于Spring依赖之上的支付开发包。项目最开始实现微信支付的时候刚好是微信支付V3版本的 API公布了。相比较于 V2版本:

  • 遵循统一的 Restful 的设计风格
  •  使用 JSON 作为数据交互的格式,不再使用XML
  •  使用基于非对称密钥的 SHA256-RSA 的数字签名算法,不再使用 MD5 或 HMAC-SHA256
  •  不再要求 HTTPS 客户端证书
  •  使用 AES-256-GCM,对回调中的关键信息进行加密保护

这种开发体验要远远好于之前的 V2,因此选择了微信支付V3。

目前支持的渠道

  • 微信支付V3 全量支持,并支持多租户同时满足移动应用App、公众号、小程序等支付场景
  • 支付宝 集成SDK,做了简单适配

功能

  • 实现微信支付多商户
  • 集成支付宝SDK、快速接入Spring Boot
  • 实现微信支付V3 基础支付
  • 实现微信支付V3 合单支付
  • 实现微信支付V3 代金券
  • 实现微信支付V3 微信支付分
  • 实现微信支付V3 先享卡
  • 实现微信支付V3 商家券
  • 实现微信支付V3 批量转账到零钱

采用技术

只依赖了 Spring已有的东西,做到了低依赖。

  • Spring
  • Jackson
  • Ali-pay-sdk

核心API架构

SpringBoot风格支付宝、微信支付开发包

快速接入

1. Maven依赖

<dependency>
    <groupId>cn.felord</groupId>
    <artifactId>payment-spring-boot-starter</artifactId>
    <version>1.0.11.RELEASE</version>
</dependency>

2. Spring Boot 版本适配

需要自行克隆项目,修改根目录下的pom.xml以下配置项:

<properties>
        <!--  修改为你对应的Spring Boot版本号 -->
        <spring-boot.version>2.4.0</spring-boot.version>
    </properties>

3. 安装

以 Spring Boot Starter 的形式集成到项目中。从GitHub项目地址拉取 release 分支到本地后使用以下两种方式之一进行环境集成:

  • mvn install 安装到本地
  • mvn deploy 部署到Maven仓库

然后引用Maven坐标,请注意 ${
payment-spring-boot-starter.version} 要同你安装的一致。

<dependency>
            <groupId>cn.felord</groupId>
            <artifactId>payment-spring-boot-starter</artifactId>
            <version>${payment-spring-boot-starter.version}</version>
      </dependency>

4. 微信支付配置

在Spring Boot项目中的 application.yaml 中配置 wechat.pay.v3 相关参数。

wechat:
  pay:
    v3:
#    租户id  
     <tentantID>: 
#  应用appId  服务商模式下为服务商的appid 必填  
      app-id: xxxxxxxx
#  v2 api 密钥  1.0.5版本以后如果用到V2的接口时必填
      app-secret: xxxxxxxxxxx
#  api v3 密钥 必填
      app-v3-secret: xxxxxxxx
#  微信支付商户号 服务商模式下为服务商的mchid 必填
      mch-id: xxxxxxx
#  商户服务器域名 用于回调  需要放开回调接口的安全策略 必填
      domain: https://felord.cn
#  商户 api 证书路径 必填  填写classpath路径 位于 maven项目的resources文件下
      cert-path: apiclient_cert.p12

微信支付 tentantID 场景说明

当项目中需要同时支持微信App支付、微信公众号支付、微信小程序支付时,上述配置中的 app-id 可能为多个,因此我们需要进行路由标识以区分它们,所以这里需要你定义一个 tentanID 来进行标识。假如我们同时有App支付和微信小程序支付,我们应该这样配置:

wechat:
  pay:
    v3:
    # App租户租户标识为 mobile
     mobile:
      app-id: wx524534x423234
      app-secret: felord
      app-v3-secret: 0e5b123323h12234927e455703ec
      mch-id: 1603337223
      domain: https://felord.cn/mobile
      cert-path: mobile/apiclient_cert.p12
    # 微信小程序租户标识为 miniapp  
     miniapp:
      app-id: wx344123x3541223
      app-secret: felord
      app-v3-secret: 0e5b123323h12234927e455703ec
      mch-id: 1603337223
      domain: https://felord.cn/miniapp
      cert-path: miniapp/apiclient_cert.p12

注意:在一套系统中需要开发者保证 tentanID 唯一。

5. 启用配置

配置完毕后需要启用 @EnableMobilePay 注解来开启支付功能:

@EnableMobilePay
@Configuration
public class PayConfig {
}

6. 使用API

微信支付V3开放接口都是通过 WechatApiProvider 引入的,当启用配置步骤完成后会被初始化并注入了Spring IoC,可通过如下形式引入:

 @Autowired
    WechatApiProvider wechatApiProvider;

WechatApiProvider 需要开发者明确租户IDtenantID以初始化具体场景的Api。例如查询终端用户在租户 mobile 下的优惠券:

// 查询商户下的优惠quan
     @Test
     public void v3MchStocks() {
        // 配置文件中对应的tenantID:
        String tenantId =“mobile”;
        StocksQueryParams params = new StocksQueryParams();
        params.setOffset(0);
        params.setLimit(10);
        WechatResponseEntity<ObjectNode> objectNodeWechatResponseEntity = wechatApiProvider.favorApi(tenantId).queryStocksByMch(params);
        System.out.println("objectNodeWechatResponseEntity = " + objectNodeWechatResponseEntity);
     }

更多内容大家可自行前往阅读。

资源下载此资源为免费资源立即下载

申明:本文由第三方发布,内容仅代表作者观点,与本网站无关。对本文以及其中全部或者部分内容的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。本网发布或转载文章出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,也不代表本网对其真实性负责。

七爪网 免费源码 SpringBoot风格支付宝、微信支付开发包 https://www.7claw.com/38019.html

分享免费的开源源码

常见问题
  • 1、自动:拍下后,点击(下载)链接即可下载;2、手动:拍下后,联系卖家发放即可或者联系官方找开发者发货。
查看详情
  • 1、源码默认交易周期:手动发货商品为1-3天,并且用户付款金额将会进入平台担保直到交易完成或者3-7天即可发放,如遇纠纷无限期延长收款金额直至纠纷解决或者退款!;
查看详情
  • 1、七爪会对双方交易的过程及交易商品的快照进行永久存档,以确保交易的真实、有效、安全! 2、七爪无法对如“永久包更新”、“永久技术支持”等类似交易之后的商家承诺做担保,请买家自行鉴别; 3、在源码同时有网站演示与图片演示,且站演与图演不一致时,默认按图演作为纠纷评判依据(特别声明或有商定除外); 4、在没有”无任何正当退款依据”的前提下,商品写有”一旦售出,概不支持退款”等类似的声明,视为无效声明; 5、在未拍下前,双方在QQ上所商定的交易内容,亦可成为纠纷评判依据(商定与描述冲突时,商定为准); 6、因聊天记录可作为纠纷评判依据,故双方联系时,只与对方在七爪上所留的QQ、手机号沟通,以防对方不承认自我承诺。 7、虽然交易产生纠纷的几率很小,但一定要保留如聊天记录、手机短信等这样的重要信息,以防产生纠纷时便于七爪介入快速处理。
查看详情
  • 1、七爪作为第三方中介平台,依据交易合同(商品描述、交易前商定的内容)来保障交易的安全及买卖双方的权益; 2、非平台线上交易的项目,出现任何后果均与互站无关;无论卖家以何理由要求线下交易的,请联系管理举报。
查看详情

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务