TP5使用easywechat进行微信Native扫码支付

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方便了很多,为我们省了很多的时间。以上只是大致的实现方式,可以添加自己的逻辑,我用此方法已经使用了扫码支付的功能。有问题可以随时问我

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值