微信支付支付宝支付生成二维码的方法(php生成二维码的三种方法)

如果图简单,可以用在线生成

http://pan.baidu.com/share/qrcode?w=150&h=150&url=http://www.xinzhenkj.com


最简单最实例的goolge开源方法

1.google开放api

代码如下:

[php] view plain copy

  1. <span style="font-size:14px;">$urlToEncode="http://www.helloweba.com";
  2. generateQRfromGoogle($urlToEncode);
  3. /**
  4. * google api 二维码生成【QRcode可以存储最多4296个字母数字类型的任意文本,具体可以查看二维码数据格式】
  5. * @param string $chl 二维码包含的信息,可以是数字、字符、二进制信息、汉字。
  6. 不能混合数据类型,数据必须经过UTF-8 URL-encoded
  7. * @param int $widhtHeight 生成二维码的尺寸设置
  8. * @param string $EC_level 可选纠错级别,QR码支持四个等级纠错,用来恢复丢失的、读错的、模糊的、数据。
  9. *                            L-默认:可以识别已损失的7%的数据
  10. *                            M-可以识别已损失15%的数据
  11. *                            Q-可以识别已损失25%的数据
  12. *                            H-可以识别已损失30%的数据
  13. * @param int $margin 生成的二维码离图片边框的距离
  14. */
  15. function generateQRfromGoogle($chl,$widhtHeight =‘150‘,$EC_level=‘L‘,$margin=‘0‘)
  16. {
  17. $chl = urlencode($chl);
  18. echo ‘<img src="http://chart.apis.google.com/chart?chs=‘.$widhtHeight.‘x‘.$widhtHeight.‘
  19. &cht=qr&chld=‘.$EC_level.‘|‘.$margin.‘&chl=‘.$chl.‘" alt="QR code" widhtHeight="‘.$widhtHeight.‘
  20. " widhtHeight="‘.$widhtHeight.‘"/>‘;
  21. } </span>

2.php类库PHP QR Code

地址:http://phpqrcode.sourceforge.net/
下载:http://sourceforge.net/projects/phpqrcode/

下载官网提供的类库后,只需要使用phpqrcode.php就可以生成二维码了,当然您的PHP环境必须开启支持GD2。phpqrcode.php提供了一个关键的png()方法,其中参数$text表示生成二位的的信息文本;参数$outfile表示是否输出二维码图片文件,默认否;参数$level表示容错率,也就是有被覆盖的区域还能识别,分别是L(QR_ECLEVEL_L,7%),M(QR_ECLEVEL_M,15%),Q(QR_ECLEVEL_Q,25%),H(QR_ECLEVEL_H,30%);参数$size表示生成图片大小,默认是3;参数$margin表示二维码周围边框空白区域间距值;参数$saveandprint表示是否保存二维码并显示。

代码如下:

[php] view plain copy

  1. <span style="font-size:14px;">public static function png($text, $outfile=false, $level=QR_ECLEVEL_L, $size=3, $margin=4,
  2. $saveandprint=false)
  3. {
  4. $enc = QRencode::factory($level, $size, $margin);
  5. return $enc->encodePNG($text, $outfile, $saveandprint=false);
  6. } </span>

调用PHP QR Code:

