1、使用composer在tp5项目的根目录安装easyWeChat
使用composer教程
$ composer require overtrue/wechat:~4.0 -vvv
// 注意是在项目的根目录执行
安装完成后会在vendor生成关于easyWeChat的文件,并且会更改项目中composer.json的配置;所以不要使用从GitHub下载或者直接放到vendor下,只能采用composer方式安装
2、安装完成之后新建一个文件,wx_pay.php
参考easyWeChat文档
<?php
namespace app\index\controller;
use think\Controller;
use EasyWeChat\Factory;
/**
* Class Wx_pay
* @package app\web\controller
* 微信扫码支付
*/
class Wx_pay{
/**
* 微信扫码支付
*/
public function wx_pay(){
// 配置信息
$config = [
'app_id' => '',//注意这个APPID只能是公众号的id,没有的话要去申请,并且在微信支付平台里绑定
'mch_id' => '',//商户号
'key' => '',//支付秘钥
'notify_url' => '',//异步回调通知地址
];
// 调用配置信息
$app = Factory::payment($config);
$result = $app->order->unify([
'body' => '',//描述
'out_trade_no' => '',//自己的订单号
'total_fee' => '',//支付金额,这里要乘100;否则会报错:无法将输入源“/body/xml/total_fee”映射到目标字段“标价金额”中,此字段需要一
'spbill_create_ip' => '',
'notify_url' => '',
'trade_type' => 'NATIVE',
'product_id' => 'weixin://wxpay/bizpayurl?sr=888',
]);
// $result['code_url']的内容就是二维码的地址
// 生成二维码的方式有多种,可以根据自己的喜好去生成,最后会提供我参考的二维码生成文档
// 引用二维码生成方法
require '../vendor/phpqrcode/phpqrcode.php';
$value = $result['code_url']; //注一个订单号只能生成一次,否则$result['code_url']不会展现
$errorCorrectionLevel = 'L'; //容错级别
$matrixPointSize = 5; //生成图片大小
//生成二维码图片
// 判断是否有这个文件夹 没有的话就创建一个
if(!is_dir("qrcode")){
// 创建文件加
mkdir("qrcode");
}
//设置二维码文件名
$filename = 'qrcode/'.time().rand(10000,9999999).'.png';
//生成二维码
\QRcode::png($value,$filename , $errorCorrectionLevel, $matrixPointSize, 2);
// 这个时候支付的二维码就生成了,可以在public/qrcode/下查找
}
}
二维码生成参考文档:http://t.zoukankan.com/junyi-bk-p-11577237.html
小结:使用easyWeChat方便了很多,为我们省了很多的时间。以上只是大致的实现方式,可以添加自己的逻辑,我用此方法已经使用了扫码支付的功能。有问题可以随时问我