【亚洲必赢官网】Thinkphp和onethink达成微信支付插件,thinkPHP框架整合tcpdf插件操作示例

Thinkphp框架引用tcpdf插件,插件下载地址:待续。。。

正文实例讲述了thinkPHP框架整合tcpdf插件操作。分享给大家供大家参考,具体如下:

thinkPHP和微支付达成的微信支付插件,在微信中调用微信jssdk实现支付,那里有详细的代码和学科,具体看那里:

正文实例为大家大快朵颐了thinkphp整合微信支付代码,供大家参考,具体内容如下

代码编写前先引入tcpdf整个文件夹到项目目录的ThinkPHP文件夹下
如:/ThinkPHP/Library/Vendor/tcpdf

网上查了些关于tcpdf
使用教程,整合到TP的话,会有个别小意思,由于基础还不是很实在,花了点时间到底整合OK了。上面介绍步骤:

//实现的Wxpay钩子方法
    public function Wxpay($param){
      require './Addons/Wxpay/WxPayPubHelper/WxPayPubHelper.php';
      $jsApi = new \JsApi_pub(); 

      //=========步骤1:网页授权获取用户openid============
      if (!isset($_GET['code']))
      {
        //触发微信返回code码
        $url = $jsApi->createOauthUrlForCode(\WxPayConf_pub::JS_API_CALL_URL.'/order_id/'.$param['order_id']);
        Header("Location: $url");
      }else
      {
        $order_id = $param['order_id'];
        $info = M('Order')->where('id='.$order_id)->find();
        if(empty($info) || $info['is_pay'] == 1){
          dump('该订单不存在或已支付'.$order_id);
          exit();
        }
        $this->assign('info', $info);
        $a = $info['money'];
        $b = 100;
        $c = $a * $b;

        //获取code码,以获取openid
        $code = $_GET['code'];
        $jsApi->setCode($code);
        $openid = $jsApi->getOpenId();
      }

      //=========步骤2:使用统一支付接口,获取prepay_id============
      //使用统一支付接口
      $unifiedOrder = new \UnifiedOrder_pub();

      $unifiedOrder->setParameter("openid","$openid");//商品描述
      $unifiedOrder->setParameter("body","在线预订");//商品描述
      //自定义订单号,此处仅作举例
      $timeStamp = time();
//       $out_trade_no = \WxPayConf_pub::APPID."$timeStamp";
      $out_trade_no = $info['ordersn'];
      $unifiedOrder->setParameter("out_trade_no", "$out_trade_no");//商户订单号
      $unifiedOrder->setParameter("total_fee", "$c");//总金额
      $unifiedOrder->setParameter("notify_url",\WxPayConf_pub::NOTIFY_URL.'/order_id/'.$param['order_id']);//通知地址
      $unifiedOrder->setParameter("trade_type","JSAPI");//交易类型

      $prepay_id = $unifiedOrder->getPrepayId();
      //=========步骤3:使用jsapi调起支付============
      $jsApi->setPrepayId($prepay_id);
      $jsApiParameters = $jsApi->getParameters();
      $this->assign('jsApiParameters', $jsApiParameters);

      $this->display('pay');
    }

下载:支付SDK.rar)  

其余的不多说一贯上代码 

环境:

上述就是本文的全体内容,希望对大家学习PHP程序设计有所援救。

