成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

微信第三方小程序代開發(fā)的示例分析-創(chuàng)新互聯(lián)

這篇文章主要為大家展示了“微信第三方小程序代開發(fā)的示例分析”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“微信第三方小程序代開發(fā)的示例分析”這篇文章吧。

專注于為中小企業(yè)提供網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站設(shè)計(jì)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)平武免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了成百上千家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

注意事項(xiàng):如果在調(diào)試過程中返回了錯(cuò)誤碼請(qǐng)到小程序代開發(fā)api頁(yè)面查看,

  小程序代開發(fā)使用的域名是你申請(qǐng)第三方時(shí)候填寫的域名,

 小程序代碼模板最多只有50個(gè),可以刪除然后重新添加。

準(zhǔn)備工作:

申請(qǐng)微信第三方并且權(quán)限那邊要選上代開發(fā),第三方申請(qǐng)成功之后就是準(zhǔn)備小程序了,需要兩個(gè)小程序,一個(gè)作為小程序代碼庫(kù),一個(gè)作為用戶測(cè)試用,需要在第三方授權(quán)。

添加小程序代碼庫(kù): 在第三方那邊將小程序添加為開發(fā)小程序,然后該小程序就成為了第三方的開發(fā)小程序,之后該小程序提交的代碼都會(huì)存入第三方草稿箱,你可以選擇版本添加為模板,一個(gè)第三方最             多只能有50個(gè)模板。

代開發(fā)流程:

post請(qǐng)求公共方法,與微信服務(wù)器交互用

代碼如下

protected function curl_post( $curlHttp, $postdata ) {
    $ch = curl_init(); //用curl發(fā)送數(shù)據(jù)給api
    curl_setopt( $ch, CURLOPT_POST, true );
    curl_setopt( $ch, CURLOPT_POST, true );
    curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
    curl_setopt( $ch, CURLOPT_URL, $curlHttp );
    curl_setopt( $ch, CURLOPT_POSTFIELDS, $postdata );
    curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, FALSE );
    curl_setopt( $ch, CURLOPT_SSL_VERIFYHOST, FALSE );

    $response = curl_exec( $ch );
    curl_close( $ch );
    $result = json_decode( $response, true );
    return $result;
  }

get請(qǐng)求公共方法,與微信服務(wù)器交互用

代碼如下

protected function buildRequestForm( array $param, $method, $target='',$jump=false) {
    $sHtml = "<meta http-equiv='Content-Type' content='text/html; charset=utf-8' /><form id='autoSubmit' action='".$target."' method='".$method."'>";

    if ( !empty( $param ) ) {
      foreach( $param as $key => $value ) {
        $sHtml.= "<input type='hidden' name='".$key."' value='".urldecode($value)."'/>";
      }
    }
    $sHtml .= "</form>";

    if($jump) $sHtml = $sHtml."<script>document.getElementById(\"autoSubmit\").submit();</script>";

    return $sHtml;
  }

獲取授權(quán)方api調(diào)用拼成access_token公共方法

代碼如下

protectd function getAccessToken( $appId ) {
    $accessToken = '';

    if ( empty( $appId ) ) {
      return $accessToken;
    }
    
    // 中間的邏輯自己填充

    return $accessToken;
  }

首先是開發(fā)一套小程序并且上傳,之后再第三方里邊把該版本設(shè)置成模板,這個(gè)時(shí)候你就用了模板id(用于代碼指定用)

通過調(diào)用微信接口,給用戶小程序指定小程序代碼

代碼如下

