微信二维码扫描支付

微信二维码扫码支付的原理

参数生成等请参考官方文档:https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=6_1

微信扫码支付。简单来说,就是你把微信支付需要的信息,生成到二维码图片中。通过微信扫一扫,发起支付。我们需要做的就是二件事:

一是:按照微信扫码支付规则生成二维码信息.

二是:微信没有提供生成二维码图片的接口。需要我们自己把二维码信息生成到二维码图片中。

1.模式选择:

微信扫码支付,有两种模式,文档中有介绍。第二种模式,微信接口会返回二维码信息给我们。而第一种模式则需要我们自己去生成二维码信息。会有些麻烦。尤其是参数大小写,还有签名的问题,容易出错。总的来说第二种模式比第一种模式简单。所有我采用的是第二种模式,比较通用。京东与携程亦用的是第二种模式。

2.调用统一下单接口获取带有二维码信息的url:(模式二)

模式二的微信扫码支付,需要先调用微信的统一下单接口,生成预交易单。(参数传递与接收都是XML 数据格式。)

正确调用后,会返回含有交易标示ID,和二维码链接的URL。

第一步先把提交的参数生成sign

第二步把参数按照微信的要求提交的形式提交到微信,微信会返回code_url给我们

第三步把返回的code_url生成二维码就可以了

使用的是google ZXing库。 提供一个 jar 地址 直接引入到自己项目即可。http://download.csdn.net/detail/gonwy/7658135 

action方法