将微信支付SDK放在第②方类库Vendor上面,请牢记把WxPay.Config.php里面包车型大巴生意人消息修改为你的众生号音信,以幸免造成资金财产的消逝。

 导出考试结果明细
    public function export()
    {
    //  导出考试结果明细(PDF)
        $id = I('id');
        $detailed = D('member_test_result');
        $parameter = $detailed->detailedResults($id);
        $name = $parameter['member_name'];
        $result = json_decode($parameter['test_result_str']);
        foreach ($result as $k => $v) {
            $test = M('test_cont');
            $array['question_title'] = $test->where('id=' . $k)->getField('qustion_title');
            //正确选项
            $array['state'] = $test->where('id=' . $k)->getField('state');
            //正确答案
            $wheres['test_id'] = $k;
            $wheres['state'] = $array['state'];
            $array['stateresult'] = M('test_answer')->where($wheres)->getField('answer_name');
            //选项
            $array['cont'] = $v;
            //选项内容
            $where['test_id'] = $k;
            $where['state'] = $array['cont'];
            $array['result'] = M('test_answer')->where($where)->getField('answer_name');
            $data[] = $array;
        }
        $content = '<!doctype html>';
        $content .= '<html lang="en">';
        $content .= '<head>';
        $content .= '<meta charset="UTF-8" />';
        $content .= '<title>考试结果</title>';
        $content .= '</head>';
        $content .= '<body>';
        $content .= '<div class="content">';
        $content .= '<p align="center" style="color: #0a6ebd;font-size: 24px"><b>考试结果</b></p>';
        $content .= ' <div style="color:#6a6a6a;letter-spacing:4px">';
        $content .= '<p>姓名:';
        $content .= $name;
        $content .= '';
        $content .= '1231';
        $content .= '';
        $content .= '考试用时:';
        $content .= gmdate("i:s", $parameter['time_cost']);
        $content .= '';
        $content .= '1231';
        $content .= '';
        $content .= '考试分数:';
        $content .= $parameter['score'];
        $content .= '';
        $content .= '<hr/>';
        foreach ($data as $k => $v) {
            $content .= '<p style=font-size: 20px><b>';
            $content .= $k + 1;
            $content .= '、</b>';
            $content .= $v['question_title'];
            $content .= '</p>';
            $content .= '<p style=" font-size: 14px">您的选项为:';
            $content .= $v['cont'];
            $content .= '</p>';
            $content .= '<p style=" font-size: 14px">您的答案为:';
            $content .= $v['result'];
            $content .= '</p>';
            $content .= '<p style=" font-size: 14px">正确选项为:';
            $content .= $v['state'];
            $content .= '</p>';
            $content .= '<p style=" font-size: 14px">正确答案为:';
            $content .= $v['stateresult'];
            $content .= '</p>';
        };
        $content .= '</div>';
        $content .= '</body>';
        $content .= '</html>';
        pdf($content);

    }

pdf方法

function pdf($html){
  
    vendor('Tcpdf.tcpdf');
    $pdf = new \Tcpdf('P', 'mm', 'A4', true, 'UTF-8', false);
    // 设置打印模式,设置文档信息
    $pdf->SetCreator(PDF_CREATOR);
    $pdf->SetAuthor('Nicola Asuni');
    $pdf->SetTitle('Examination result(考试结果)');
    $pdf->SetSubject('TCPDF Tutorial');
    $pdf->SetKeywords('TCPDF, PDF, PHP, example, test, guide');
    // 是否显示页眉和是否显示页脚
    $pdf->setPrintHeader(false);
    $pdf->setPrintFooter(true);
    // 设置页眉和页脚信息内容
    $pdf->SetHeaderData('logo.jpg', 40, 'Helloweba.com', '小白测试', array(0,64,255), array(0,64,128));
    $pdf->setFooterData(array(0,64,0), array(0,64,128));
    // 设置页眉和页脚字体
    $pdf->setHeaderFont(Array('dejavusans', '', '12'));
    $pdf->setFooterFont(Array('dejavusans', '', '10'));
    // 设置间距
    $pdf->SetHeaderMargin('5');
    $pdf->SetFooterMargin('10');
    // 设置左、上、右的间距
    $pdf->SetMargins('10', '10', '10');
    // 设置是否自动分页  距离底部多少距离时分页
    $pdf->SetAutoPageBreak(TRUE, '15');
    // 设置默认等宽字体
    $pdf->SetDefaultMonospacedFont('courier');
    // 设置行高
    $pdf->setCellHeightRatio(1);
    // 设置图像比例因子
    $pdf->setImageScale(1.25);
    //设置默认字体子集模式
    $pdf->setFontSubsetting(true);
    // 设置字体
    $pdf->SetFont('stsongstdlight', '', 14, '', true);
    $pdf->AddPage();
    $pdf->writeHTMLCell(0, 0, '', '', $html, 0, 1, 0, true, '', true);
  //PDF输出   I:在浏览器中打开,D:下载,F:在服务器生成pdf ,S:只返回pdf的字符串
  $pdf->Output(rand_string('9').'.pdf', 'I');

}

TP版本:TP3.2.2