public function commitCode() {
    $appId = input( 'app_id', '' );
    $descript = input( 'descript', '測(cè)試代碼指定' );
    $version = input( 'version', 'V.1.0' );
    $templateId = input( 'template_id', 1 );
    if ( empty( $appId ) ) {
      $this->error( appid不能為空 );
      return;
    }

    if ( empty( $templateId ) && ( $templateId != 0 ) ) {
      $this->error( '模板id不能為空' );
      return;
    }

    $accessToken = $this->getAccessToken( $appId );

    // 個(gè)人信息我給清除了,空字符部分請(qǐng)自己補(bǔ)充
    $extJson = array(
      'extAppid' => $appId,
      'ext' => array(
        'attr1' => 'value1'
      ),
      'extPages' => array(
          'pages/index/index' => array(
            'navigationBarTitleText'  => ''
          ),
          'pages/media/media' => array(
            'navigationBarTitleText'  => ''
          )
      ),
      'pages' => array(
          'pages/index/index',
          'pages/media/media'
      ),
      'window' => array(
          'backgroundColor'      => '#f8f8f8',
          'navigationBarTextStyle'  => 'white',
          "navigationBarTitleText"  => "",
          'navigationBarBackgroundColor' => '#2b3b48'
      ),
      'tabBar' => array(
        'list' => array(
          array(
            'text'   => '',
            'pagePath' => 'pages/index/index',
          ),
          array(
            'text'   => '',
            'pagePath' => 'pages/media/media',
          )
        )
      ),
      'networkTimeout' => array(
          'request'    => 10000,
          'uploadFile'  => 10000,
          'downloadFile' => 10000,
          'connectSocket' => 10000
      )
    );

    $params = array(
      'template_id'  => $templateId,
      'user_version' => $version,
      'user_desc'   => $descript,
      'ext_json'   => json_encode( $extJson, JSON_UNESCAPED_UNICODE )
    );
    $result = $this->curl_post( 'https://api.weixin.qq.com/wxa/commit?access_token='.$accessToken, json_encode( $params, JSON_UNESCAPED_UNICODE ) );
    if ( empty( $result ) || !empty( $result['errcode'] ) ) {
      $this->error( '代碼指定錯(cuò)誤' );
      return;
    }

    $this->success( '操作成功' );
    return;
  }

指定代碼之后就是查看功能是否正常了,所以就要調(diào)用微信接口獲取體驗(yàn)二維碼掃碼體驗(yàn),

代碼如下

public function getExpCode() {
    $appId = input( 'app_id', '' );
    if ( empty( $appId ) ) {
      $this->error( appid不能為空 );
      return;
    }

    $accessToken = $this->getAccessToken( $appId );
    if ( empty( $accessToken ) ) {
      $this->error( '獲取授權(quán)accessToken錯(cuò)誤' );
      return;
    }

    $params = array(
      'access_token' => $accessToken
    );
    $result = $this->buildRequestForm( $params, 'GET', 'https://api.weixin.qq.com/wxa/get_qrcode?access_token='.$accessToken, true );
    echo $result;
    exit;
  }

如果授權(quán)用戶沒有體驗(yàn)權(quán)限則掃碼之后不能進(jìn)行小程序功能體驗(yàn),這個(gè)時(shí)候就需要你通過微信接口將用戶設(shè)置為體驗(yàn)者了,這一步可以在小程序平臺(tái)用戶管理里邊操作,為了提高逼格,你可可以通過微       信接口進(jìn)行體驗(yàn)者的添加和刪除,添加的時(shí)候需要被添加者微信確認(rèn)

代碼如下

public function bindTester() {
    $appId = input( 'app_id', '' );
    $wxNumber = input( 'wx_number', '' );
    if ( empty( $appId ) ) {
      $this->error( appid不能為空 );
      return;
    }
    if ( empty( $wxNumber ) ) {
      $this->error( 微信號(hào)不能為空 );
      return;
    }

    $accessToken = $this->getAccessToken( $appId );
    if ( empty( $accessToken ) ) {
      $this->error( '獲取授權(quán)accessToken錯(cuò)誤' );
      return;
    }
    $params = array(
      'wechatid' => $wxNumber
    );
    $result = $this->curl_post( 'https://api.weixin.qq.com/wxa/bind_tester?access_token='.$accessToken, json_encode( $params ) );
    print_r($result);
    exit;
    return;
  }

public function unBindTester() {
    $appId = input( 'app_id', '' );
    $wxNumber = input( 'wx_number', '' );
    if ( empty( $appId ) ) {
      $this->error( appid不能為空 );
      return;
    }
    if ( empty( $wxNumber ) ) {
      $this->error( 微信號(hào)不能為空 );
      return;
    }

    $accessToken = $this->getAccessToken( $appId );
    if ( empty( $accessToken ) ) {
      $this->error( '獲取授權(quán)accessToken錯(cuò)誤' );
      return;
    }
    $params = array(
      'wechatid' => $wxNumber
    );
    $result = $this->curl_post( 'https://api.weixin.qq.com/wxa/unbind_tester?access_token='.$accessToken, json_encode( $params ) );
    print_r($result);
    exit;
    return;
  }

如果體驗(yàn)功能有問題則重新調(diào)整小程序代碼邏輯然后上傳之后設(shè)置為模板,如果沒有問題則將小程序代碼提交審核,但是提交審核的時(shí)候需要指定category,所以需要調(diào)用微信接口查看

如果授權(quán)用戶沒有設(shè)置的話,需要對(duì)方進(jìn)入小程序平臺(tái),在填寫小程序信息的地方添加服務(wù)條目

