资讯专栏INFORMATION COLUMN

微信支付SDK-两行代码解决支付

2501207950 / 3334人阅读

摘要:背景让使用微信支付的朋友最快速度接入微信支付核心两行代码解决微信支付提供的各种服务开箱即用可扩展性超强只需根据服务的上下行协议定义协议类后放入工厂即可获取调用结果架构图项目源代码源码地址目前支持的服务及调用示例所有服务在单元测试类中均已测试

背景

让使用微信支付的朋友最快速度接入微信支付.

核心

两行代码解决微信支付提供的各种服务, 开箱即用, 可扩展性超强(只需根据服务的上下行协议定义协议类后, 放入工厂即可获取调用结果).

架构图

项目源代码

源码地址 http://wocoding.com/item.htm?hashId=wZlZgM81

目前支持的服务及调用示例

所有服务在单元测试类(WXPayClientTest.java)中均已测试通过, 下行参数response.isSuccess == true表示服务调用成功.

扫码支付

文档详见: https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=9_1

String nonceStr = SDKUtils.genRandomStringByLength(32);
UnifiedOrderRequest request = new UnifiedOrderRequest("wuspace-899",SDKUtils.genOutTradeNo(),1, "192.168.1.1", asyncNotifyUrl, "NATIVE", nonceStr);
UnifiedOrderResponse response = wxPayClient.execute(request);
Assert.assertNotNull(response);
LOG.info(JSON.toJSONString(response));
公众号支付

文档详见: https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=9_1

String nonceStr = SDKUtils.genRandomStringByLength(32);
UnifiedOrderRequest request = new UnifiedOrderRequest("wuspace-899",SDKUtils.genOutTradeNo(),
                1, "192.168.1.1", asyncNotifyUrl, "JSAPI", nonceStr);
request.setOpenId("oKVmeuHht8J0Ni58CSNe474AHA3E");
UnifiedOrderResponse response = wxPayClient.execute(request);
Assert.assertNotNull(response);
LOG.info(JSON.toJSONString(response));
APP支付

文档详见: https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=9_1

String nonceStr = SDKUtils.genRandomStringByLength(32);
UnifiedOrderRequest request = new UnifiedOrderRequest("wuspace-899",SDKUtils.genOutTradeNo(),
                1, "192.168.1.1", asyncNotifyUrl, "APP", nonceStr);
UnifiedOrderResponse response = wxPayClient.execute(request);
Assert.assertNotNull(response);
LOG.info(JSON.toJSONString(response));
商家支付

文档详见: https://pay.weixin.qq.com/wiki/doc/api/tools/mch_pay.php?chapter=14_2

String nonceStr = SDKUtils.genRandomStringByLength(32);
String customerOpenId = "oKVmeuHht8J0Ni58CSNe474AHA3E";
MchPayRequest mchPayRequest = new MchPayRequest(SDKUtils.genOutTradeNo(),
                customerOpenId, "NO_CHECK", 100, "xxxx年xx月结算", "192.168.1.1", nonceStr);
MchPayResponse response = wxPayVIPClient.execute(mchPayRequest);
Assert.assertNotNull(response);
LOG.info(JSON.toJSONString(response));
退款

文档详见: https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=9_4&index=6

String nonceStr = SDKUtils.genRandomStringByLength(32);
RefundRequest request = new RefundRequest("T15121416014891124211768",
                SDKUtils.genOutRefundNo(), 1, 1, "112102020", nonceStr);
RefundResponse response = wxPayVIPClient.execute(request);
Assert.assertNotNull(response);
LOG.info(JSON.toJSONString(response));
支付异步通知解析

文档详见: https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=9_7

String notifyTxt = "
" +
                "  
" +
                "  
" +
                "  
" +
                "  
" +
                "  
" +
                "  
" +
                "  
" +
                "  
" +
                "  
" +
                "  
" +
                "  
" +
                "  
" +
                "  
" +
                "  
" +
                "  1
" +
                "  
" +
                "  
" +
                "";
PayNotifyResponse response = wxPayClient.parseNotify(notifyTxt, PayNotifyResponse.class);
Assert.assertNotNull(response);
LOG.info(JSON.toJSONString(response));
刷卡支付

文档详见: https://pay.weixin.qq.com/wiki/doc/api/micropay.php?chapter=9_10&index=1

目前公司未使用, 待续......

扩展

该SDK设计了一个服务工厂, 该工厂中包含HTTP执行器/返回数据解析方式(json/xml)/入参数据格式(json/xml)构造等, 开发人员需要增加服务仅需要根据服务协议文档编写上下行协议, 并在协议中指明API接口和返回数据类型, 再将上行协议放入工厂中执行即可; 可参考已完成的服务协议进行扩展编写.

本系列文章

微信支付SDK-两行代码解决支付

微信服务号SDK-两行代码解决API调用

支付宝支付SDK-两行代码解决支付

平安银行银企直连SDK-两行代码解决API调用

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/65862.html

相关文章

  • 深究WeixinJSBridge未定义之因

    摘要:未使用微信如果网页中未使用微信用户在微信中打开网站可能会触发这个错误,目前看来只有忽略。关于微信支付方法监听事件之后再进行下一步操作方法直接使用文档中的支付代码,不要使用公众号支付文档里面的代码。 Fundebug并没有使用微信JS-SDK,然而却收到了WeixinJSBridge is not defined的报错: showImg(https://segmentfault.com...

    gself 评论0 收藏0
  • 微信公众号支付开发全过程(java版)

    摘要:一微信官方文档微信支付开发流程公众号支付首先我们到微信支付的官方文档的开发步骤部分查看一下需要的设置。配置微信公众账号支付配置支付类所有方法都在这个类里发起支付微信公众账号支付订单异步回调这就是这个所说的行代码解决微信支付。 文章有不当之处,欢迎指正,如果喜欢微信阅读,你也可以关注我的微信公众号:好好学java,获取优质学习资源。 一、微信官方文档微信支付开发流程(公众号支付) 首先我...

    Shimmer 评论0 收藏0
  • 不用申请服务号就可以开发微信支付/支付宝/QQ钱包支付!附:直接可用的代码+demo

    摘要:我们知道,开发微信支付需要申请服务号并且需要一系列的资料才可以开通。怪麻烦的,现在我们可以用第三方开放的免签约微信支付接口,支付宝接口和钱包接口,实现实时到帐的微信支付开发。 我们知道,开发微信支付需要申请服务号并且需要一系列的资料才可以开通。怪麻烦的,现在我们可以用第三方开放的免签约微信支付接口,支付宝接口和QQ钱包接口,实现实时到帐的微信支付开发。 我们只需要在第三方的微信支付免签...

    Zhuxy 评论0 收藏0
  • 不用申请服务号就可以开发微信支付/支付宝/QQ钱包支付!附:直接可用的代码+demo

    摘要:我们知道,开发微信支付需要申请服务号并且需要一系列的资料才可以开通。怪麻烦的,现在我们可以用第三方开放的免签约微信支付接口,支付宝接口和钱包接口,实现实时到帐的微信支付开发。 我们知道,开发微信支付需要申请服务号并且需要一系列的资料才可以开通。怪麻烦的,现在我们可以用第三方开放的免签约微信支付接口,支付宝接口和QQ钱包接口,实现实时到帐的微信支付开发。 我们只需要在第三方的微信支付免签...

    luffyZh 评论0 收藏0

发表评论

0条评论

2501207950

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<