你可能感兴趣的篇章:

  • Thinkphp3.2.3整合phpqrcode生成带logo的二维码
  • ThinkPHP整合百度Ueditor图文化教育程
  • Thinkphp整合微信支付效用
  • thinkphp整合微信支付代码分享
  • thinkPHP5框架整合plupload达成图片批量上传功效的艺术
  • ThinkPHP 整合Bootstrap
    Ajax分页样式
  • ThinkPHP整合datatables完结服务端分页的演示代码
  • ThinkPHP上行使多说评论插件的点子
  • ThinkPHP3.2.2的插件控制器功效简述
  • 基于ThinkPHP5.0完毕图片上传插件
  • ThinkPHP使用Smarty第①方插件方法小结
  • thinkPHP框架整合tcpdf插件操作示例

php端代码

tcpdf:tcpdf_6_2_3

public function pay(){ 
  //商户基本信息,可以写死在WxPay.Config.php里面,其他详细参考WxPayConfig.php     
  vendor('Pay.JSAPI'); 
  $tools = new \JsApiPay(); 
  $openid = $tools->GetOpenid(); 
  $Out_trade_no=date('YHis').rand(100,1000); 
  $Total_fee='测试'; 
  $Body='啥也不说'; 
  $Total_fee=1; 
  $input = new \WxPayUnifiedOrder(); 
  $input->SetBody($Body); 
  $input->SetOut_trade_no($Out_trade_no); 
  $input->SetTotal_fee($Total_fee); 
  $input->SetNotify_url("http://xx.xxx.com/pay/notify.php"); 
  $input->SetTrade_type("JSAPI"); 
  $input->SetOpenid($openId); 
  $order = \WxPayApi::unifiedOrder($input); 
  $this->jsApiParameters = $tools->GetJsApiParameters($order); 
  $this->display(); 
} 

【亚洲必赢官网】Thinkphp和onethink达成微信支付插件,thinkPHP框架整合tcpdf插件操作示例。步骤:

 HTML端代码

  1. 将tcpdf_6_2_3.zip解压在Web
    root目录下边,把examples文件夹下边包车型大巴tcpdf_include.php文件拷贝到tcpdf文件夹上边,再把tcpdf/config/tcpdf_config.php内容替换来tcpdf/examples/config/tcpdf_config_alt.php中的内容
<!doctype html> 
<head> 
  <meta charset="UTF-8"> 
  <title>微信安全支付</title> 
  <meta name="keywords" content="" /> 
  <meta name="HandheldFriendly" content="True"> 
  <meta name="MobileOptimized" content="320"> 
  <meta name="format-detection" content="telephone=no"> 
  <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" /> 
  <meta http-equiv="Pragma" content="no-cache" /> 
  <meta http-equiv="Expires" content="0" /> 
  <meta http-equiv="cleartype" content="on"> 
  <meta id="viewport" name="viewport" content="width=320, initial-scale=1.0,maximum-scale=1.0, user-scalable=0," /> 
  <script type="text/javascript"> 
    //调用微信JS api 支付 
    function jsApiCall() 
    { 
      WeixinJSBridge.invoke( 
        'getBrandWCPayRequest', 
        {$jsApiParameters}, 
        function(res){ 
          WeixinJSBridge.log(res.err_msg); 
          if(res.err_msg == 'get_brand_wcpay_request:cancel') { 
            alert("您已取消了此次支付"); 
            return; 
          } else if(res.err_msg == 'get_brand_wcpay_request:fail') { 
            alert("支付失败"); 
            return; 
          } else if(res.err_msg == 'get_brand_wcpay_request:ok') { 
          alert("支付成功!");//跳转到订单页面 

        } else { 
          alert("未知错误"+res.error_msg); 
          return; 
        } 
      } 
      ); 
    } 
    function callpay() 
    { 
      if (typeof WeixinJSBridge == "undefined"){ 
        if( document.addEventListener ){ 
          document.addEventListener('WeixinJSBridgeReady', jsApiCall, false); 
        }else if (document.attachEvent){ 
          document.attachEvent('WeixinJSBridgeReady', jsApiCall);  
          document.attachEvent('onWeixinJSBridgeReady', jsApiCall); 
        } 
      }else{ 
        jsApiCall(); 
      } 
    } 
  </script> 
</head> 
<body> 
  <button type="button" class="btn btn-danger btn-lg btn-block" onclick="callpay()"> 
    确认支付 
  </button> 
</body> 
</html> 