代碼如下

public function getCategory() {
    $appId = input( 'app_id', '' );
    if ( empty( $appId ) ) {
      $this->error( appid不能為空 );
      return;
    }

    $accessToken = $this->getAccessToken( $appId );
    if ( empty( $accessToken ) ) {
      $this->error( '獲取授權(quán)accessToken錯(cuò)誤' );
      return;
    }

    $params = array(
      'access_token' => $accessToken
    );
    $result = $this->buildRequestForm( $params, 'GET', 'https://api.weixin.qq.com/wxa/get_category?access_token='.$accessToken, true );

    echo $result;
    exit;
  }

拿到服務(wù)條目之后就是提交代碼審核了

代碼如下

public function submitAudit() {
    $appId = input( 'app_id', '' );
    if ( empty( $appId ) ) {
      $this->error( appid不能為空 );
      return;
    }

    $accessToken = $this->getAccessToken( $appId );
    if ( empty( $accessToken ) ) {
      $this->error( '獲取授權(quán)accessToken錯(cuò)誤' );
      return;
    }

    $params = array(
      'item_list' => array(
          array(
            'address' => 'pages/index/index',
            'tag' => 'IT科技',
            'first_class' => 'IT科技',
            'second_class' => '硬件與設(shè)備',
            'title' => '生成二維碼'
          ),
          array(
            'address' => 'pages/media/media',
            'tag' => '工具',
            'first_class' => '工具',
            'second_class' => '辦公',
            'title' => '多媒體上傳'
          )
      )
    );
    $result = $this->curl_post( 'https://api.weixin.qq.com/wxa/submit_audit?access_token='.$accessToken, json_encode( $params, JSON_UNESCAPED_UNICODE ) );

    echo'<pre>';
    print_r($result);
    exit;
    $this->success( '操作成功' );
    return;
  }

提交審核之后,微信服務(wù)器會(huì)返回一個(gè)審核id,你可以通過該審核id查詢審核狀態(tài)

當(dāng)審核通過之后,微信會(huì)給你第三方注冊(cè)的回調(diào)地址推送一個(gè)審核結(jié)果

代碼如下

public function getAuditStatus (){
    $appId = input( 'app_id', '' );
    if ( empty( $appId ) ) {
      $this->error( appid不能為空 );
      return;
    }

    $accessToken = $this->getAccessToken( $appId );
    if ( empty( $accessToken ) ) {
      $this->error( '獲取授權(quán)accessToken錯(cuò)誤' );
      return;
    }
    $params = array(
      'auditid' => 12334
    );
    $result = $this->curl_post( 'https://api.weixin.qq.com/wxa/get_auditstatus?access_token='.$accessToken, json_encode( $params ) );
    print_r($result);
    exit;
    return;
  }

當(dāng)小程序?qū)徍送ㄟ^了接下來就是小程序發(fā)布了

代碼如下

public function release (){
    $appId = input( 'app_id', '' );
    if ( empty( $appId ) ) {
      $this->error( appid不能為空 );
      return;
    }

    $accessToken = $this->getAccessToken( $appId );
    if ( empty( $accessToken ) ) {
      $this->error( '獲取授權(quán)accessToken錯(cuò)誤' );
      return;
    }
    $result = $this->curl_post( 'https://api.weixin.qq.com/wxa/release?access_token='.$accessToken, '{}' );
    print_r($result);
    exit;
    return;
  }

以上是“微信第三方小程序代開發(fā)的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司行業(yè)資訊頻道!

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)建站jinyejixie.com,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

新聞名稱:微信第三方小程序代開發(fā)的示例分析-創(chuàng)新互聯(lián)
轉(zhuǎn)載來源:http://jinyejixie.com/article8/dipcip.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動(dòng)網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、虛擬主機(jī)、用戶體驗(yàn)、靜態(tài)網(wǎng)站、網(wǎng)站排名

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司
凯里市| 无棣县| 宁河县| 宜丰县| 博野县| 武陟县| 余江县| 饶河县| 靖宇县| 镇沅| 吉木乃县| 东乡| 翁源县| 安仁县| 芜湖市| 宝鸡市| 濮阳市| 府谷县| 建湖县| 遵义市| 塘沽区| 崇义县| 济源市| 合水县| 南皮县| 金华市| 民权县| 义马市| 于田县| 芷江| 永年县| 文水县| 运城市| 大港区| 灵寿县| 通州区| 冀州市| 阿鲁科尔沁旗| 南召县| 新余市| 新余市|