本文小編為大家詳細(xì)介紹“微信第三方小程序怎么開(kāi)發(fā)”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“微信第三方小程序怎么開(kāi)發(fā)”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來(lái)學(xué)習(xí)新知識(shí)吧。
創(chuàng)新互聯(lián)企業(yè)建站,10年網(wǎng)站建設(shè)經(jīng)驗(yàn),專注于網(wǎng)站建設(shè)技術(shù),精于網(wǎng)頁(yè)設(shè)計(jì),有多年建站和網(wǎng)站代運(yùn)營(yíng)經(jīng)驗(yàn),設(shè)計(jì)師為客戶打造網(wǎng)絡(luò)企業(yè)風(fēng)格,提供周到的建站售前咨詢和貼心的售后服務(wù)。對(duì)于網(wǎng)站制作、成都網(wǎng)站建設(shè)中不同領(lǐng)域進(jìn)行深入了解和探索,創(chuàng)新互聯(lián)在網(wǎng)站建設(shè)中充分了解客戶行業(yè)的需求,以靈動(dòng)的思維在網(wǎng)頁(yè)中充分展現(xiàn),通過(guò)對(duì)客戶行業(yè)精準(zhǔn)市場(chǎng)調(diào)研,為客戶提供的解決方案。
注意事項(xiàng):如果在調(diào)試過(guò)程中返回了錯(cuò)誤碼請(qǐng)到小程序代開(kāi)發(fā)api頁(yè)面查看,
小程序代開(kāi)發(fā)使用的域名是你申請(qǐng)第三方時(shí)候填寫的域名,
小程序代碼模板最多只有50個(gè),可以刪除然后重新添加。
準(zhǔn)備工作:
申請(qǐng)微信第三方并且權(quán)限那邊要選上代開(kāi)發(fā),第三方申請(qǐng)成功之后就是準(zhǔn)備小程序了,需要兩個(gè)小程序,一個(gè)作為小程序代碼庫(kù),一個(gè)作為用戶測(cè)試用,需要在第三方授權(quán)。
添加小程序代碼庫(kù): 在第三方那邊將小程序添加為開(kāi)發(fā)小程序,然后該小程序就成為了第三方的開(kāi)發(fā)小程序,之后該小程序提交的代碼都會(huì)存入第三方草稿箱,你可以選擇版本添加為模板,一個(gè)第三方最 多只能有50個(gè)模板。
代開(kāi)發(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; }
首先是開(kāi)發(fā)一套小程序并且上傳,之后再第三方里邊把該版本設(shè)置成模板,這個(gè)時(shí)候你就用了模板id(用于代碼指定用)
通過(guò)調(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)用戶沒(méi)有體驗(yàn)權(quán)限則掃碼之后不能進(jìn)行小程序功能體驗(yàn),這個(gè)時(shí)候就需要你通過(guò)微信接口將用戶設(shè)置為體驗(yàn)者了,這一步可以在小程序平臺(tái)用戶管理里邊操作,為了提高逼格,你可可以通過(guò)微 信接口進(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)功能有問(wèn)題則重新調(diào)整小程序代碼邏輯然后上傳之后設(shè)置為模板,如果沒(méi)有問(wèn)題則將小程序代碼提交審核,但是提交審核的時(shí)候需要指定category,所以需要調(diào)用微信接口查看
如果授權(quán)用戶沒(méi)有設(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,你可以通過(guò)該審核id查詢審核狀態(tài)
當(dāng)審核通過(guò)之后,微信會(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ū)徍送ㄟ^(guò)了接下來(lái)就是小程序發(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; }
讀到這里,這篇“微信第三方小程序怎么開(kāi)發(fā)”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識(shí)點(diǎn)還需要大家自己動(dòng)手實(shí)踐使用過(guò)才能領(lǐng)會(huì),如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
本文題目:微信第三方小程序怎么開(kāi)發(fā)
鏈接URL:http://muchs.cn/article8/ghesip.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航、網(wǎng)站設(shè)計(jì)公司、網(wǎng)站營(yíng)銷、微信公眾號(hào)、Google、標(biāo)簽優(yōu)化
聲明:本網(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í)需注明來(lái)源: 創(chuàng)新互聯(lián)