微信商户申请开通:https://pay.weixin.qq.com/service_provider/index.shtml
注意:开通公众账号之后,然后根据流程开通相对应的商户平台

开发文档之场景介绍文档:https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=6_1

开发文档之模式1的流程图:https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=6_4

开发文档之模式2的流程图:https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=6_5
开发之前所需要的参数:
1、APP ID ,应用ID(在公众平台--基本配置模块中)
2、APP Sercret ,应用秘钥(在公众平台--基本配置模块中)
3、API Key,API的秘钥(在商户平台--API安全中设置)
4、mchID , 商户号(在公众平台---微信支付---商户信息)
5、order_api , 统一下单API的接口

6、notify_url    交易成功回调的接口的URL

开发模式1的配置:

模式1开发流程:
1、生成二维码(https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=6_4),给买家扫码
2、回调到上图设置的回调的URL当中,得到必要的参数,调用统一下单API,生成参数,提交到微信接口,并把这些参数保存到数据库(最重要的是 商户订单号,此订单号再微信支付成功异步回调中,会返回这个订单号,也就是说,订单号是此条数据的唯一标识)
3、步骤2中统一下单会返回一个 code_url(二维码连接),生成二维码,给买家扫码
4、买家打开微信扫码,支付完成。
5、微信进入回调的url (该回调的URL在下单的API的参数中)
6、在回调的接口中获取微信传过来的参数。根据商户订单号--修改数据库的数据。 推送到APP成功的状态
模式2开发流程:
1、调用统一下单API,生成参数,提交到微信接口,并把这些参数保存到数据库(最重要的是 商户订单号,此订单号再微信支付成功异步回调中,会返回这个订单号,也就是说,订单号是此条数据的唯一标识)
2、步骤2中统一下单会返回一个 code_url(二维码连接),生成二维码,给买家扫码
3、买家打开微信扫码,支付完成。
4、微信进入回调的url (该回调的URL在下单的API的参数中)
5、在回调的接口中获取微信传过来的参数。根据商户订单号--修改数据库的数据。 推送到APP成功的状态

结论:模式1与模式2相比,模式1更为繁琐和复杂,市场上用的基本都是模式2
模式2的代码:
1、组成下单API的数据,发送给微信,获取返回值
    //微信扫码模式2public void wxPayModel2() {String body = "测试商户的名称";int money = 100;//交易金额,以分为单位100=1元。String productId= WeiXinUtil.getTimeStamp();//获取商品订单号String outTradeNo=WeiXinUtil.getOrderNo();//获取该笔交易的订单号String ip=WeiXinUtil.getIp();//获取发起请求的IP,我这里就直接获取了本机的IP了,实际开发需要获取实际的请求IPScanPayReqData data  = new ScanPayReqData(body,money,productId,outTradeNo,ip);//组成要发送给微信的数据为一个实体类String reuslt= HttpUtil.sendPost(Configure.orderApi,data);//将组装好的数据发送到微信,并获取微信的返回值//接下来的操作就是解析result。 将xml格式的result解析成json或者实体类。然后将数据保存到数据库...一下步骤省略...在改xml中有一个参数code_url,这个就是二维码的链接,//将该二维码的链接生成图形二维码,给用户扫码。会进入到Configure.notifyUrl的回调接口当中。现在假设回调的为下面的方法notifyUrl();}
接下来的操作就是解析result。 将xml格式的result解析成json或者实体类。然后将数据保存到数据库...一下步骤省略...在改xml中有一个参数code_url,这个就是二维码的链接,
将该二维码的链接生成图形二维码,给用户扫码。会进入到Configure.notifyUrl的回调接口当中。现在假设回调的为下面的方法notifyUrl();
2、notifyUrl()方法中需要操作的动作----注意:只有在微信支付成功,微信才会回调该方法
     参考:https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=9_2
    //微信支付成功之后的回调,注意,只有在成功支付,微信才会进入回调,注意public void notiyUrl(HttpServletRequest req,HttpServletResponse response){ServletInputStream input =  req.getInputStream();//这里得到输入流,这就是微信在回调该接口的时候,会把参数传到这里,下一步就是将流解析成xml。然后再将xml解析成我们需要的格式//得到数据之后,通过outTradeNo来修改wxPayModel2()中已经插入数据库中的数据//然后发送推送给APP。说交易成功。}

github下载地址:https://github.com/townkoim/WXPay
说明:改代码仅供参考,不能运行。代码在 WXPay / app / src / main / java / com / example / lb / weixin / pay / wxpay /目录下

