国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

詳解微信第三方小程序代開發(fā)

2019-11-19 16:15:56
字體:
供稿:網(wǎng)友

詳解微信第三方小程序代開發(fā)

微信申請第三方之后可以獲取授權(quán)方的很多權(quán)限,主要的是生碼和待開發(fā),生碼的第三方授權(quán)之前已經(jīng)寫了一篇文章,最近做了小程序待開發(fā),總結(jié)一下寫下來供大家參考

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

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

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

準(zhǔn)備工作:

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

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

代開發(fā)流程:

  post請求公共方法,與微信服務(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請求公共方法,與微信服務(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', '測試代碼指定' );    $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è)人信息我給清除了,空字符部分請自己補(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)者了,這一步可以在小程序平臺用戶管理里邊操作,為了提高逼格,你可可以通過微       信接口進(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( 微信號不能為空 );      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( 微信號不能為空 );      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è)置的話,需要對方進(jìn)入小程序平臺,在填寫小程序信息的地方添加服務(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ù)器會返回一個(gè)審核id,你可以通過該審核id查詢審核狀態(tài)

  當(dāng)審核通過之后,微信會給你第三方注冊的回調(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ā)就完成了,邏輯很簡單,代碼也沒難度,本文章的代碼僅供大家參考,如果有問題請?jiān)u論指出,我盡量補(bǔ)充。

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 西乌| 柳河县| 桂平市| 武定县| 三穗县| 厦门市| 武义县| 南江县| 任丘市| 惠安县| 资阳市| 汉川市| 始兴县| 黄龙县| 泸溪县| 长宁区| 清原| 政和县| 柯坪县| 和平县| 方正县| 沿河| 措勤县| 开封县| 襄汾县| 滕州市| 洛川县| 两当县| 阳曲县| 凌源市| 黄山市| 崇左市| 台南县| 海兴县| 新晃| 囊谦县| 寿宁县| 荥经县| 新源县| 客服| 阿城市|