若依分离版整合IJpay实现第三方支付-(微信支付篇_v2)
若依分离版整合IJpay实现第三方支付-(微信支付篇_v2)
IJpay官网
https://javen205.gitee.io/ijpay/
简介
本文中暂时不对与支付流程做具体详细讲解,具体流程麻烦去看官方文档,看不懂就百度,想想办法…这是老版本, 新版本可能会有变动,需要自行校对官网文档和代码
首先添加依赖
-
ruoyipom.xml父级添加依赖因为使用了
再ruoyi的parent项目中的pom.xml文件中添加依赖dependencyManagement使用简介 Maven中的dependencyManagement元素提供了一种管理依赖版本号的方式。在dependencyManagement元素中声明所依赖的jar包的版本号等信息,那么所有子项目再次引入此依赖jar包时则无需显式的列出版本号。Maven会沿着父子层级向上寻找拥有dependencyManagement 元素的项目,然后使用它指定的版本号。
<dependency> <groupId>com.github.javen205</groupId> <artifactId>IJPay-WxPay</artifactId> <!-- 如果这里添加了版本统一管理请酌情处理为 ${ijapy.version} --> <version>2.7.4</version> </dependency>
-
接下来在相应的支付模块的pom.xml中添加依赖,这里暂时直接使用admin的moudel做讲解,具体需求和项目结构酌情处理
<dependency> <groupId>com.github.javen205</groupId> <artifactId>IJPay-WxPay</artifactId> </dependency>
接下来导入对应代码
具体位置我就不做表述了只需要注意下方代码的package位置就可以大致确定防止位置(!!!注意前言,根据具体需求决定位置这里只是用admin模块做演示)
接下来每个文件名我都使用了三级标签,可以方便根据目录查询
添加WxPayController
这里的代码跟官方给的Demo有些许的不同因为我们这里使用的工具类集成了hutool的依赖所以原本代码的一些 // 原本代码中引入的类是这个 import com.jfinal.kit.StrKit; // 但是下方使用的是hutool import cn.hutool.core.util.StrUtil; //所以下方所有的StrKit都变成了StrUtil
这里的上方代码中有很多个支付方式, 根据具体需要的支付进行选择性添加接口, 这里仅仅是全部展示出来了…建议不要太多冗余接口 如果需要多种支付同时走一个接口的情况(PS这里不建议但是会遇见这种不可避免的问题就是模块没有分清的情况下)
添加AbstractWxPayApiController
添加WxPayBean
在resources中添加production文件夹中添加文件名为wxpay.properties下方是内容
下方的代码块内容仅仅对于WxPayController的下面的方法, 如果不需要下面方法的的方式支付则不需要添加下方代码,当然记得把对应WxPayController中代码删除
package com.ijpay.demo.entity; import com.alibaba.fastjson.JSON; /** * @author Javen */ public class H5SceneInfo { private H5 h5_info; public H5 getH5Info() { return h5_info; } public void setH5Info(H5 h5_info) { this.h5_info = h5_info; } @Override public String toString() { return JSON.toJSONString(this); } public static class H5 { private String type; private String app_name; private String bundle_id; private String package_name; private String wap_url; private String wap_name; public String getType() { return type; } public void setType(String type) { this.type = type; } public String getApp_name() { return app_name; } public void setApp_name(String app_name) { this.app_name = app_name; } public String getBundle_id() { return bundle_id; } public void setBundle_id(String bundle_id) { this.bundle_id = bundle_id; } public String getPackage_name() { return package_name; } public void setPackage_name(String package_name) { this.package_name = package_name; } public String getWap_url() { return wap_url; } public void setWap_url(String wap_url) { this.wap_url = wap_url; } public String getWap_name() { return wap_name; } public void setWap_name(String wap_name) { this.wap_name = wap_name; } } }