微信扫码支付

1.二维码

1.1 什么是二维码

二维码又称QR Code,QR全称Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的Bar Code条形码能存更多的信息,也能表示更多的数据类型。
二维条码/二维码(2-dimensional bar code)是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的;在代码编制上巧妙地利用构成计算机内部逻辑基础的“0”、“1”比特流的概念,使用若干个与二进制相对应的几何形体来表示文字数值信息,通过图象输入设备或光电扫描设备自动识读以实现信息自动处理:它具有条码技术的一些共性:每种码制有其特定的字符集;每个字符占有一定的宽度;具有一定的校验功能等。同时还具有对不同行的信息自动识别功能、及处理图形旋转变化点。

1.2二维码的优势

* 信息容量大, 可以容纳多达1850个大写字母或2710个数字或500多个汉字
* 应用范围广, 支持文字,声音,图片,指纹等等...
* 容错能力强, 即使图片出现部分破损也能使用
* 成本低, 容易制作

1.3二维码容错级别

* L级(低) 7%的码字可以被恢复。
* M级(中) 的码字的15%可以被恢复。
* Q级(四分)的码字的25%可以被恢复。
* H级(高) 的码字的30%可以被恢复。

1.4二维码生成插件qrious

qrious是一款基于HTML5 Canvas的纯JS二维码生成插件,通过qrious.js可以快速生成各种二维码,你可以控制二维码的尺寸颜色,还可以将生成的二维码进行Base64编码.
qrious.js二维码插件的可用配置参数如下:
参数类型默认值描述
backgroudString“while”二维码背景颜色
foregroundString“black”二维码的前景颜色
levelString“L”二维码的误差校正级别
mimeString“image/png”二维码输出为图片的MIME类型
sizeNumber100二维码的尺寸,单位像素
valueString“**”需要编码的二维码的值

生成一张简单的二维码的代码

<html>
<head>
<title>一张简单的二维码</title>
</head>
<img id="qrious">
<script src="qrious.min.js"></script>
<script>
var qr = new QRious({
    element:document.getElementById('qrious'),
    size:250,
    level:'H',
    value:'http://www.baidu.com'
});
</script>
</body>
</html>
注意:
* element中参数要和图片中的id属性一致
* 要在该页面的所在文件的当前目录下有qrious.min.js的包或者qrious.js包,区别只是一个压缩一个没有压缩.
* new QRious({});QR大写,不是首字符大写,里面的最后一个属性后面不加逗号.

2.微信扫码支付简介

2.1微信扫码支付申请

微信扫码支付是商户系统按微信支付协议生成支付二维码,用户再用微信“扫一扫”完成支付的模式。该模式适用于PC网站支付、实体店单品或订单支付、媒体广告支付等场景。

2.1.1申请步骤

第一步:注册公众号(类型需为:服务号)
请根据营业执照类型选择一下主题注册:个体工商户|企业/公司|政府|媒体|其他类型.
第二步:认证公众号
公众号认证后才可以申请微信支付,认证费:300元/次.
第三步:提交资料申请微信支付
登陆公众平台,点击左侧菜单[微信支付],开始填写资料等待审核,审核时间为1-5个工作日内
第四步:开户成功,登陆商户平台进行验证
资料审核通过后,请登录联系人邮箱查收商户号和密码,并登录商户平台填写财付通备付金打的小额资金数额,完成账户验证。
第五步:在线签署协议
本协议为线上电子协议,签署后方可进行交易及资金结算,签署完立即生效。

2.2开发文档

微信支付接口调用的整体思路:
按照API要求组装参数,以XML方式发送(请求方式:POST)给微信支付接口(URL),微信支付接口也是以XML方式给予响应.程序根据返回的结果(其中包括支付URL)生成二维码或判断订单状态

在线微信支付开发文档
点击进入查看文档
常用的是”统一下单”和”查询订单”两组API

2.3微信支付SDK

微信支付提供了SDK,大家下载后打开源码,install到本地仓库.

点击查看图片
使用微信支付的SDK,在maven工程中引入依赖

    <dependency>
        <groupId>com.github.wxpay</groupId>
        <artifactId>wxpay-sdk</artifactId>
        <version>0.0.3</version>
    </dependency>

微信SDk常用的功能:
(1)获取随机字符串
WXPayUtil.generateNonceStr()
(2)MAP转换为XML字符串(自动添加签名)
WXPayUtil.generateSignedXml(param, partnerkey)
(3)XML字符串转换为MAP
WXPayUtil.xmlToMap(result)

2.4HttpClient工具类

* HttpClient是Apache Jakarta Common下的子项目,用来提供高效的、最新的、功能丰富的支持HTTP协议的客户端编程工具包,并且它支持HTTP协议最新的版本和建议。HttpClient已经应用在很多的项目中,比如Apache Jakarta上很著名的另外两个开源项目Cactus和HTMLUnit都使用了HttpClient。
* HttpClient通俗的讲就是模拟了浏览器的行为,如果我们需要在后端向某一地址提交数据获取结果,就可以使用HttpClient.
* 关于HttpClient(原生)具体的使用不属于我们本章的学习内容,我们这里这里为了简化HttpClient的使用,提供了工具类HttpClient(对原生HttpClient进行了封装)

HttpClient工具类使用的步骤

HttpClient client=new HttpClient(请求的url地址);
client.setHttps(true);//是否是https协议
client.setXmlParam(xmlParam);//发送的xml数据
client.post();//执行post请求
String result = client.getContent(); //获取结果

工程实现代码:略.(因自己做工程为分布式的,不方便贴出代码.)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值