微信扫码支付分析
1.下载微信支付SDK
https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=11_1
2.tp5新增一个公共项目用于支付,将下载到的SDK代码解压到里面,下图其中lib文件夹中的 WxPay.Config.php和 phpqrcode.php 是自已加上去的
3.用到的主要是lib部份,自定义一个 WxPay.Config.php配置类 放到lib中,这个类继承 WxPay.Config.Interface.php 抽像类
4.在common/wxpayApi/example 找到 phpqrcode.php 这个类是用于生成支付二维码的,复制放到 lib 中
5.配置好 WxPay.Config.php 中的参数
6.TP5控制器测试提交
public function index() { require_once APP_PATH.'common/wxpayApi/lib/Wxpay.Api.php'; //引入微信支付API require_once APP_PATH.'common/wxpayApi/lib/WxPay.Config.php'; //引入微信支付配置 $config = new \WxPayConfig(); $input = new \WxPayUnifiedOrder(); //设置商品描述 $input->SetBody("test"); //设置订单号 $input->SetOut_trade_no("sdkphp123456789".date("YmdHis")); //设置订单金额(单位:分) $input->SetTotal_fee("2"); //设置异步通知地址 $input->SetNotify_url("http://www.tp5.com/index/notify/index"); //设置交易类型 $input->SetTrade_type("NATIVE"); //设置商品ID $input->SetProduct_id("123456789"); //调用统一下单API $result = \WxPayApi::unifiedOrder($config,$input); dump($result['code_url']); return view(); }
输出结果
string(35) "weixin://wxpay/bizpayurl?pr=I41fo2t"
这个是,微信支付二维码的地址,这个地址需要 phpqrcode.php 类生成图片
public function payimg(){ require_once APP_PATH.'common/wxpayApi/lib/phpqrcode.php'; //引入微信二维码生成类 $url = 'weixin://wxpay/bizpayurl?pr=8DQ7s8M'; if(substr($url, 0, 6) == "weixin"){ \QRcode::png($url); }else{ header('HTTP/1.1 404 Not Found'); } }
payimg 这个方生成的图数据,前端img src 这个方法地址就可以也
<img src="http://www.tp5.com/index/index/payimg.html" style="width:150px;height:150px;"/>
测试结果: