基于weixin-java-tools集成微信小程序支付功能
目前,公司正在把业务从公众号向小程序迁移,本人负责订单功能的开发,现在把微信小程序接入微信支付这块的知识分享给大家,可能有部分人对微信支付不太了解,可以参考下面的微信支付流程图。
微信支付流程图
我是用weixin-java-tools这个开源框架做的,目前这个开源社区还很活跃,有兴趣的朋友可以研究一下。weixin-java-tools微信支付功能集成如下:
- 登录小程序平台设置常用的配置,request合法域名,uploadFile合法域名,downloadFile合法域名。
2.小程序开通微信支付功能,微信支付用到微信支付商户号,支付证书。
3.引入maven坐标
<dependency><groupId>com.github.binarywang</groupId><artifactId>weixin-java-pay</artifactId><version>3.2.0</version> </dependency>
4.调用微信统一下单接口,我这里贴出关键代码。
@RequestMapping(value="/unifiedOrder/{appId}") public JSONObject unifiedOrder (@RequestBody JSONObject inData,@PathVariable String appId){String openId = inData.getString("openId");//微信用户openIdString tradeNo = inData.getString("tradeNo");//订单编号Integer totalFee = inData.getInteger("orderPrice");//商品价格,单位为分String body = inData.getString("body"); //商品名称String ip = inData.getString("ip");//客户端ip String notifyUrl = environment.getProperty("spring."+appId+".notifyUrl");//微信回调业务接口地址WxPayUnifiedOrderRequest prepayInfo = new WxPayUnifiedOrderRequest();long now = System.currentTimeMillis();String nowStr = String.valueOf(now);int length = nowStr.length();String current = nowStr.substring(length-5,length);prepayInfo.setOpenid(openId);prepayInfo.setTradeType("JSAPI");prepayInfo.setTotalFee(totalFee);prepayInfo.setBody(body);prepayInfo.setSpbillCreateIp(ip);prepayInfo.setOutTradeNo(tradeNo+"|"+current);prepayInfo.setNotifyUrl(notifyUrl);JSONObject jsObj = new JSONObject();try {final WxPayService payService = WeixinServiceFactory.getWxPayService(appId,environment);Object payInfo = payService.createOrder(prepayInfo);jsObj.put("code", ResponseCodeEnum.RESPONSE_CODE_SUCCESS.getCode());jsObj.put("message",ResponseCodeEnum.RESPONSE_CODE_SUCCESS.getMessage());jsObj.put("data", payInfo);} catch (WxPayException e) {logger.error("创建订单支付信息,出现异常",e);jsObj.put("code", ResponseCodeEnum.RESPONSE_CODE_INTERNAL_ERROR.getCode());jsObj.put("message",ResponseCodeEnum.RESPONSE_CODE_INTERNAL_ERROR.getMessage());}return jsObj
接口返回数据格式如下:
{"code": 200,"data": {"appId": "12123123123123",//微信小程序appid"timeStamp": "1559713220",//当前时间戳"nonceStr": "1559713220240",//随机字符串"packageValue": "prepay_id=wx01231231231231230",//prepay_id为预支付交易会话标识"signType": "MD5",//支付签名方式"paySign": "213213123123"//支付签名},"message": "SUCCESS" }
4.小程序页面发起微信支付请求,参数为第三步返回的参数
wx.requestPayment({"appId": 'wx00000000000000',//小程序appId"timeStamp": "",//当前时间戳 "nonceStr": "",//随机字符串"package": "",//预支付交易会话标识 取接口返回端的packageValue字段"signType": "","paySign":"",//小程序微信支付成功的回调通知 'success': function (res) {},//小程序支付失败的回调通知 'fail': function (res) {} }) }
5.微信支付平台异步回调业务接口,修改订单支付状态
基于weixin-java-tools集成微信小程序支付功能相关推荐
- 基于springboot微信小程序支付功能实现
基于springboot微信小程序支付功能实现 简单的封装微信小程序支付功能,支付工具类所依赖的fastjson.lombok.wagegger, 1.添加maven依赖: 版本号可根据自己项目的实际 ...
- 微信小程序支付功能用服务器吗,微信小程序 支付功能 服务器端(TP5.1)实现...
首先下载微信支付SDK ,将整个目录的文件放在 /application/extend/WxPay 目录下 在使用SDK之前我们需要对 WxPay.Config.php 进行配置 namespace ...
- SpringBoot对接微信小程序支付功能开发(一,下单功能)
1,接入前准备: 接入模式选择直连模式: 申请小程序,得到APPID,并开通微信支付: 申请微信商户号,得到mchid,并绑定APPID: 配置商户API key,下载并配置商户证书,根据微信官方文档 ...
- 微信小程序php后台支付,微信小程序 支付功能实现PHP实例详解
微信小程序 支付功能实现PHP实例详解 前端代码: wx.request({ url: 'https://www.yourhost.com/weixin/WeiActivity/payJoinfee' ...
- python个人微信支付接口_Python实现微信小程序支付功能
正文 由于最近自己在做小程序的支付,就在这里简单介绍一下讲一下用python做小程序支付这个流程.当然在进行开发之前还是建议读一下具体的流程,清楚支付的过程. 1.支付交互流程 2.获取openid( ...
- python微信小程序抢购_Python实现微信小程序支付功能!Python确实强的一批!
正文 由于最近自己在做小程序的支付,就在这里简单介绍一下讲一下用python做小程序支付这个流程.当然在进行开发之前还是建议读一下具体的流程,清楚支付的过程. 1.支付交互流程 2.获取openid( ...
- 十 Node.js实现微信小程序支付功能
十 Node.js实现微信小程序支付功能 一 开发前提 二 支付流程介绍 三 上代码 1.小程序端发起后台请求,完成统一下单 1.1 小程序端发起后台请求 1.2 Node.js后台接收请求,完成统一 ...
- 微信小程序支付功能实现全过程简析
今天小编带大家来分析一下微信小程序支付功能的实现全过程. 先附一张小程序支付时序图: 整体流程: 在所以操作之前,我们得先有微信开发者账号,还得有自己的商户号和商品密匙. 微信端请求下单之后,会调用w ...
- html微信支付功能代码,微信小程序 支付功能(前端)的实现
微信小程序 支付功能(前端)的实现 var app = getApp(); Page({ data: {},onLoad: function (options) { // 页面初始化 options为 ...
最新文章
- tomcat的jdbc连接池PoolExhaustedException
- MyBatis源码-解读Executor的三个实现类之SimpleExecutor(简单执行器)
- 51CTO专访清无:Nginx_lua的应用及性能对比
- word-vba-microsoft(中英文)
- 新建网站了!Github标星过万的吴恩达机器学习、深度学习课程笔记,《统计学习方法》代码实现,可以在线阅读了!...
- UI布局引擎Layout 之 QGraphicsLinearLayout
- windows下设置PHP环境变量
- 阿里,百度,腾讯等一线互联网公司中,Java开发的招聘标准
- 我的工程师进阶之路 - 2022更新
- vue网页打印后事件失效
- python像数常用函数_引用 象数疗法原理
- iOS基础-高级进阶面试题
- S7-1200添加CALCULATE 指令
- HBase2.x_base
- 人工智能入门相关书籍
- linux shell 操作二进制文件(xxd、dd)
- DoTween的使用与详解
- vite hmr热更新
- 计算复杂性读书笔记(一): 判定问题,P,NP
- linux操作命令comm,一天一个shell命令 文本操作系列-comm命令用法