<ul id="5yi6e"></ul><blockquote id="5yi6e"><b id="5yi6e"><em id="5yi6e"></em></b></blockquote>
  • \r\n 購買<\/button>\r\n \r\n  <\/div>\r\n <\/body>\r\n <\/html><\/pre>

    WxJsAPIController.class.php<\/p>

    redirect('WxJsAPI\/jsApiCall',array('id' =>55),0, '頁面跳轉(zhuǎn)中...');\r\n      我是這樣穿這個id過來的值得你們也可以自己改成其他的來傳這個id 或是刪除他不要\r\n      *\/\r\n        \r\n \r\n      $url = $jsApi->createOauthUrlForCode($rUrl);\r\n      \/\/ echo $url;exit();\r\n      Header(\"Location: $url\");\r\n    }else\r\n    {\r\n \r\n      \/\/獲取code碼,以獲取openid\r\n      $code = $_GET['code'];\r\n      $jsApi->setCode($code);\r\n      $openid = $jsApi->getOpenId();\/\/openid 這里是為了獲取用戶當(dāng)前的openid 如果你有做微信登陸的話就可以無視他。\r\n    }\r\n \r\n \r\n \r\n    \/\/=========步驟2:使用統(tǒng)一支付接口,獲取prepay_id============\r\n    \/\/使用統(tǒng)一支付接口\r\n    $unifiedOrder = new \\UnifiedOrder_pub();\r\n \r\n      \/*此處做數(shù)據(jù)庫的查詢 這里操作數(shù)據(jù)庫把產(chǎn)品信息顯示出來*\/\r\n \r\n      \/*此處做數(shù)據(jù)庫的查詢 這里操作數(shù)據(jù)庫把產(chǎn)品信息顯示出來*\/\r\n \r\n \r\n    \/\/設(shè)置統(tǒng)一支付接口參數(shù)\r\n    \/\/設(shè)置必填參數(shù)\r\n    \/\/appid已填,商戶無需重復(fù)填寫\r\n    \/\/mch_id已填,商戶無需重復(fù)填寫\r\n    \/\/noncestr已填,商戶無需重復(fù)填寫\r\n    \/\/spbill_create_ip已填,商戶無需重復(fù)填寫\r\n    \/\/sign已填,商戶無需重復(fù)填寫\r\n    \/\/\r\n \r\n    $NOTIFY_URL=\"你的域名\/index.php\/Home\/WxJsAPI\/notify\";\r\n \r\n    $unifiedOrder->setParameter(\"openid\",$openid);\/\/openid\r\n    $unifiedOrder->setParameter(\"body\",'商品的名字');\/\/商品描述\r\n    $unifiedOrder->setParameter(\"out_trade_no\",'123456789');\/\/商戶訂單號\r\n    $unifiedOrder->setParameter(\"total_fee\",1*100);\/\/總金額 微信的錢1*100等于1\r\n    $unifiedOrder->setParameter(\"notify_url\",$NOTIFY_URL);\/\/通知地址\r\n   \r\n \r\n    $unifiedOrder->setParameter(\"trade_type\",\"JSAPI\");\/\/交易類型\r\n    \/\/非必填參數(shù),商戶可根據(jù)實(shí)際情況選填\r\n    \/\/$unifiedOrder->setParameter(\"sub_mch_id\",\"XXXX\");\/\/子商戶號\r\n    \/\/$unifiedOrder->setParameter(\"device_info\",\"XXXX\");\/\/設(shè)備號\r\n    \/\/$unifiedOrder->setParameter(\"attach\",\"XXXX\");\/\/附加數(shù)據(jù)\r\n    \/\/$unifiedOrder->setParameter(\"time_start\",\"XXXX\");\/\/交易起始時間\r\n    \/\/$unifiedOrder->setParameter(\"time_expire\",\"XXXX\");\/\/交易結(jié)束時間\r\n    \/\/$unifiedOrder->setParameter(\"goods_tag\",\"XXXX\");\/\/商品標(biāo)記\r\n    \/\/$unifiedOrder->setParameter(\"openid\",\"XXXX\");\/\/用戶標(biāo)識\r\n    \/\/$unifiedOrder->setParameter(\"product_id\",\"XXXX\");\/\/商品ID\r\n   \r\n \r\n    $prepay_id = $unifiedOrder->getPrepayId();\r\n \r\n    \/\/ echo $prepay_id;exit();\r\n    \/\/=========步驟3:使用jsapi調(diào)起支付============\r\n    $jsApi->setPrepayId($prepay_id);\r\n     \r\n    $jsApiParameters = $jsApi->getParameters();\r\n \r\n    $WEB_HOST='你的域名';\/\/填寫的話 如 http:\/\/nicaicai.imwork.net 最后面不用加 \/\r\n    $this->assign('HOSTS',$WEB_HOST);\r\n    $this->assign('jsApiParameters',$jsApiParameters);\r\n    $this->display();\r\n    \/\/echo $jsApiParameters;\r\n \r\n  }\r\n \r\n \r\n  public function notify()\r\n  {\r\n    \/\/使用通用通知接口\r\n    $notify = new \\Notify_pub();\r\n \r\n    \/\/存儲微信的回調(diào)\r\n    $xml = $GLOBALS['HTTP_RAW_POST_DATA'];   \r\n \r\n    $notify->saveData($xml);\r\n     \r\n \r\n    \/\/驗(yàn)證簽名,并回應(yīng)微信。\r\n    \/\/對后臺通知交互時,如果微信收到商戶的應(yīng)答不是成功或超時,微信認(rèn)為通知失敗,\r\n    \/\/微信會通過一定的策略(如30分鐘共8次)定期重新發(fā)起通知,\r\n    \/\/盡可能提高通知的成功率,但微信不保證通知最終能成功。\r\n    if($notify->checkSign() == FALSE){\r\n \r\n      $notify->setReturnParameter(\"return_code\",\"FAIL\");\/\/返回狀態(tài)碼\r\n      $notify->setReturnParameter(\"return_msg\",\"簽名失敗了啊\");\/\/返回信息\r\n    }else{\r\n      $notify->setReturnParameter(\"return_code\",\"SUCCESS\");\/\/設(shè)置返回碼\r\n    }\r\n    $returnXml = $notify->returnXml();\r\n    echo $returnXml;\r\n     \r\n    \/\/==商戶根據(jù)實(shí)際情況設(shè)置相應(yīng)的處理流程,此處僅作舉例=======\r\n     \r\n    \/\/以log文件形式記錄回調(diào)信息\r\n     \/\/ $log_ = new Log_();\r\n    $log_name= __ROOT__.\"\/Public\/notify_url.log\";\/\/log文件路徑\r\n     \r\n     \r\n    if($notify->checkSign() == TRUE)\r\n    {\r\n      if ($notify->data[\"return_code\"] == \"FAIL\") {\r\n \r\n \r\n        \/\/此處應(yīng)該更新一下訂單狀態(tài),商戶自行增刪操作\r\n        log_result($log_name,\"【通信出錯】:\\n\".$xml.\"\\n\");\r\n      }\r\n      elseif($notify->data[\"result_code\"] == \"FAIL\"){\r\n     \r\n \r\n        \/\/此處應(yīng)該更新一下訂單狀態(tài),商戶自行增刪操作\r\n        log_result($log_name,\"【業(yè)務(wù)出錯】:\\n\".$xml.\"\\n\");\r\n      }\r\n      else{ \r\n \r\n  \/*查看支付成功的返回值請去 https:\/\/pay.weixin.qq.com\/wiki\/doc\/api\/jsapi.php?chapter=9_1 *\/\r\n \r\n  $xmlss=$notify->data[\"out_trade_no\"];\/\/訂單號\r\n  $total_fee=$notify->data['total_fee'];\/\/訂單總金額,單位為分,詳見支付金額\r\n     \r\n \r\n    \/*更新訂單狀態(tài)這里寫數(shù)據(jù)庫的操作*\/\r\n    \r\n  \/*更新訂單狀態(tài)這里寫數(shù)據(jù)庫的操作*\/\r\n \r\n \r\n        \/\/此處應(yīng)該更新一下訂單狀態(tài),商戶自行增刪操作\r\n        log_result($log_name,\"【支付成功】:\\n\".$xml.\"\\n\");\r\n      }\r\n     \r\n      \/\/商戶自行增加處理流程,\r\n      \/\/例如:更新訂單狀態(tài)\r\n      \/\/例如:數(shù)據(jù)庫操作\r\n      \/\/例如:推送支付完成信息\r\n    }\r\n  }\r\n \r\n  \/\/ 打印log\r\n  public function log_result($file,$word)\r\n  {\r\n    $fp = fopen($file,\"a\");\r\n    flock($fp, LOCK_EX) ;\r\n    fwrite($fp,\"執(zhí)行日期:\".strftime(\"%Y-%m-%d-%H:%M:%S\",time()).\"\\n\".$word.\"\\n\\n\");\r\n    flock($fp, LOCK_UN);\r\n    fclose($fp);\r\n  }\r\n \r\n}\r\n \r\n \r\n?><\/pre>

    以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多PHP中文網(wǎng)。 <\/p>\n

    更多Thinkphp微信公眾號支付介面相關(guān)文章請追蹤PHP中文網(wǎng)! <\/p>"}

    亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

    首頁 微信小程式 微信開發(fā) Thinkphp微信公眾號支付接口

    Thinkphp微信公眾號支付接口

    Feb 04, 2017 am 11:34 AM

    本文實(shí)例為大家分享了Thinkphp微信公眾號支付接口,供大家參考,具體內(nèi)容如下

    第一步??先把文件夾的那兩個圖片 配置成一樣的路徑 除了域名要改 其他保持一致。

    第二步? 把Weixinpay 這個資料夾放在ThinkPHPLibraryVendor? 將Weixinpay資料夾放在這個Vendor資料夾中

    第三步?? WxJsAPIController.class.php文件夾? 放置在HomeView? 這個里面

    第五步?成功調(diào)用微信公眾號支付功能

    jsApiCall.html

    <!DOCTYPE html>
     <html>
     <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta name=&#39;viewport&#39; content=&#39;width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0&#39;/>
      <title>微信安全支付</title>
     
     
     
      <script type="text/javascript">
        //調(diào)用微信JS api 支付
        function jsApiCall()
        {
          WeixinJSBridge.invoke(
            &#39;getBrandWCPayRequest&#39;,
            <?php echo $jsApiParameters; ?>,
            function(res){
              WeixinJSBridge.log(res.err_msg);
              if(res.err_msg == "get_brand_wcpay_request:ok"){
              //alert(res.err_code+res.err_desc+res.err_msg);
                /*這里寫如果支付成功的話執(zhí)行什么操作*/
              }else{
                //返回跳轉(zhuǎn)到訂單詳情頁面
                alert(支付失敗);
                   
              }
            }
          );
        }
        function callpay()
        {
          if (typeof WeixinJSBridge == "undefined"){
            if( document.addEventListener ){
              document.addEventListener(&#39;WeixinJSBridgeReady&#39;, jsApiCall, false);
            }else if (document.attachEvent){
              document.attachEvent(&#39;WeixinJSBridgeReady&#39;, jsApiCall); 
              document.attachEvent(&#39;onWeixinJSBridgeReady&#39;, jsApiCall);
            }
          }else{
            jsApiCall();
          }
       
       
        }
      
     
     
     
      
      </script>
     </head>
     <body>
     <button style="width:210px; height:30px; background-color:#FE6714; border:0px #FE6714 solid; cursor: pointer; color:white; font-size:16px;" type="button" onclick="jsApiCall()" id="asd" >購買</button>
     
      </div>
     </body>
     </html>

    WxJsAPIController.class.php

    <?php
     
    namespace Home\Controller;
    use Think\Controller;
     
    class WxJsAPIController extends Controller{
      public function _initialize()
      {
        //引入WxPayPubHelper
        vendor(&#39;Weixinpay.WxPayPubHelper&#39;);
      }  
     
      public function jsApiCall()
      {  
     
        //使用jsapi接口
        $jsApi = new \JsApi_pub();
         
        //=========步驟1:網(wǎng)頁授權(quán)獲取用戶openid============
        //通過code獲得openid
        //
        //
     
        if (!isset($_GET[&#39;code&#39;]))
        {
          //觸發(fā)微信返回code碼
          $rUrl=urlencode(C(&#39;WxConfig.JS_API_CALL_URL&#39;).&#39;/id/&#39;.$_GET[id]);  
          /*注意一下這個 id 是為了可以成功的傳個 id值才這樣寫 如果你不需要的話也可以直接寫成
      $rUrl=urlencode(C(&#39;WxConfig.JS_API_CALL_URL&#39;));
     
          $this->redirect(&#39;WxJsAPI/jsApiCall&#39;,array(&#39;id&#39; =>55),0, &#39;頁面跳轉(zhuǎn)中...&#39;);
          我是這樣穿這個id過來的值得你們也可以自己改成其他的來傳這個id 或是刪除他不要
          */
            
     
          $url = $jsApi->createOauthUrlForCode($rUrl);
          // echo $url;exit();
          Header("Location: $url");
        }else
        {
     
          //獲取code碼,以獲取openid
          $code = $_GET[&#39;code&#39;];
          $jsApi->setCode($code);
          $openid = $jsApi->getOpenId();//openid 這里是為了獲取用戶當(dāng)前的openid 如果你有做微信登陸的話就可以無視他。
        }
     
     
     
        //=========步驟2:使用統(tǒng)一支付接口,獲取prepay_id============
        //使用統(tǒng)一支付接口
        $unifiedOrder = new \UnifiedOrder_pub();
     
          /*此處做數(shù)據(jù)庫的查詢 這里操作數(shù)據(jù)庫把產(chǎn)品信息顯示出來*/
     
          /*此處做數(shù)據(jù)庫的查詢 這里操作數(shù)據(jù)庫把產(chǎn)品信息顯示出來*/
     
     
        //設(shè)置統(tǒng)一支付接口參數(shù)
        //設(shè)置必填參數(shù)
        //appid已填,商戶無需重復(fù)填寫
        //mch_id已填,商戶無需重復(fù)填寫
        //noncestr已填,商戶無需重復(fù)填寫
        //spbill_create_ip已填,商戶無需重復(fù)填寫
        //sign已填,商戶無需重復(fù)填寫
        //
     
        $NOTIFY_URL="你的域名/index.php/Home/WxJsAPI/notify";
     
        $unifiedOrder->setParameter("openid",$openid);//openid
        $unifiedOrder->setParameter("body",&#39;商品的名字&#39;);//商品描述
        $unifiedOrder->setParameter("out_trade_no",&#39;123456789&#39;);//商戶訂單號
        $unifiedOrder->setParameter("total_fee",1*100);//總金額 微信的錢1*100等于1
        $unifiedOrder->setParameter("notify_url",$NOTIFY_URL);//通知地址
       
     
        $unifiedOrder->setParameter("trade_type","JSAPI");//交易類型
        //非必填參數(shù),商戶可根據(jù)實(shí)際情況選填
        //$unifiedOrder->setParameter("sub_mch_id","XXXX");//子商戶號
        //$unifiedOrder->setParameter("device_info","XXXX");//設(shè)備號
        //$unifiedOrder->setParameter("attach","XXXX");//附加數(shù)據(jù)
        //$unifiedOrder->setParameter("time_start","XXXX");//交易起始時間
        //$unifiedOrder->setParameter("time_expire","XXXX");//交易結(jié)束時間
        //$unifiedOrder->setParameter("goods_tag","XXXX");//商品標(biāo)記
        //$unifiedOrder->setParameter("openid","XXXX");//用戶標(biāo)識
        //$unifiedOrder->setParameter("product_id","XXXX");//商品ID
       
     
        $prepay_id = $unifiedOrder->getPrepayId();
     
        // echo $prepay_id;exit();
        //=========步驟3:使用jsapi調(diào)起支付============
        $jsApi->setPrepayId($prepay_id);
         
        $jsApiParameters = $jsApi->getParameters();
     
        $WEB_HOST=&#39;你的域名&#39;;//填寫的話 如 http://nicaicai.imwork.net 最后面不用加 /
        $this->assign(&#39;HOSTS&#39;,$WEB_HOST);
        $this->assign(&#39;jsApiParameters&#39;,$jsApiParameters);
        $this->display();
        //echo $jsApiParameters;
     
      }
     
     
      public function notify()
      {
        //使用通用通知接口
        $notify = new \Notify_pub();
     
        //存儲微信的回調(diào)
        $xml = $GLOBALS[&#39;HTTP_RAW_POST_DATA&#39;];   
     
        $notify->saveData($xml);
         
     
        //驗(yàn)證簽名,并回應(yīng)微信。
        //對后臺通知交互時,如果微信收到商戶的應(yīng)答不是成功或超時,微信認(rèn)為通知失敗,
        //微信會通過一定的策略(如30分鐘共8次)定期重新發(fā)起通知,
        //盡可能提高通知的成功率,但微信不保證通知最終能成功。
        if($notify->checkSign() == FALSE){
     
          $notify->setReturnParameter("return_code","FAIL");//返回狀態(tài)碼
          $notify->setReturnParameter("return_msg","簽名失敗了啊");//返回信息
        }else{
          $notify->setReturnParameter("return_code","SUCCESS");//設(shè)置返回碼
        }
        $returnXml = $notify->returnXml();
        echo $returnXml;
         
        //==商戶根據(jù)實(shí)際情況設(shè)置相應(yīng)的處理流程,此處僅作舉例=======
         
        //以log文件形式記錄回調(diào)信息
         // $log_ = new Log_();
        $log_name= __ROOT__."/Public/notify_url.log";//log文件路徑
         
         
        if($notify->checkSign() == TRUE)
        {
          if ($notify->data["return_code"] == "FAIL") {
     
     
            //此處應(yīng)該更新一下訂單狀態(tài),商戶自行增刪操作
            log_result($log_name,"【通信出錯】:\n".$xml."\n");
          }
          elseif($notify->data["result_code"] == "FAIL"){
         
     
            //此處應(yīng)該更新一下訂單狀態(tài),商戶自行增刪操作
            log_result($log_name,"【業(yè)務(wù)出錯】:\n".$xml."\n");
          }
          else{ 
     
      /*查看支付成功的返回值請去 https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_1 */
     
      $xmlss=$notify->data["out_trade_no"];//訂單號
      $total_fee=$notify->data[&#39;total_fee&#39;];//訂單總金額,單位為分,詳見支付金額
         
     
        /*更新訂單狀態(tài)這里寫數(shù)據(jù)庫的操作*/
        
      /*更新訂單狀態(tài)這里寫數(shù)據(jù)庫的操作*/
     
     
            //此處應(yīng)該更新一下訂單狀態(tài),商戶自行增刪操作
            log_result($log_name,"【支付成功】:\n".$xml."\n");
          }
         
          //商戶自行增加處理流程,
          //例如:更新訂單狀態(tài)
          //例如:數(shù)據(jù)庫操作
          //例如:推送支付完成信息
        }
      }
     
      // 打印log
      public function log_result($file,$word)
      {
        $fp = fopen($file,"a");
        flock($fp, LOCK_EX) ;
        fwrite($fp,"執(zhí)行日期:".strftime("%Y-%m-%d-%H:%M:%S",time())."\n".$word."\n\n");
        flock($fp, LOCK_UN);
        fclose($fp);
      }
     
    }
     
     
    ?>

    以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多PHP中文網(wǎng)。

    更多Thinkphp微信公眾號支付介面相關(guān)文章請追蹤PHP中文網(wǎng)!

    本網(wǎng)站聲明
    本文內(nèi)容由網(wǎng)友自願投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請聯(lián)絡(luò)admin@php.cn

    熱AI工具

    Undress AI Tool

    Undress AI Tool

    免費(fèi)脫衣圖片

    Undresser.AI Undress

    Undresser.AI Undress

    人工智慧驅(qū)動的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

    AI Clothes Remover

    AI Clothes Remover

    用於從照片中去除衣服的線上人工智慧工具。

    Clothoff.io

    Clothoff.io

    AI脫衣器

    Video Face Swap

    Video Face Swap

    使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

    熱工具

    記事本++7.3.1

    記事本++7.3.1

    好用且免費(fèi)的程式碼編輯器

    SublimeText3漢化版

    SublimeText3漢化版

    中文版,非常好用

    禪工作室 13.0.1

    禪工作室 13.0.1

    強(qiáng)大的PHP整合開發(fā)環(huán)境

    Dreamweaver CS6

    Dreamweaver CS6

    視覺化網(wǎng)頁開發(fā)工具

    SublimeText3 Mac版

    SublimeText3 Mac版

    神級程式碼編輯軟體(SublimeText3)

    熱門話題

    Laravel 教程
    1597
    29
    PHP教程
    1488
    72