目前,公司正在把业务从公众号向小程序迁移,本人负责订单功能的开发,现在把微信小程序接入微信支付这块的知识分享给大家,可能有部分人对微信支付不太了解,可以参考下面的微信支付流程图。

微信支付流程图

我是用weixin-java-tools这个开源框架做的,目前这个开源社区还很活跃,有兴趣的朋友可以研究一下。weixin-java-tools微信支付功能集成如下:

  1. 登录小程序平台设置常用的配置,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集成微信小程序支付功能相关推荐

  1. 基于springboot微信小程序支付功能实现

    基于springboot微信小程序支付功能实现 简单的封装微信小程序支付功能,支付工具类所依赖的fastjson.lombok.wagegger, 1.添加maven依赖: 版本号可根据自己项目的实际 ...

  2. 微信小程序支付功能用服务器吗,微信小程序 支付功能 服务器端(TP5.1)实现...

    首先下载微信支付SDK ,将整个目录的文件放在 /application/extend/WxPay 目录下 在使用SDK之前我们需要对 WxPay.Config.php 进行配置 namespace ...

  3. SpringBoot对接微信小程序支付功能开发(一,下单功能)

    1,接入前准备: 接入模式选择直连模式: 申请小程序,得到APPID,并开通微信支付: 申请微信商户号,得到mchid,并绑定APPID: 配置商户API key,下载并配置商户证书,根据微信官方文档 ...

  4. 微信小程序php后台支付,微信小程序 支付功能实现PHP实例详解

    微信小程序 支付功能实现PHP实例详解 前端代码: wx.request({ url: 'https://www.yourhost.com/weixin/WeiActivity/payJoinfee' ...

  5. python个人微信支付接口_Python实现微信小程序支付功能

    正文 由于最近自己在做小程序的支付,就在这里简单介绍一下讲一下用python做小程序支付这个流程.当然在进行开发之前还是建议读一下具体的流程,清楚支付的过程. 1.支付交互流程 2.获取openid( ...

  6. python微信小程序抢购_Python实现微信小程序支付功能!Python确实强的一批!

    正文 由于最近自己在做小程序的支付,就在这里简单介绍一下讲一下用python做小程序支付这个流程.当然在进行开发之前还是建议读一下具体的流程,清楚支付的过程. 1.支付交互流程 2.获取openid( ...

  7. 十 Node.js实现微信小程序支付功能

    十 Node.js实现微信小程序支付功能 一 开发前提 二 支付流程介绍 三 上代码 1.小程序端发起后台请求,完成统一下单 1.1 小程序端发起后台请求 1.2 Node.js后台接收请求,完成统一 ...

  8. 微信小程序支付功能实现全过程简析

    今天小编带大家来分析一下微信小程序支付功能的实现全过程. 先附一张小程序支付时序图: 整体流程: 在所以操作之前,我们得先有微信开发者账号,还得有自己的商户号和商品密匙. 微信端请求下单之后,会调用w ...

  9. html微信支付功能代码,微信小程序 支付功能(前端)的实现

    微信小程序 支付功能(前端)的实现 var app = getApp(); Page({ data: {},onLoad: function (options) { // 页面初始化 options为 ...

最新文章

  1. tomcat的jdbc连接池PoolExhaustedException
  2. MyBatis源码-解读Executor的三个实现类之SimpleExecutor(简单执行器)
  3. 51CTO专访清无:Nginx_lua的应用及性能对比
  4. word-vba-microsoft(中英文)
  5. 新建网站了!Github标星过万的吴恩达机器学习、深度学习课程笔记,《统计学习方法》代码实现,可以在线阅读了!...
  6. UI布局引擎Layout 之 QGraphicsLinearLayout
  7. windows下设置PHP环境变量
  8. 阿里,百度,腾讯等一线互联网公司中,Java开发的招聘标准
  9. 我的工程师进阶之路 - 2022更新
  10. vue网页打印后事件失效
  11. python像数常用函数_引用 象数疗法原理
  12. iOS基础-高级进阶面试题
  13. S7-1200添加CALCULATE 指令
  14. HBase2.x_base
  15. 人工智能入门相关书籍
  16. linux shell 操作二进制文件(xxd、dd)
  17. DoTween的使用与详解
  18. vite hmr热更新
  19. 计算复杂性读书笔记(一): 判定问题,P,NP
  20. linux操作命令comm,一天一个shell命令 文本操作系列-comm命令用法

热门文章

  1. react-next 引入阿里云iconfont 图标(适用所有)
  2. 机器学习-情感分析小案例
  3. go调用python
  4. JavaScript 当前时间显示(js)
  5. Python3+Flickrapi爬取图片
  6. 测试基础-2-接口测试之SoapUI
  7. 弘辽科技:裁员、大降价,行业第一卖家“自救”
  8. 利用TabNet进行股票长线预测
  9. Visio调整背景大小
  10. 智慧高速再“提速”,数字化+智能化成建设焦点