[php] view plain copy

  1. <span style="font-size:14px;">include ‘phpqrcode.php‘;
  2. QRcode::png(‘http://www.helloweba.com‘); </span>

实际应用中,我们会在二维码的中间加上自己的LOGO,已增强宣传效果。那如何生成含有logo的二维码呢?其实原理很简单,先使用PHP QR Code生成一张二维码图片,然后再利用php的image相关函数,将事先准备好的logo图片加入到刚生成的原始二维码图片中间,然后重新生成一张新的二维码图片。

[php] view plain copy

  1. <span style="font-size:14px;">include ‘phpqrcode.php‘;
  2. $value = ‘http://www.helloweba.com‘; //二维码内容
  3. $errorCorrectionLevel = ‘L‘;//容错级别
  4. $matrixPointSize = 6;//生成图片大小
  5. //生成二维码图片
  6. QRcode::png($value, ‘qrcode.png‘, $errorCorrectionLevel, $matrixPointSize, 2);
  7. $logo = ‘logo.png‘;//准备好的logo图片
  8. $QR = ‘qrcode.png‘;//已经生成的原始二维码图
  9. if ($logo !== FALSE) {
  10. $QR = imagecreatefromstring(file_get_contents($QR));
  11. $logo = imagecreatefromstring(file_get_contents($logo));
  12. $QR_width = imagesx($QR);//二维码图片宽度
  13. $QR_height = imagesy($QR);//二维码图片高度
  14. $logo_width = imagesx($logo);//logo图片宽度
  15. $logo_height = imagesy($logo);//logo图片高度
  16. $logo_qr_width = $QR_width / 5;
  17. $scale = $logo_width/$logo_qr_width;
  18. $logo_qr_height = $logo_height/$scale;
  19. $from_width = ($QR_width - $logo_qr_width) / 2;
  20. //重新组合图片并调整大小
  21. imagecopyresampled($QR, $logo, $from_width, $from_width, 0, 0, $logo_qr_width,
  22. $logo_qr_height, $logo_width, $logo_height);
  23. }
  24. //输出图片
  25. imagepng($QR, ‘helloweba.png‘);
  26. echo ‘<img src="helloweba.png">‘; </span>

对于第二种方法:如果不使用$filename,第二个参数为false的时候,就不会把二维码图片保存,而是直接输出。

现在还有一些如有:libqrencode与QRcode Perl CGI & PHP scripts二维码生成插件大家喜欢也可看看。

3.基于jquery的二维码生成插件qrcode,在页面中调用该插件就能生成对应的二维码。

qrcode其实是通过使用jQuery实现图形渲染,画图,支持canvas(HTML5)和table两种方式,

可以到https://github.com/jeromeetienne/jquery-qrcode获取最新的代码。

如何使用

(1)、首先在页面中加入jquery库文件和qrcode插件。

<script type="text/javascript" src="jquery.js"></script> 
<script type="text/javascript" src="jquery.qrcode.min.js"></script> 

(2)、在页面中需要显示二维码的地方加入以下代码:

<div id="code"></div> 

(3)、调用qrcode插件。

qrcode支持canvas和table两种方式进行图片渲染,默认使用canvas方式,效率最高,当然要浏览器支持html5。直接调用如下:

$(‘#code‘).qrcode("http://www.helloweba.com"); //任意字符串 

您也可以通过以下方式调用:

$("#code").qrcode({ 
    render: "table", //table方式 
    width: 200, //宽度 
    height:200, //高度 
    text: "www.helloweba.com" //任意内容 
}); 

这样就可以在页面中直接生成一个二维码,你可以用手机“扫一扫”功能读取二维码信息。

(4).识别中文

我们试验的时候发现不能识别中文内容的二维码,通过查找多方资料了解到,jquery-qrcode是采用charCodeAt()方式进行编码转换的。而这个方法默认会获取它的Unicode编码,如果有中文内容,在生成二维码前就要把字符串转换成UTF-8,然后再生成二维码。您可以通过以下函数来转换中文字符串:

function toUtf8(str) {    
    var out, i, len, c;    
    out = "";    
    len = str.length;    
    for(i = 0; i < len; i++) {    
        c = str.charCodeAt(i);    
        if ((c >= 0x0001) && (c <= 0x007F)) {    
            out += str.charAt(i);    
        } else if (c > 0x07FF) {    
            out += String.fromCharCode(0xE0 | ((c >> 12) & 0x0F));    
            out += String.fromCharCode(0x80 | ((c >>  6) & 0x3F));    
            out += String.fromCharCode(0x80 | ((c >>  0) & 0x3F));    
        } else {    
            out += String.fromCharCode(0xC0 | ((c >>  6) & 0x1F));    
            out += String.fromCharCode(0x80 | ((c >>  0) & 0x3F));    
        }    
    }    
    return out;    
} 

以下示例:

var str = toUtf8("普罗旺斯没有故事"); 
$(‘#code‘).qrcode(str); 

原文地址:https://www.cnblogs.com/kenshinobiy/p/8727085.html

时间: 2024-11-04 14:24:16

微信支付支付宝支付生成二维码的方法(php生成二维码的三种方法)的相关文章

win10教育版永久激活密钥 win10教育版激活码 win10教育版产品密钥2018(第三种方法亲测可用!)

有没有最新win10教育版激活密钥?win10教育版功能比较全面,增加了一些学术上需要的功能.有用户装了win10教育版,提示需要产品密钥,网上找到的win10教育版永久激活码大多失效,这边小编为大家整理2018最新的windows10教育版永久激活密钥. 系统推荐:免激活win10系统下载 说明:win10教育版密钥都是网络整理,不能保证100%可用,毕竟容易被封.其中批量版有激活次数限制,kms激活密钥则不用担心被封,kms密钥永久有效.零售版和VL版永久激活码和kms安装密钥激活步骤不一样

如何申请三方支付接口 微信支付 支付宝支付 网银支付 钱包支付 扫码支付等

如何申请三方支付接口 微信支付 支付宝支付 网银支付 钱包支付  扫码支付等 首先,需要提供一整套申请支付接口的资料,如下 一.企业3证加盖公司公章 二.法人手持身份证照片 三.对应企业ICP备案的交易网站域名 资料审核初步审核之后,请把支付合作协议打印出来一式二份附带企业三证打印盖章邮寄到三方支付公司进一步审核 审核通过后,进行支付接口的对接 联调 最终正式环境上线

iOS不用官方SDK实现微信和支付宝支付XHPayKit

作者:朱晓辉Allen 链接:https://juejin.im/post/5a90dd3a6fb9a0634912b755 前言 前段时间由于项目需求,移除了项目中的微信支付SDK和支付宝支付SDK,这种情况下需要自己搞定支付,第一时间考虑到的是使用openshare,但是当下载openshare下来后发现,openshare的支付接口,并不能直接替换官方SDK支付接口, 官方SDK的实现逻辑是后台订单签名完成后,客服端传签名信息及参数给支付SDK,支付SDK生成协议url,然后拉起第三方支付

Android H5调起原生微信或支付宝支付

Android H5调起原生微信或支付宝支付 WebView调用原生微信或支付宝回调:其原理就是在shouldOverrideUrlLoading(final WebView view, String url)方法中进行拦截处理. 由于支付宝的取消支付之后跳转的页面显示不太友好,所以集成支付宝SDK-手机网站支付转APP支付,说明文档参照https://docs.open.alipay.com/204/105695/.按照说明集成aliPaySdk. 初始化WebView: private vo

js之二维数组定义和初始化三种方法

方法一:直接定义并且初始化,这种遇到数量少的情况可以用 var _TheArray = [["0-1","0-2"],["1-1","1-2"],["2-1","2-2"]] 方法二:未知长度的二维数组 var tArray = new Array();   //先声明一维 for(var k=0;k<i;k++){        //一维长度为i,i为变量,可以根据实际情况改变

二十一、安装软件包的三种方法、RPM包介绍、rpm工具用法、yum工具用法、yum搭建本地仓库

一.安装软件包的三种方法 rpm工具.yum工具.源码包 RPM工具:是以一种数据库记录的方式将需要的套件安装到Linux主机的一套管理程序.就是说,你的Linux系统中有一个关于RPM的数据库,它记录了安装的包以及包与包之间的依赖关系.RPM包是预先在Linux机器上编译并打包的文件,安装快捷.缺点:安装环境必须与编译时的环境一致或相当,包与包之间存在着相互依赖的情况,卸载包时需先把依赖的包卸载.若依赖的包是系统必需的,就不能卸载这个包,否则系统崩溃. yum工具:优势:可联网下载所需要的RP

ubuntu/linux mint 创建proc文件的三种方法(二)

在做内核驱动开发的时候,可以使用/proc下的文件,获取相应的信息,以便调试. 大多数/proc下的文件是只读的,但为了示例的完整性,都提供了写方法. 方法一:使用create_proc_entry创建proc文件(简单,但写操作有缓冲区溢出的危险): 方法二:使用proc_create和seq_file创建proc文件(较方法三简洁): 方法三:使用proc_create_data和seq_file创建proc文件(较麻烦,但比较完整): 示例四:在proc文件中使用内核链表的一个示例(用的方

执行LS源码的三种方法

方法一:使用 eval() eval()函数常用来计算表达式,将表达式转换成一个变量名或者对象名,然后使用它访问变量或者对象. LS中的数据都是以字符串的形式存储.当获取到字符串 data时(json数据转换成的字符串), storage = eval("("+data+")");//这样得到的数据就是json串. 备注:在json转换成本地存储的时候,需要将json串转换一下:JSON.stringify(data),这样得到的就是json串.. 方法二:使用ne

Android项目实战(二):安卓应用程序退出的三种方法

原文:Android项目实战(二):安卓应用程序退出的三种方法 现在的APP退出的时候都不是让用户点击了“后退键”就退出.防止用户点错了后退键而造成的用户体检不好. 一年前搞的Demo代码不见了,重新写下就当是复习和以后直接拿来用把 目前流行的解决一般分为两种: 一.按一次后退键显示一个对话框决定是否退出 1 @Override 2 public boolean onKeyDown(int keyCode, KeyEvent event) { 3 // TODO Auto-generated m

三种方法,让WPF项目生成单文件

原文:三种方法,让WPF项目生成单文件 在使用WPF写一些小工具时,往往需要将多个DLL文件嵌入到EXE文件里,生成单文件.这里介绍三种方案: 把DLL文件作为嵌入资源 使用Costura.Fody 使用.NET Reactor. 一.把DLL文件转换为嵌入资源 第一步,在项目中新建Resources文件夹,把需要的dll文件拷贝到该目录中(可以是多个dll文件),然后修改每个文件的属性,将生成操作改为嵌入的资源,例如: 拷贝dll文件 修改生成操作 第二步,修改App.xaml.cs文件,添加