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

相关内容

XXX市场趋势
随着全球化和数字化推进,XXX市场面临数字化、智能化、绿色环保和国...
2025-02-10 09:00:41
有影院靠《哪吒2》7天赚了...
《哪吒2》上映七天创下影院高收益奇迹,吸引观众热议和业界高度评价。...
2025-02-10 06:46:40
小米汽车:经查完全不存在网...
小米汽车回应SU7“断轴”传闻,经查完全不存在。官方迅速澄清,强调...
2025-02-10 06:23:39
国产剧终于有不靠男主救的女...
国产剧新趋势:女主角不再依赖男主救援,展现独立与坚强。打破传统模式...
2025-02-10 05:46:37
比亚迪第二代秦PLUS智驾...
比亚迪第二代秦PLUS智驾版明晚上市,以卓越的智能驾驶技术和外观设...
2025-02-10 04:46:50
网络木马攻击中的隐藏技术及...
本文详述了网络木马攻击中的伪装、加密、进程注入与隐藏等技术手段及其...
2025-02-10 04:23:42

热门资讯

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