龙空技术网

微信支付的 SDK wePay-felord

懂点代码的程序员 549

前言:

如今姐妹们对“微信支付接口java”都比较关注,朋友们都需要学习一些“微信支付接口java”的相关文章。那么小编在网摘上收集了一些对于“微信支付接口java””的相关内容,希望看官们能喜欢,看官们快快来了解一下吧!

WePay-支付接口JAVA封装

目标

不需要过分关注支付本身的支付逻辑 只关注支付过程中具体业务的实现

微信支付UML

maven坐标

<dependency> <groupId>cn.felord</groupId> <artifactId>wePay</artifactId> <version>1.0.4</version></dependency>
实现相关接口实现 PreBusinessService 接口,用于处理调用统一支付后的具体业务,参数为调用统一支付后的的具体支付要求的参数返回 类型为 Map<String,Object> 其中支付类的方法中 key为 "params_key" 的值为统一下单的参数(统一支付的Params 实体) ,直接实现方法 参数通过代理类自动注入,通过该实体进行具体业务的处理。 不处理传值 null即可。实现 PostBusiness 接口 的两个方法,用于处理成功和失败的业务。参数为微信回调返回的数据,直接实现方法 参数通过代理类自动注入, 不处理传值 null即可使用扫码支付模式一 必须实现 NativeBusiness 接口, 参数为 微信文档中的 product_id。支付金额 totalFee(微信文档为 total_fee) 需要先转换为分为单位再注入参数调用代理支付代理 ProxyPayHandler支付代理目标对象 WeChatPayClient 回调代理 ProxyPayCallback 回调代理目标对象 WeChatPayCallback不能用代理目标对象直接发起支付,同样不能用回调对象发起回调。

配置文件

1.增加一个名称为【weChatConfig.properties】的配置, 如下demo:

appId mchId secretKey notifyUrl signType certPath 根据下面demo的说明结合自己的业务场景配置 必配参数

# 此处为腾讯文档的demo值,开发者可以用来验证自己的结果,下面是加密后的# 应用ID 必填 原文: wxd930ea5d5a258f4fappId=5776447082E55FA6187DCB3D5734BF12B45B8E68EB15425F6C61B18F4BCB1F47# 商户号 必填 原文: 10000100mchId=A9CE8E05596B167F8200C2BBB27B76C1# 密钥 用来生成sign签名 验证签名等 必填 原文:192006250b4c09247ec02edce69f6a2dsecretKey=6A32A851BEABD5C323C7D560D7058C6113F53A2CCCD91C95F6E22DDE379DDA4E9DBD56D8DEB0039700FB03B715290EC9# 默认的完整的支付回调通知地址 如果有多个回调地址 继承Configuration 并加注解 @ConfigProperties 里面配置新的配置文件名称 以及回调地址notifyUrl= # 签名加密类型 选填 反正目前我只实现了MD5 腾讯 支持 MD5 HMAC-SHA256 两种signType=MD5# 开发模式 为true 生产模式不配置devMode=true# 证书绝对路径 D:/apiclient_cert.p12 退款使用certPath= 加密后的密文

2.关于加密 自定义加密 需要实现 org.wepay.common.pay.Decryptable 接口。 不加密 传 null测试用实例化基础配置:PayConfig weChatPayConfig = WeChatPayConfig.initBaseConfig(null),实现自定义加密的 null改为自己的实现即可。

wepay-spring-boot-starter

wePay的springboot版本

简单使用方法

-配置文件 yml 看不懂的参数都是加密的 自行实现解密接口 cn.felord.wepay.common.pay.Decryptable 并完整类路径 值 配置到decryptableClassName 不使用加密 不配置此项参数

自行编写请求工具类 通过此进行支付相关操作

-后续回调等用法参考 wePay项目

wiki

具体使用方法参看腾讯文档和 wiki: 配置方法 在application.properties 或者yml 文件中 所有的 wePay开头的参数即为配置参数 注意参考wePay项目中的加密和非加密的方案配置 有问题请 issue

wepay-spring-boot-starter maven坐标

		<dependency>			<groupId>cn.felord.wepay.spring.boot</groupId>			<artifactId>wepay-spring-boot-starter</artifactId>			<version>1.0.2</version>		</dependency>

wePay maven坐标

 <dependency> <groupId>cn.felord</groupId> <artifactId>wePay</artifactId> <version>1.0.4</version> </dependency>

标签: #微信支付接口java