微信支付之-扫码支付-模式2(模式1)相关推荐

  1. 微信PC端扫码支付 java 模式二的扫码支付

    前言 这次分享的是java对接微信的支付接口,实现电脑端扫码支付后,跳转支付成功页面的例子.之所以分享是微信的Api太坑了.留下的文档也少,对接过程中容易出现各种各样的问题,在实现这扫码支付功能的时候 ...

  2. 微信支付之扫码支付与小程序支付

    微信支付之扫码支付与小程序支付 前言:最近的需求中,频繁出现微信支付功能的开发,于是研读了微信官方开发文档以及相关代码做了以下总结,并记录在此,以备不时之需.如有不足之处,欢迎批评指正. 微信官方开发 ...

  3. 第三篇、记录微信统一支付、扫码支付开发

    项目中使用了微信的统一支付以及扫码支付,记录下学习记录 目录 项目中使用了微信的统一支付以及扫码支付,记录下学习记录 1.配置wechat4j.properties 文件 2.编写支付工具类 3.统一 ...

  4. VB.net开发微信、支付宝扫码支付源码

    扫码消费机介绍:https://item.taobao.com/item.htm?spm=a1z10.1-c.w4004-21914722028.2.2b826baawDkx32&id=170 ...

  5. VFP开发微信、支付宝扫码支付

    &&扫码消费机介绍:https://item.taobao.com/item.htm?spm=a1z10.1-c.w4004-21914722028.4.2b826baa9cTxs0& ...

  6. php接入微信支付,扫码支付和H5支付(非微信浏览器),基于thinkPHP框架 WeChatDeveloper支付类包 踩坑指南

    此文章入选<PHP领域内容榜>第4名 文章介绍 本文主要介绍通过thinkPHP5和第三方支付类包(WeChatDeveloper)实现快速接入微信扫码支付和微信H5手机网站支付(非微信浏 ...

  7. html+css+js实现微信和支付宝扫码支付前端

    本章教程,主要利用html+css+js技术实现微信和支付宝扫码支付前端页面. 目录 一.效果图预览 (1)支付宝扫码支付 (2)微信扫码支付 二.项目部分源码文件 (1)目录结构 (2)alipay ...

  8. Java PC端微信、支付宝扫码支付(二)

    Java PC端微信.支付宝扫码支付(二) 前几天写了微信支付,附上链接 https://blog.csdn.net/qq_43494610/article/details/90411391 ,今天抽 ...

  9. 手机H5支付和扫码支付的区别是什么?

    H5支付就是网页发起的微信.支付宝唤醒,通过微信自带的微信浏览器内jssdk发起的微信支付.支付宝也可以拉起手机浏览器唤醒支付宝发起支付宝支付. 扫码支付即通过手机app进行扫码付款,最常用的软件如微 ...

  10. 沙箱支付实现扫码支付教程(前后端分离版)

    利用沙箱支付实现电脑扫码支付 一.准备工作 二.效果展示 三.实现代码 3.1 后台代码(我这里利用的是SpringBoot集成的SSM,当然不使用SpringBoot也可以) 3.2 前台代码 (前 ...

最新文章

  1. 皮一皮:绿灯侠是怎么诞生的...
  2. 西北大学计算机科学排名,西北大学计算机科学与信息系统Computer Science and Information Systems世界排名2020年最新排名第151-200位(QS世界排名)...
  3. python快速入门课堂笔记_Python 快速入门笔记(9):模块和包
  4. 学习Spring Boot:(三)配置文件
  5. TOGAF 9 Certification 有用书签
  6. JAVA自动生成前缀加日期的编码
  7. Elaine的python初学习
  8. 字节跳动、腾讯、阿里的社交战,浑水中依然没有赢家
  9. crontab 简明教程
  10. LSP标识符(LSP ID)
  11. HA HADOOP集群和HIVE部署
  12. “长宽高”不设限,中软国际带你在云上“乘风破浪”
  13. linux挂载U盘汉字乱码问题
  14. 基于安卓/android/微信小程序的流动人口管理移动APP#计算机毕业设计
  15. Python题目:学生信息管理系统
  16. lol新加坡服务器中英文文件,LOL:看了新加坡服皮肤名称,才知道我们翻译多优秀,笑的肚子疼...
  17. 数据结构技能考试系统
  18. python怎么换背景_3行Python代码实现图像照片抠图和换底色的方法
  19. Win10多用户远程桌面同时登录
  20. Matlab 三维相图,用MATLAB绘制Pb-Sn-Sb三维立体相图

热门文章

  1. apline更新下载软件报错ERROR: http://dl-cdn.alpinelinux.org/alpine/v3.12/main: network error (check Internet
  2. 彩色牛顿摆球Canvasjs特效
  3. 手机键盘九宫格 -- HW
  4. .Net Core中使用NEST简单操作Elasticsearch
  5. 高通 6125平台 显示分辨率自适应
  6. uniapp:记录使用uniapp对接腾讯音视频插件(TUICallKit )
  7. WIFI 的HT20和HT40
  8. OCR图片识别文字源码(支持多国文字识别)
  9. python随机点名程序 图形化,python写一个随机点名软件的实例
  10. Python编程练习:猫猫词云__魔道祖师