本文将详细讲解什么是微信支付集成工具。文章内容质量很高,我就分享给大家作为参考。希望大家看完这篇文章后对相关知识有一定的了解。
微信支付集成工具
最近老板安排了一个新项目接入微信支付。看了之前的支付码(很多年前别人写的),不忍直视,就去找微信官方sdk。因此,官方sdk不是“面向对象”的。由于经常使用阿里巴巴云,他决定用阿里巴巴云sdk的API风格写一个。
并通知线上项目下单和付款结果通过测试,其他完成的界面简单测试一两次全部通过。其他未完成的接口将逐步完成github : https://github.com/BekeyChao/wxpay/tree/master.
在OSCHINA上混合,带一个代码云仓库: https://gitee.com/BekeyChao/wxpay.
快速开始
cdyourpath
gitclonegitAddress
cdwxpay
Mvninstall将源代码克隆到本地,通过mvn安装到本地,并将其引入pom文件。
属国
groupIdxyz.bekey/groupId
artifactIdwxpay/artifactId
版本/版本
目前/dependency的最新版本是0.0.5,jdk的最低要求是1.8。java8在代码中没有被广泛使用。如果您想要兼容,您只需要在统一的单一接口中修改本地日期时间类型。
00-1010微信支付工具都是通过实例化微信支付类来使用的,为了方便,建议在Spring中注册为单实例。
@配置
publicclassWechatPayConfig{
@Value('${mch_id} ')
privateStringmch _ id
@Value('${key} ')
privateStringkey
@Value('${cert_path} ')
privateStringcert _ path//微信证书路径。
@豆
public微信公众号({ 0
//wxConfig提供两种构造方式,默认签名类型为MD5,默认微信支付服务地址取自官方文档。
WxpayConfigwxConfig=new wxpayconfig(微信应用程序。Yepaofu _ Subscribe.getAppid()
,mch_id,密钥,cert _ path);
//无需设置即可忽略自定义。
wxconfig . setconnecttimeou(10000);
wxconfig . setsockettimeout(10000);
returnnew微信公众号(wxConfig);
}
}以统一订购界面为例,调用方法。
@服务
公共类
nbsp;PayService {
@Autowired
private WechatPay wechatPay;
// 统一下单接口
public void toPay() {
UnifiedOrderRequest request = new UnifiedOrderRequest();
request.setTotal_fee(100);
request.setSpbill_create_ip("10.10.10.10");
request.setOut_trade_no("test123");
request.setBody("测试订单");
request.setTrade_type(TradeType.MWEB);
request.setOpenid("openid");
request.setNotify_url("http://mycallbak.com");
// some else...
UnifiedOrderResponse response = wechatPay.getWechatPayResponse(request);
boolean success = response.isSuccess();
if (success) {
System.out.println(JSON.toJSONString(response));
} else {
System.out.println(response.getErr_code_des());
}
}
// 支付结果回调,请从response中获取xml字符串
public void handleCallback(String xml) {
try {
UnifiedOrderCallback callback = wechatPay.unifiedorderCallback(xml);
if (callback.isSuccess()) {
System.out.println(JSON.toJSONString(callback));
} else {
System.out.println(callback.getErr_code_des());
}
} catch (InvalidSignException e) {
// 处理签名异常
e.printStackTrace();
}
}
}
接口完成列表
已完成接口
-
统一下单接口 UnifiedOrderRequest
-
查询订单接口 OrderQueryRequest
-
申请退款接口(需要证书) RefundRequest
-
退款查询接口 RefundQueryRequest
-
支付结果通知 UnifiedOrderCallback
未完成接口
-
关闭订单
-
海关申报
-
下载对账单
-
下载资金账单
-
交易保障
-
拉取订单评价数据
-
退款结果通知(因为需要AES-256-ECB解密,jdk默认不支持,暂时不实现了)
代码风格
微信接口中会有大量的 javabean xml map 之间的转换,我处理的还是比较随意的,在xml -- javabean 之间主要通过fastjson进行转换,因为用起来比较顺手,所以也没在意效率的问题。 整体api风格设计借鉴 阿里云SDK 风格,xxxRequest 对应 xxxResponse,这种api设计很直观,而且通过一个api接口可以统一调用。 在参数校验层面,为了偷懒大量的校验与数据结构转换在Request中进行,所以Request类并不是简单类,在调试中可能会遇到点麻烦,见谅
关于微信支付集成工具是什么就分享到这里了,希望
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/37462.html