那边要小心的是:tcp_include.php中
$tcpdf_include_dirs数组要多添加一行:“realpath('./').'/tcpdf/tcpdf.php',”

就那样容易。

  1. 新建test.php

上述正是本文的全体内容,希望对大家的读书抱有援助,也冀望大家多多扶助脚本之家。

<?php
// Include the main TCPDF library (search for installation path).
require_once('./tcpdf/tcpdf_include.php');
// create new PDF document
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
// set document information
$pdf->SetCreator(PDF_CREATOR);
$pdf->SetAuthor('Nicola Asuni');
$pdf->SetTitle('TCPDF Example');
$pdf->SetSubject('TCPDF Tutorial');
$pdf->SetKeywords('TCPDF, PDF, example, test, guide');
// set default header data
$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' wisvalley', PDF_HEADER_STRING);
// set header and footer fonts
$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));
// set default monospaced font
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
// set margins
$pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
$pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
$pdf->SetFooterMargin(PDF_MARGIN_FOOTER);
// set auto page breaks
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
// set image scale factor
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
// set some language-dependent strings (optional)
if (@file_exists(dirname(__FILE__).'/lang/eng.php')) {
 require_once(dirname(__FILE__).'/lang/eng.php');
 $pdf->setLanguageArray($l);
}
// ---------------------------------------------------------
// set font
//$pdf->SetFont('helvetica', '', 20);
$pdf->SetFont('stsongstdlight', '', 20);
// add a page
$pdf->AddPage();
$txt = 'your content';
$pdf->Write(0, $txt, '', 0, 'L', true, 0, false, false, 0);
$pdf->Output('/var/www/example_038.pdf', 'I');//浏览器预览
//$pdf->Output('example_038.pdf', 'F');//存储文件
//$pdf->Output('example_038.pdf', 'D');//下载文件

你可能感兴趣的小说:

  • Thinkphp3.2.3整合phpqrcode生成带logo的二维码
  • ThinkPHP整合百度Ueditor图像和文字化教育程
  • Thinkphp整合微信支付功用
  • thinkPHP5框架整合plupload达成图片批量上传效能的艺术
  • ThinkPHP 整合Bootstrap
    Ajax分页样式
  • ThinkPHP整合datatables实现服务端分页的以身作则代码
  • ThinkPHP上使用多说评论插件的主意
  • ThinkPHP3.2.2的插件控制器功用简述
  • 据悉ThinkPHP5.0完成图片上传插件
  • Thinkphp和onethink达成微信支付插件
  • ThinkPHP使用斯Matty第贰方插件方法小结
  • thinkPHP框架整合tcpdf插件操作示例

如此那般就足以了。

下边说下自己碰到的多少个问题:

1.笔者把那些代码拷贝到TP控制器的有个别方法里面报错:Class ‘Home\Controller\TCPDF’ not found

解答:

$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);

改成

$pdf = new \TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);

对此tp3.2引入了命名空间,那些‘\‘很重要

2.TCPDF ERROR: Unable to create output
file: example_亚洲必赢官网 ,038.pdf

解答:$pdf->Output('/var/www/example_038.pdf', 'I');路线要为据对路线。

附:tcpdf插件点击那里本站下载.rar)。

愈多关于thinkPHP相关内容感兴趣的读者可查阅本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧计算》、《ThinkPHP常用艺术总计》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《Zend
FrameWork框架入门教程》及《PHP模板技术总计》。

仰望本文所述对我们基于ThinkPHP框架的PHP程序设计具有扶助。

你只怕感兴趣的文章:

  • Thinkphp3.2.3整合phpqrcode生成带logo的二维码
  • ThinkPHP整合百度Ueditor图像和文字化教育程
  • Thinkphp整合微信支付功用
  • thinkphp整合微信支付代码分享
  • thinkPHP5框架整合plupload完毕图片批量上传功效的主意
  • ThinkPHP 整合Bootstrap
    Ajax分页样式
  • ThinkPHP整合datatables完结服务端分页的言传身教代码
  • ThinkPHP上行使多说评论插件的点子
  • ThinkPHP3.2.2的插件控制器作用简述
  • 依照ThinkPHP5.0达成图片上传插件
  • Thinkphp和onethink完毕微信支付插件
  • ThinkPHP使用Smarty第2方插件方法小结
网站地图xml地图