php微信jsapi支付 支付宝支付 两码合一
产品开会提出了这样的需求:一个二维码可以微信支付也可以支付宝支付
经过自己的钻研以及询问技术高人(本人代码一般般)和网上搜索 最终实现其功能 我用微信jsapi 和 支付宝网页支付
其实并不怎么难:
1.微信jsapi支付流程(微信官方文档:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=11_1)
2.支付宝支付流程
好了废话不多说 开始开发 代码上(Tp5开发)
首先 需要生成一个二维码这个想必大家都会吧!!! phpqrcode(下载地址:https://sourceforge.net/projects/phpqrcode/ )
1 require_once ROOT_PATH."/phpqrcode/phpqrcode.php";
2 $value="http://".$_SERVER["HTTP_HOST"]."/admin.php/pay/wx_zfb; //二维码链接 (这个是重中之重!!!)
3 $errorCorrectionLevel = "H";//容错级别
4 $matrixPointSize = 6;//生成图片大小
5 //生成二维码图片
6 QRcode::png($value, "code/1.png", $errorCorrectionLevel, $matrixPointSize, 2);
7 $logo = "code/kunchuan.png";//准备好的logo图片
8 $QR = "code/1.png";//已经生成的原始二维码图
9 if ($logo !== FALSE) {
10 $QR = imagecreatefromstring(file_get_contents($QR));
11 $logo = imagecreatefromstring(file_get_contents($logo));
12 /* $QR = imagecreatefrompng($QR);
13 $logo = imagecreatefrompng($logo);*/
14 if (imageistruecolor($logo))
15 {
16 imagetruecolortopalette($logo, false, 65535);//添加这行代码来解决颜色失真问题
17 }
18
19 $QR_width = imagesx($QR);//二维码图片宽度
20 $QR_height = imagesy($QR);//二维码图片高度
21 $logo_width = imagesx($logo);//logo图片宽度
22 $logo_height = imagesy($logo);//logo图片高度
23 $logo_qr_width = $QR_width / 5;
24 $scale = $logo_width/$logo_qr_width;
25 $logo_qr_height = $logo_height/$scale;
26 $from_width = ($QR_width - $logo_qr_width) / 2;
27 //重新组合图片并调整大小
28 imagecopyresampled($QR, $logo, $from_width, $from_width, 0, 0, $logo_qr_width,
29 $logo_qr_height, $logo_width, $logo_height);
30 }
31
32 $lujing = "code/merge1".png";
33
34 //输出图片
35 imagepng($QR,$lujing);
36 return "<img src="http://".$_SERVER["HTTP_HOST"]."/".$lujing."" alt="使用微信或者支付宝扫描支付">";


