官方SDK为3.0.9版本同样也是基于maven构建,只不过没有上传到maven的公共仓库,那么我们就可以自己动手打成jar包从而导入本地maven项目。
1、下载官方sdk项目
官方 https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=11_1
- 修改配置文件WXPayConfig的抽象属性。原版的缺省(default)抽象属性只能在同一个package下可见,在不同package下面缺省属性是没有访问权限的,跨包必须改成公共public属性才可以。
-
public abstract class WXPayConfig { /** * 获取 App ID * * @return App ID */ public abstract String getAppID(); /** * 获取 Mch ID * * @return Mch ID */ public abstract String getMchID(); /** * 获取 API 密钥 * * @return API密钥 */ public abstract String getKey(); /** * 获取商户证书内容 * * @return 商户证书内容 */ public abstract InputStream getCertStream(); /** * HTTP(S) 连接超时时间,单位毫秒 * * @return */ public int getHttpConnectTimeoutMs() { return 6*1000; } /** * HTTP(S) 读数据超时时间,单位毫秒 * * @return */ public int getHttpReadTimeoutMs() { return 8*1000; } /** * 获取WXPayDomain, 用于多域名容灾自动切换 * @return */ public abstract IWXPayDomain getWXPayDomain(); /** * 是否自动上报。 * 若要关闭自动上报,子类中实现该函数返回 false 即可。 * * @return */ public boolean shouldAutoReport() { return true; } /** * 进行健康上报的线程的数量 * * @return */ public int getReportWorkerNum() { return 6; } /** * 健康上报缓存消息的最大数量。会有线程去独立上报 * 粗略计算:加入一条消息200B,10000消息占用空间 2000 KB,约为2MB,可以接受 * * @return */ public int getReportQueueMaxSize() { return 10000; } /** * 批量上报,一次最多上报多个数据 * * @return */ public int getReportBatchSize() { return 10; } }
- 进行 mav install ,在target 目录下找到wxpay-sdk-**.jar
- 安装本地jar包到本地仓库需要如下命令(注意不要换行):
mvn install:install-file -Dfile=D:\wxpay-sdk-3.0.9.jar -DgroupId=com.github.wxpay -DartifactId=wxpay-sdk -Dversion=3.0.9 -Dpackaging=jar
5.maven的pom.xml引入wxpay-sdk依赖
<dependency>
<groupId>com.github.wxpay</groupId>
<artifactId>wxpay-sdk</artifactId>
<version>3.0.9</version>
</dependency>