public String createQRCode(){
        // 设置头信息,内容处理的方式,attachment以附件的形式打开,就是进行下载,并设置下载文件的命名
        HttpServletResponse response = getResponse();
        response.setContentType("application/octet-stream");
        response.setHeader("Content-Disposition", "attachment;filename=aaa.gif");
        // 创建文件输入流
        // 响应输出流
        ServletOutputStream out = null;
        try {
            out = response.getOutputStream();
            onlinePaymentFrontService.createQRTicket(weixinUrl,out);
            out.flush();
            out.close();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if(out!=null){
                try {
                    out.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
        return null;
    }

service方法

/**
     * 生成二维码
     * @param weixinUrl
     */
    public String createQRTicket(String weixinUrl, ServletOutputStream out) {
        int width = 300;
        int height = 300;
        // 二维码的图片格式
        String format = "gif";
        Hashtable<EncodeHintType, String> hints = new Hashtable<EncodeHintType, String>();
        // 内容所使用编码
        hints.put(EncodeHintType.CHARACTER_SET, "utf-8");
        try {
            BitMatrix bitMatrix = new MultiFormatWriter().encode(weixinUrl,
                    BarcodeFormat.QR_CODE, width, height, hints);
            MatrixToImageWriter.writeToStream(bitMatrix, format, out);
        } catch (WriterException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
       
    }

时间: 2024-11-13 23:36:58

微信二维码扫描支付的相关文章

jQuery制作带有微信二维码扫描的页面返回顶部代码

原文:jQuery制作带有微信二维码扫描的页面返回顶部代码 源代码下载地址:http://www.zuidaima.com/share/1607126062287872.htm 版权声明:本文为博主原创文章,未经博主允许不得转载.

微信二维码扫描下载APK

前几天给客户制作的app需要上线,生成二维码扫描进行下载,把生成好的apk挂在服务器端,将地址复制下来,通过草料二维码(http://cli.im/)生成一个二维码 也许你会看到有个app的选项,为什么不选择app呢.点开之后你会发现: 它需要一个应用宝ID.上传到应用宝,光审批就要好几天,特别烦.并且上传到应用宝,自己管理起来感觉很不爽. 通过网址的形式生成了一个二维码,然后保存,通过手机QQ,浏览器各种扫描二维码的工具都试了,都可以下载,但是唯独微信不可以.这点让人很恼火,作为二维码的发起者

【转】Android 基于google Zxing实现二维码、条形码扫描,仿微信二维码扫描效果--不错

原文网址:http://blog.csdn.net/xiaanming/article/details/10163203 转载请注明出处:http://blog.csdn.net/xiaanming/article/details/10163203 了解二维码这个东西还是从微信中,当时微信推出二维码扫描功能,自己感觉挺新颖的,从一张图片中扫一下竟然能直接加好友,不可思议啊,那时候还不了解二维码,呵呵,然后做项目的时候,老板说要加上二维码扫描功能,然后自己的屁颠屁颠的去百度,google啥的,发现

Android 基于google Zxing实现二维码、条形码扫描,仿微信二维码扫描效果

了解二维码这个东西还是从微信中,当时微信推出二维码扫描功能.自己感觉挺新颖的,从一张图片中扫一下居然能直接加好友,不可思议啊,那时候还不了解二维码.呵呵,然后做项目的时候.老板说要加上二维码扫描功能.然后自己的屁颠屁颠的去百度,google啥的.发现非常多朋友都有介绍二维码扫描的功能,然后我就跟着人家的介绍自己搞起了二维码扫描功能,跟着人家的帖子,非常快我的项目就增加了扫描二维码的功能,然后自己还非常开心. 随着微信的到来,二维码越来越火爆,随处能看到二维码,比方商城里面,肯德基,餐厅等等.对于

基于google Zxing实现二维码、条形码扫描,仿微信二维码扫描效果

随着微信的到来,二维码越来越火爆,随处能看到二维码,比如商城里面,肯德基,餐厅等等,对于二维码扫描我们使用的是google的开源框架Zxing,我们可以去http://code.google.com/p/zxing/下载源码和Jar包,之前我项目中的二维码扫描功能只实现了扫描功能,其UI真的是其丑无比,一个好的应用软件,其UI界面也要被大众所接纳,不然人家就不会用你的软件啦,所以说应用软件功能和界面一样都很重要,例如微信,相信微信UI被很多应用软件所模仿,我也仿照微信扫描二维码效果进行模仿,虽然

Weixin 之 微信二维码扫描下载 Apk

制作的手机 app 需要上线,生成二维码扫描进行下载,把生成好的apk挂在服务器端,将地址复制下来,通过草料二维码(http://cli.im/)生成一个二维码. 在更多中,你会看到有个app的选项,为什么不选择app呢.点开之后你会发现:它需要一个应用宝ID.上传到应用宝,光审批就要好几天,特别烦.并且上传到应用宝,自己管理起来感觉很麻烦. 通过网址的形式生成了一个二维码,然后保存,通过手机QQ,浏览器各种扫描二维码的工具都试了,都可以下载,但是唯独微信不可以.这点让人很恼火,作为二维码的发起

让微信二维码扫描你的APK

二维码深入人心,很多App都在官网挂出了可以扫描下载apk的二维码,笔者所在公司的产品也不例外.一般二维码编码的URL不会直接放apk而是放中间地址,通过这个中间地址再跳转到apk所在URL,原因大概是有几个: 1. 让网址尽可能短:信息越少,二维码的尺寸就可以做得越小,嵌入的LOGO可以更大,识别率也会越高. 2. 让iPhone和Android通过同一个二维码下载:在这个中间地址根据User Agent提取操作系统,然后根据操作系统来决定跳转到iTunes Store链接.apk下载地址还是

Django网站项目线下二维码扫描支付

1.前期工作 进行项目之前我们需要一个支付宝的沙箱环境,进入沙箱环境的网址:https://openhome.alipay.com/platform/appDaily.htm?tab=info 设置密钥的方式需要下载以支付宝生成密钥工具:工具包的地址及提取码: 链接:https://pan.baidu.com/s/1AXK3s4SBowNp1K47Qc1QHw 提取码:2u04 运行.exe文件 复制my_private_key.pem的内容,并且保证里面不含有空格和换行等字符:将复制的内容再填

Android 二维码扫描怎样实现第二次(重复)扫描

相关文章: Android 基于google Zxing实现二维码.条形码扫描,仿微信二维码扫描效果 http://blog.csdn.net/xiaanming/article/details/10163203 下载地址:http://download.csdn.net/detail/xiaanming/5990219 首先看一下扫描界面 CaptureCodeActivity.java代码: package com.haier.qr.code; import java.io.IOExcept