easywechat安装完成后在tp5上的后续
未知
2022-03-09 09:25:56
0
使用composer下载安装easywechat的时候,把vendor/topthink里面的自动加载类都更新没了,就剩下一个thinkphp-installer文件夹。注意、注意、注意。
1,在前端类中调用公共微信支付类。
<?php
    namespace app\home\controller;
    use think\Controller;
    use think\Request;
    use think\Log;
    use app\common\controller\Weixinpay;
class First extends Controller{
      //支付方式:微信收款页面
        public function openWeixinPage(){      
                $params = [
                    //商户订单号,商户网站订单系统中唯一订单号,必填
                    'out_trade_no'  =>  build_order_no(),
                    //订单名称,必填
                    'trade_name'       =>  $trade_name,
                    //付款金额,必填
                    'total_amount'  =>  0.01,                 
                    //产品ID
                    'product_id'  =>  $cproduct_id,               
                                 
                ];
                //客户支付数据保存到数据库
                 $res=new Weixinpay();
                $codeurl=$res->payOrder($params); //返回微信二维码链接,使用phpqrcode类生成二维码图片供用户扫码支付
                require_once VENDOR_PATH.'phpqrcode/phpqrcode.php';
                if(substr($codeurl, 0, 6) == "weixin"){                     
                    \QRcode::png($codeurl);                   
                }else{
                     header('HTTP/1.1 404 Not Found');
                }
       }
}
2,在aplication应用中写一个公共微信支付类,包含native支付二维码链接、回调、退款、查询功能
<?php
  namespace app\common\controller;
  use think\Controller;
  use think\Db;
  use think\Request;
  use think\Loader;
  use think\Log;
  use EasyWeChat\Factory;//easywechat工厂
  /**
  * 微信支付类
  */
  class Weixinpay extends Controller{
        public function payOrder($request){      
        $config = [
            // 必要配置
            'app_id'             => '',
            'mch_id'             => '',
            'key'                => '',   // API v2 密钥 (注意: 是v2密钥 是v2密钥 是v2密钥)

            // 如需使用敏感接口(如退款、发送红包等)需要配置 API 证书路径(登录商户平台下载 API 证书)
            'cert_path'          => 'D:/web/vendor/weixinpay/cert/apiclient_cert.pem', // XXX: 绝对路径!!!!
            'key_path'           => 'D:/web/vendor/weixinpay/cert/apiclient_key.pem',      // XXX: 绝对路径!!!!

            'notify_url'         => request()->domain().'/public/common/weixinpay/notify_url',     // 你也可以在下单时单独设置来想覆盖它
        ];
        
        $app = Factory::payment($config);
        $result = $app->order->unify([
              'trade_type' => 'NATIVE',
              'body' => $request['trade_name'],//商品名称
              'out_trade_no' => $request['out_trade_no'],//订单号
              'total_fee' => $request['total_amount']*100,//金额分,需要乘以100
              
              'product_id' => $request['tola_product_id'], // 则为生成二维码时的产品 ID
            
          ]);
        $url = urldecode($result['code_url']);//weixin://wxpay/bizpayurl?pr=dDGrgRIzz
        return $url;
    }
}

相关内容

探索 PHP sg15 在...
摘要: 本文探讨了PHP的sg15项目在Web开发中的应用,包括...
2026-02-11 01:23:34
探索PHP与YAML的互操...
本文探讨了PHP与YAML的互操作性,介绍了YAML的数据格式及P...
2026-02-02 01:23:35
使用PHP处理YAML数据...
本文介绍了使用PHP处理YAML数据的技巧和策略,包括解析、操作Y...
2026-02-01 01:23:40
深入理解MySQL视图的工...
摘要: MySQL视图是一种虚拟表,通过封装SQL查询定义。它不...
2026-01-31 01:23:34
MySQL视图与普通表的区...
MySQL视图与普通表:虚拟与实际的存储方式,视图只可查询不可修改...
2026-01-30 01:23:36
如何优化MySQL中的视图...
摘要: 本文介绍了如何优化MySQL中视图性能的策略,包括减少查...
2026-01-26 01:23:37

热门资讯

object json转化为数... //调用api 程序,通知商户订单异常 20200314 public function callt...
tp5 composer we... 问题: 正常使用中的tp5程序需要安装微信支付v3。 tp5使用cmd面板composer requ...
laravel 对接支付宝当面... 第一步 开发中心网页移动应用下支付接入 第二步 创建应用后需添加可支付的方式 第三步 配置公钥与私钥...
tp5 jquery判断手机端... application--common.php中添加如下代码 //函数作用是判断用户打开的是手机端还...
Laravel 查看SQL操作... 方法一:临时打印操作记录 DB::connection()-enableQueryLog(); # ...
php 打印date函数出现错... 问题描述: 我使用的是phpstudy,在练习时间函数的时候,打印出现在的时间,date(Y-m-d...
Laravel 5.5 .No... 创建了新的laravel项目后, 运行提示:No application encryption ke...
生成随机字符唯一标识符guid... /** * @param $length * @return string * 生成随机字符串 */...
php函数substr_rep... php函数substr_replace从某个位置替换或删除或插入字符串
layui缩略图 div class=layui-form-item label class=layui-form-l...