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;
    }
}

相关内容

MySQL变量的生命周期管...
MySQL变量管理关键在于生命周期控制。需了解全局、会话及用户自定...
2024-11-20 20:46:37
MySQL变量的作用域与访...
摘要: MySQL变量具有作用域和访问控制,局部变量限于特定上下...
2024-11-20 20:00:40
动态分配MySQL变量的示...
MySQL中,变量用于存储临时数据,包括全局和会话变量以及用户定义...
2024-11-20 18:23:38
MySQL变量存储的数据类...
MySQL支持多种数据类型以存储不同种类的变量,包括数值型、字符串...
2024-11-20 18:00:48
MySQL变量在数据库操作...
MySQL变量在数据库操作中至关重要,用于存储数据、配置操作、实现...
2024-11-20 17:46:42
K8s在云服务器上的资源管...
K8s作为开源容器编排系统,在云服务器上实现自动化资源管理,提高运...
2024-11-20 17:23:38

热门资讯

tp5 jquery判断手机端... application--common.php中添加如下代码 //函数作用是判断用户打开的是手机端还...
Laravel 5.5 .No... 创建了新的laravel项目后, 运行提示:No application encryption ke...
php 打印date函数出现错... 问题描述: 我使用的是phpstudy,在练习时间函数的时候,打印出现在的时间,date(Y-m-d...
生成随机字符唯一标识符guid... /** * @param $length * @return string * 生成随机字符串 */...
layui缩略图 div class=layui-form-item label class=layui-form-l...
php函数substr_rep... php函数substr_replace从某个位置替换或删除或插入字符串
Laravel 引入自定义类库... 强烈建议引入的类 都是含有命名空间的,这样使用起来就不会出现重名的情况。!!当然,没有命名空间也可以...
object json转化为数... //调用api 程序,通知商户订单异常 20200314 public function callt...
Laravel 查看SQL操作... 方法一:临时打印操作记录 DB::connection()-enableQueryLog(); # ...
php银行开放平台接口:pfx... 问题描述: 对接易通银行,他们的服务开放平台是java开发,而我的是php,现在需要php版本的SD...