HOME 首頁
SERVICE 服務(wù)產(chǎn)品
XINMEITI 新媒體代運營
CASE 服務(wù)案例
NEWS 熱點資訊
ABOUT 關(guān)于我們
CONTACT 聯(lián)系我們
創(chuàng)意嶺
讓品牌有溫度、有情感
專注品牌策劃15年

    PHP部署ChatGPT(php部署環(huán)境)

    發(fā)布時間:2023-03-12 03:34:56     稿源: 創(chuàng)意嶺    閱讀: 64        問大家

    大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關(guān)于PHP部署ChatGPT的問題,以下是小編對此問題的歸納整理,讓我們一起來看看吧。

    ChatGPT國內(nèi)免費在線使用,能給你生成想要的原創(chuàng)文章、方案、文案、工作計劃、工作報告、論文、代碼、作文、做題和對話答疑等等

    你只需要給出你的關(guān)鍵詞,它就能返回你想要的內(nèi)容,越精準,寫出的就越詳細,有微信小程序端、在線網(wǎng)頁版、PC客戶端,官網(wǎng):https://ai.de1919.com

    本文目錄:

    PHP部署ChatGPT(php部署環(huán)境)

    一、php小程序前端轉(zhuǎn)化為h5

    對于h5中生成海報大家都不陌生 最常見的方法是前端生成 用html2canvas 但是弊端就是畫質(zhì)太差 網(wǎng)上很多方法 但是依然不是很管用 最近做的h5中 用了php來生成 畫質(zhì)簡直美得不行 1)采用熟練的JSP框架,每人一天可以改造2個頁面左右,計劃投入2人,風(fēng)險最小雖然開發(fā)方法類似網(wǎng)頁,但實際上是一種只能運行在微信自己開發(fā)的瀏覽器中的特殊網(wǎng)頁,它所能夠使用的所有功能都必須由微信瀏覽器提供;

    H5頁面:這是真正的網(wǎng)頁應(yīng)用,運行在通用瀏覽器中,各種瀏覽器雖然在細微上有所差別,但總的來說是一致的,微信瀏覽器同時也是一種通用瀏覽器,能夠支持真正的網(wǎng)頁應(yīng)用。

    因此我們才有可能在微信小程序和H5頁面之間進行跳轉(zhuǎn),但這種跳轉(zhuǎn)是受到微信瀏覽器的嚴格控制的,因此我們有必要了解這些控制包括哪些。

    H5頁面所在的域名:假設(shè)你需要調(diào)轉(zhuǎn)的H5頁面URL為https://www.mysite.com/h5page,那么這里所說的域名就是www.mysite.com,另外你沒有看錯,這個URL必須是https,如果你還沒有為你的網(wǎng)站加上SSL,那么就先去申請一個證書吧(注意必須是公開申請的證書,不能是自簽名的,微信不認哦!)

    好了,這些都準備好了,讓我們開始開發(fā)一個小例子。

    由于web-view組件是一個全屏組件,不能和其它小程序組件合用,因此需要獨立占據(jù)一個頁面,所以我們到例子就是在小程序的A頁面加一個鏈接,跳轉(zhuǎn)到B頁面,然后在B頁面使用web-view組件來加載H5頁面。

    2)采用主流分布式Vue框架,時間未知,風(fēng)險未知;

    首先自我介紹下,本人是一名JAVA開發(fā)工程師,平時喜歡研究相關(guān)主流技術(shù)和挑戰(zhàn)自己。對此我還是比較傾向于第二種解決方案,但是第二種解決方案無疑是最復(fù)雜,最耗時,最未知,風(fēng)險最大。公司內(nèi)沒有人愿意承接。于是我抱著學(xué)習(xí)和研究的態(tài)度以及對主流技術(shù)的向往,我找到我們領(lǐng)導(dǎo)我是這樣說的:我還是比較建議公司采用第二種方案。1)這無疑是給我們進行敲門磚及學(xué)習(xí)的機會;2)這是公司提升前端技術(shù)能力與主流技術(shù)看齊的機會。最后公司同意了我建議,采用方案二,有我來承接此事,進行牽頭負責(zé)。

    中間心酸過程忽略,剛接下來第一天就后悔了,VUE用都沒用過,還怎么玩。于是我花了大量的時間,看了大量文獻,我這里使用到是Vue 2 + Vant 2 + axios + router。原來并不是什么網(wǎng)址拿來就可以設(shè)置跳轉(zhuǎn)的,你的小程序中就不能直接跳轉(zhuǎn)到百度上去,小程序能夠跳轉(zhuǎn)的域名必須在業(yè)務(wù)域名中進行注冊,總算這次是在小程序開發(fā)號里面設(shè)置了,但注意在服務(wù)號的設(shè)置里也有業(yè)務(wù)域名這個設(shè)置,不要搞混了(話說微信起名也太沒有想象力了,簡直是一坨漿糊)。這時候控制權(quán)已經(jīng)從小程序轉(zhuǎn)移到了H5頁面,但微信頁面跳轉(zhuǎn)內(nèi)部的機制比較復(fù)雜,涉及到了OAuth認證之類的,所以這個錯誤已經(jīng)是H5頁面報的了,這就需要到H5頁面關(guān)聯(lián)的服務(wù)號中去進行設(shè)置,這次設(shè)置的項目叫做網(wǎng)頁授權(quán)域名,在公眾號設(shè)置的功能設(shè)置里由于小程序官方?jīng)]有提供外部H5網(wǎng)頁直接跳轉(zhuǎn)到小程序的api,所以目前只支持小程序內(nèi)嵌H5,并且只有內(nèi)嵌的H5才能跳回小程序在微信開發(fā)中工具里返回“{"base_resp":{"ret":-1}}”時,需要點左上角“設(shè)置”--“項目設(shè)置”--勾選“不校驗合法域名、web-view(業(yè)務(wù)域名)、TLS 版本以及 HTTPS 證書” 源碼中驗證使用的是session 來校驗驗證碼是否正確。我這邊前端是小程序無法存session改用框架自帶的緩存。

    這里講一點轉(zhuǎn)Taro的調(diào)試經(jīng)驗,有報錯的文件先拎出來放在一邊,因為es5,6語法差異,很多js文件轉(zhuǎn)es6是不支持的,所以會報錯,建議是先把所有報錯的文件注釋,或者改成es6寫法再轉(zhuǎn)。我這邊是去掉了很多的文件才轉(zhuǎn)成功了的。這里需要自己一步一步調(diào)試解決報錯,轉(zhuǎn)成功之后根目錄多出來一個taroConvert的文件夾這說明已經(jīng)轉(zhuǎn)Taro成功了,接下來就是運行以及二次開發(fā)。

    進入taroConvert文件夾(二次開發(fā)就在這個文件里面,小程序代碼不用管了),執(zhí)行命令 npm install 或者cnpm install 先拉取所有依賴。

    可以看一下package.json文件的運行命令以及安裝的依賴,我這里是要運行H5的,輸入命令 npm run dev:h5打開H5開發(fā)模式,這個步驟有可能會有個nerv.js不存在的報錯,可以安裝一下,然后在你文件src下面的的app.js import一下。

    執(zhí)行命令 import Nerv from 'nervjs',這個報錯就會解決。其它的頁面代碼報錯可以自己調(diào)試。開啟成功的話瀏覽器中會打開127.0.0.1:8082的窗口運行項目。

    二、微信小程序怎么向外部php文件傳遞參數(shù)

    PAY頁面往 js_api_call.php 傳值 獲取不到的問題

    echo 是可以echo出來的 但是

    這里不寫死就會報錯 $key0$

    <?php

    /**

    * JS_API支付demo

    * ====================================================

    * 在微信瀏覽器里面打開H5網(wǎng)頁中執(zhí)行JS調(diào)起支付。接口輸入輸出數(shù)據(jù)格式為JSON。

    * 成功調(diào)起支付需要三個步驟:

    * 步驟1:網(wǎng)頁授權(quán)獲取用戶openid

    * 步驟2:使用統(tǒng)一支付接口,獲取prepay_id

    * 步驟3:使用jsapi調(diào)起支付

    */

    //獲取信息

    @$name="支付測試-包包";

    @$price=0.01*100;

    @$hyid=$_GET['hyid'];

    @$out_trade_no=$_GET['num'];//訂單號

    include_once("../WxPayPubHelper/WxPayPubHelper.php");

    //使用jsapi接口

    $jsApi = new JsApi_pub();

    //=========步驟1:網(wǎng)頁授權(quán)獲取用戶openid============

    //通過code獲得openid

    if (!isset($_GET['code']))

    {

    //觸發(fā)微信返回code碼

    $url = $jsApi->createOauthUrlForCode(WxPayConf_pub::JS_API_CALL_URL);

    Header("Location: $url");

    }else

    {

    //獲取code碼,以獲取openid

    $code = $_GET['code'];

    $jsApi->setCode($code);

    $openid = $jsApi->getOpenId();

    }

    //=========步驟2:使用統(tǒng)一支付接口,獲取prepay_id============

    //使用統(tǒng)一支付接口

    $unifiedOrder = new UnifiedOrder_pub();

    //設(shè)置統(tǒng)一支付接口參數(shù)

    //設(shè)置必填參數(shù)

    //appid已填,商戶無需重復(fù)填寫

    //mch_id已填,商戶無需重復(fù)填寫

    //noncestr已填,商戶無需重復(fù)填寫

    //spbill_create_ip已填,商戶無需重復(fù)填寫

    //sign已填,商戶無需重復(fù)填寫

    $unifiedOrder->setParameter("openid","$openid");//商品描述

    $unifiedOrder->setParameter("body","$name");//商品描述

    //自定義訂單號,此處僅作舉例

    $timeStamp = time();

    $out_trade_no = WxPayConf_pub::APPID."$timeStamp";

    $unifiedOrder->setParameter("out_trade_no","$out_trade_no");//商戶訂單號

    $unifiedOrder->setParameter("total_fee","$price");//總金額

    $unifiedOrder->setParameter("notify_url","http://youjia.pinpai365.cn/weixinpay/demo/notify_url.php");//通知地址

    $unifiedOrder->setParameter("trade_type","JSAPI");//交易類型

    //非必填參數(shù),商戶可根據(jù)實際情況選填

    //$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");//商品標記

    $unifiedOrder->setParameter("attach","2");//會員ID

    $prepay_id = $unifiedOrder->getPrepayId();

    //=========步驟3:使用jsapi調(diào)起支付============

    $jsApi->setPrepayId($prepay_id);

    $jsApiParameters = $jsApi->getParameters();

    //echo $jsApiParameters;

    ?>

    <html>

    <head>

    <meta charset="utf-8">

    <title>支付頁面</title>

    <script type="text/javascript">

    //調(diào)用微信JS api 支付

    function jsApiCall()

    {

    WeixinJSBridge.invoke(

    'getBrandWCPayRequest',

    <?php echo $jsApiParameters; ?>,

    function(res){

    WeixinJSBridge.log(res.err_msg);

    if(res.err_msg == "get_brand_wcpay_requestk"){

    window.location.href='/shop/successful.php?spmc=<?php echo $name; ?>&&price=<?php echo $price; ?>';

    //history.go(-1);

    }else{

    window.location.href='/shop/pay.php';

    }

    }

    );

    }

    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>

    </html>

    三、微信紅包PHP怎么開發(fā)

    代碼有兩個php文件

    1.oauth4.php

    <?php

    $code=$_GET['code'];

    $state=$_GET['state'];

    $appid='XXXX';

    $appsecret='XXXXXXXX';//

    if (empty($code)) $this->error('授權(quán)失敗');

    $token_url='https://api.weixin.qq.com/sns/oauth4/access_token?appid='.$appid'&secret='.$appsecret.'&code='.$code.'&grant_type=authorization_code';

    $token=json_decode(file_get_contents($token_url));

    if (isset($token->errcode)) {

    echo '<h1>錯誤1</h1>'.$token->errcode;

    echo '<br/><h4>錯誤信息1:</h4>'.$token->errmsg;

    exit;

    }

    session_start();

    $_SESSION['openid']= $token->openid;

    header('location:url/redpack.php');//要跳轉(zhuǎn)的文件路徑

    ?>

    2.redpack.php

    <?php

    //XXXXX。。是需要開發(fā)者自己填寫的內(nèi)容,注意不要泄密

     // 從session中獲取到openid;

    $openid=$_SESSION["openid"];

        if(empty($openid))

        {

    header('location:https://open.weixin.qq.com/connect/oauth4/authorize?appid=XXXXXXXX&redirect_uri=http://www.XXXXXXX.com/oauth4.php&respose_type=code&scope=snsapi_base&state=XXXX&connect_redirect=1#wechat_redirect');

        }

    }

    // 關(guān)鍵的函數(shù)

    public function weixin_red_packet(){

      // 請求參數(shù)

      // 隨機字符串

      $data['nonce_str']=$this->get_unique_value();

      //商戶號,輸入你的商戶號

      $data['mch_id']="XXXXXXX";

      //商戶訂單號,可以按要求自己組合28位的商戶訂單號

      $data['mch_billno']=$data['mch_id'].date("ymd")."XXXXXX".rand(1000,9999);

      //公眾帳號appid,輸入自己的公眾號appid

      $data['wxappid']="XXXXXXX";

      //商戶名稱

      $data['send_name']="XXXXX";

      //用戶openid,輸入待發(fā)紅包的用戶openid

      session_start();

      $data['re_openid']=$_SESSION["openid"];

      //付款金額

      $data['total_amount']="XXXX";

      //紅包發(fā)放總?cè)藬?shù)

      $data['total_num']="XXXX";

      //紅包祝福語

      $data['wishing']="XXXX";

      //IP地址

      $data['client_ip']=$_SERVER['LOCAL_ADDR'];

      //活動名稱

      $data['act_name']="XXXXX";

      //備注

      $data['remark']="XXXXX";

      // 生成簽名

      //對數(shù)據(jù)數(shù)組進行處理

      //API密鑰,輸入自己的K 微信商戶號里面的K

      $appsecret="XXXXXXXXXXXXXX"; //

      $data=array_filter($data);

      ksort($data);

      $str="";

      foreach($data as $k=>$v){

        $str.=$k."=".$v."&";

      }

      $str.="key=".$appsecret;

      $data['sign']=strtoupper(MD5($str));

      /*

        發(fā)紅包操作過程:

          1.將請求數(shù)據(jù)轉(zhuǎn)換成xml

          2.發(fā)送請求

          3.將請求結(jié)果轉(zhuǎn)換為數(shù)組

          4.將請求信息和請求結(jié)果錄入到數(shù)據(jù)庫中

          4.判斷是否通信成功

          5.判斷是否轉(zhuǎn)賬成功

       */

      //發(fā)紅包接口地址

      $url="https://api.mch.weixin.qq.com/mmpaymkttransfers/sendredpack";

      //將請求數(shù)據(jù)由數(shù)組轉(zhuǎn)換成xml

      $xml=$this->arraytoxml($data);

      //進行請求操作

      $res=$this->curl($xml,$url);

      //將請求結(jié)果由xml轉(zhuǎn)換成數(shù)組

      $arr=$this->xmltoarray($res);

    }

    // 生成32位唯一隨機字符串

    private function get_unique_value(){

      $str=uniqid(mt_rand(),1);

      $str=sha1($str);

      return md5($str);

    }

    // 將數(shù)組轉(zhuǎn)換成xml

    private function arraytoxml($arr){

      $xml="<xml>";

      foreach($arr as $k=>$v){

        $xml.="<".$k.">".$v."</".$k.">";

      }

      $xml.="</xml>";

      return $xml;

    }

    // 將xml轉(zhuǎn)換成數(shù)組

    private function xmltoarray($xml){

      //禁止引用外部xml實體

      libxml_disable_entity_loader(true);

      $xmlstring=simplexml_load_string($xml,"SimpleXMLElement",LIBXML_NOCDATA);

      $arr=json_decode(json_encode($xmlstring),true);

      return $arr;

    }

    //進行curl操作

    private function curl($param="",$url) {

      $postUrl = $url;

      $curlPost = $param;

      //初始化curl

      $ch = curl_init();

      //抓取指定網(wǎng)頁

      curl_setopt($ch, CURLOPT_URL,$postUrl);

      //設(shè)置header

      curl_setopt($ch, CURLOPT_HEADER, 0);

      //要求結(jié)果為字符串且輸出到屏幕上

      curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

      //post提交方式

      curl_setopt($ch, CURLOPT_POST, 1);

      // 增加 HTTP Header(頭)里的字段

      curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);

      // 終止從服務(wù)端進行驗證

      curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);

      curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);

      //證書放到網(wǎng)站根目錄的cert文件夾底下

      curl_setopt($ch,CURLOPT_SSLCERT,dirname(__FILE__).DIRECTORY_SEPARATOR.

            'cert'.DIRECTORY_SEPARATOR.'apiclient_cert.pem');

        curl_setopt($ch,CURLOPT_SSLKEY,dirname(__FILE__).DIRECTORY_SEPARATOR.

            'cert'.DIRECTORY_SEPARATOR.'apiient_key.pem');

        curl_setopt($ch,CURLOPT_CAINFO,dirname(__FILE__).DIRECTORY_SEPARATOR.

            'cert'.DIRECTORY_SEPARATOR.'rootca.pem');

      //運行curl

      $data = curl_exec($ch);

      //關(guān)閉curl

      curl_close($ch);

      return $data;

    }

    ?>

    可參考官方文檔進行調(diào)整開發(fā),希望能有幫助,望采納

    四、構(gòu)建了PHP環(huán)境后,寫完的代碼放在哪

    phpnow中的根目錄中的htdocs文件夾就是你網(wǎng)頁(也就是你的站點)的根目錄。當(dāng)你在瀏覽器地址欄輸入“http://localhost”或者“http://你的ip地址”的時候,瀏覽器進入的就是這個htdocs文件夾。剛剛安裝完phpnow的時候,你的htdocs文件夾應(yīng)該有一個index.html文件,你第一次在瀏覽器地址欄輸入“http://localhost”或者“http://你的ip地址”的時候,瀏覽器會瀏覽到index.html這個網(wǎng)頁,你需要在這個網(wǎng)頁測試一下數(shù)據(jù)庫是否ok。然后你把htdocs文件夾中的index.html改個名字或者移到別的地方去,然后把你的php文件放到這個文件夾中就Ok了。你再在瀏覽器地址欄輸入“http://localhost”或者“http://你的ip地址”,瀏覽器會主動搜索根目錄也就是htdocs文件夾中的index文件為主頁,但是如果你的根目錄同時存在index.html和index.php。那么瀏覽器會先讀取html文件,也就是先讀取index.html。你也可以在htdocs文件夾中新建一個其他的文件夾,比如你的文件是一個聊天室,那么你新建一個文件夾叫做chat。然后你把你的Php文件放到chat文件夾中。然后在瀏覽器地址輸入“http://localhost/chat”或者“http://你的ip地址/chat”你的php主頁就顯示出來了。你也可以利用地址欄不瀏覽主頁。比如你的Php文件中有個文件叫做top.php。那么你可以在地址欄輸入“http://localhost/chat/top.php”或者“http://你的ip地址/chat。php”,就Ok了,應(yīng)該說清楚了吧??比較啰嗦了。

    以上就是關(guān)于PHP部署ChatGPT相關(guān)問題的回答。希望能幫到你,如有更多相關(guān)問題,您也可以聯(lián)系我們的客服進行咨詢,客服也會為您講解更多精彩的知識和內(nèi)容。


    推薦閱讀:

    chatpht

    PHP寫接口(php寫接口實現(xiàn)json文件讀?。?/a>

    iphone怎么用chatGPT(IPHONE怎么用2個咕咚)

    農(nóng)村景觀設(shè)計村民活動區(qū)域(農(nóng)村景觀設(shè)計村民活動區(qū)域分析)

    游戲策劃好找工作嗎(游戲策劃好找工作嗎知乎)