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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要在 PHP TP5 框架中实现微信支付功能,你需要完成以下几个步骤: 1. 注册微信商户平台账号,并在商户平台中创建应用,获取到商户ID和商户密钥。 2. 安装并配置 PHP SDK,可以使用官方提供的 SDK 或者选择第三方 SDK。 3. 编写支付接口,接收前端传来的订单信息,将订单信息传递给微信支付接口,生成预支付订单,并返回预支付订单信息给前端。 4. 前端根据预支付订单信息调起微信支付页面,用户完成支付后,微信将会回调你的支付回调接口。 5. 在支付回调接口中,验证微信回调的签名,防止恶意攻击,确认订单支付状态,更新订单状态等操作。 下面是一个简单的示例代码,仅供参考: ```php // 引入微信支付 SDK use EasyWeChat\Factory; // 创建支付对象 $config = [ 'app_id' => 'your-app-id', 'mch_id' => 'your-mch-id', 'key' => 'your-key', 'cert_path' => 'path/to/your/cert.pem', 'key_path' => 'path/to/your/key.pem', ]; $payment = Factory::payment($config); // 发起支付请求 $result = $payment->order->unify([ 'body' => 'test', 'out_trade_no' => 'your-order-id', 'total_fee' => 100, 'spbill_create_ip' => '127.0.0.1', 'notify_url' => 'your-notify-url', 'trade_type' => 'JSAPI', 'openid' => 'your-user-openid' ]); // 将预支付订单信息返回给前端 return $result; // 支付回调接口 $payment->notify(function ($notify, $successful) { // 验证签名 if (!$successful) { return 'fail'; } // 更新订单状态等操作 return 'success'; }); ``` 注意,以上代码仅为示例代码,具体实现需要根据你的业务需求进行调整。同时,为了确保支付安全,请务必仔细阅读微信支付开发文档,并遵循开发规范。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值