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="使用微信或者支付宝扫描支付">";