微信公眾號H5游戲本地搭建環境和調試(花生殼+wampserver+微信公眾號測試號)


 

基於PHP在微信公眾號上運行的H5牛牛游戲,放在wamp的www目錄下,用谷歌瀏覽器打開項目(會提示請在微信客戶端中打開),

因為這個H5游戲接入了微信的接口,就必須在微信客戶端上運行才達到預期的調試效果,那怎么辦呢?

有兩個辦法:

① 在電腦安裝Windows的微信客戶端。

② 用花生殼的內網穿透(利用外網訪問本地地址localhost)+手機微信客戶端。

接下來就和大家分享一下搭建H5微信公眾號游戲和配置環境的各種坑。

工具

花生殼(www.oray.com

首先必須注冊一個賬號,然后點擊內網穿透,新建個映射如下圖

映射類型 : 網站80端口

選擇域名 : 這個是注冊的時候花生殼送你的(我注冊的時候好像要交6塊什么什么費,不記得了)

應用名稱 : web

內網主機 : 127.0.0.1

內網端口 : 80

最后確定,至此,你wamp里面www文件夾下的項目就可以被你剛剛花生殼給你的域名訪問了,前提是你安裝了wamp后輸入localhost能正常打開。

最后測試一下,

把 localhost/index.php 換成 花生殼給你的域名/index.php。是一樣的效果的。

以上就是花生殼穿透內網步驟。



 

wampserver(我的版本是2.5)

:這東西必須安裝完是綠色,瀏覽器輸入localhost能正常打開哦,安裝方法這里不多闡述,自己百度一下。



 

 

 微信公眾號測試號(https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login)

appid和appscret是本來就配給你的,這兩個東西是用來配置你游戲里面的參數的,可先不管


 

URL:http://剛剛花生殼的域名/wx_sample.php

liweijian(這個隨便填,我先填這個了)

把wx_sample.php放在www文件夾下,附上代碼,自己新建個php文件復制進去,最后點提交(顯示配置成功才行)

<?php
/**
  * wechat php test
  */
//define your token
define("TOKEN", "liweijian"); $wechatObj = new wechatCallbackapiTest(); $wechatObj->valid(); class wechatCallbackapiTest { public function valid() { echoStr=_GET["echostr"]; //valid signature , option if($this->checkSignature()){ echo $echoStr; exit; } } public function responseMsg() { //get post data, May be due to the different environments postStr=GLOBALS["HTTP_RAW_POST_DATA"]; //extract post data if (!empty($postStr)){ /* libxml_disable_entity_loader is to prevent XML eXternal Entity Injection, the best way is to check the validity of xml by yourself */ libxml_disable_entity_loader(true); postObj=simplexmlloadstring(postStr, 'SimpleXMLElement', LIBXML_NOCDATA); fromUsername=postObj->FromUserName; toUsername=postObj->ToUserName; keyword=trim(postObj->Content); $time = time(); $textTpl = "<xml> <ToUserName><![CDATA[%s]]></ToUserName> <FromUserName><![CDATA[%s]]></FromUserName> <CreateTime>%s</CreateTime> <MsgType><![CDATA[%s]]></MsgType> <Content><![CDATA[%s]]></Content> <FuncFlag>0</FuncFlag> </xml>"; if(!empty( $keyword )) { $msgType = "text"; $contentStr = "Welcome to wechat world!"; resultStr=sprintf(textTpl, fromUsername,toUsername, time,msgType, $contentStr); echo $resultStr; }else{ echo "Input something..."; } }else { echo ""; exit; } } private function checkSignature() { // you must define TOKEN by yourself if (!defined("TOKEN")) { throw new Exception('TOKEN is not defined!'); } signature=_GET["signature"]; timestamp=_GET["timestamp"]; nonce=_GET["nonce"]; $token = TOKEN; tmpArr=array(token, timestamp,nonce); // use SORT_STRING rule sort($tmpArr, SORT_STRING); tmpStr=implode(tmpArr ); tmpStr=sha1(tmpStr ); if( tmpStr==signature ){ return true; }else{ return false; } } } ?>

 



 

 域名:花生殼域名(不要加http)

 


 

至此,微信公眾號測試號已經配置完

 你需要測試的微信人員,掃一掃加入就好了,如果沒加入的話,就會訪問不到項目里面的微信接口

這里按修改

 這里輸入花生殼的域名 ,不加http

 

 下一步就是登錄你的公眾號了,記住是你的,不是這個測試號。

點擊開發者工具

 

 

配置剛剛加入掃碼那兩個微信測試

 

 最后配置一下白名單,不懂的填什么的話,把有關IP都寫上去把


接下來,關於php的一系列報錯,我們下來配置一些東西

 

wamp配置ssl

下載openssl安裝程序,安裝完以后可以從根目錄把libeay32.dll和ssleay32.dll copy到C:\wamp\bin\apache\apachex.x.xx\bin下.

apache需要有ssl_module.mo,php需要安裝php_openssl.(百度即可)

 

一、設置環境變量 
1、管理員權限運行CMD,cd C:\wamp\bin\apache\Apache2.4.9\conf 
2、set OPENSSL_CONF=..\conf\openssl.cnf

二、生成server.key 
cd C:\wamp\bin\apache\Apache2.4.9\bin 
openssl genrsa 1024>server.key

三、生成server.csr 
openssl req -new -key server.key > server.csr 
需要用戶輸入國家代碼之類的信息:CN—GD—DG—Relay2—OA—417930908@qq.com 
注意:其中的Common Name只能輸入域名(花生殼域名)或IP
Common Name 必須和 httpd.conf 中 server name 必須一致, 否則 apache 不能啟動(啟動 apache 時錯誤提示為: server RSA certificate CommonName (CN) `Kedou’ does NOT match server name!? ) 
最后的密碼和公司名稱可以為空

四、生成server.crt 
openssl req -x509 -days 365 -key server.key -in server.csr > server.crt

在bin 目錄下,找到 
server.crt 
server.csr 
server.key 
三個文件,將此三個文件復制到Apache的conf目錄下

五、配置:C:\wamp\bin\apache\Apache2.4.9\conf\httpd.conf,取消注釋: 
Include conf/extra/httpd-ssl.conf 
LoadModule ssl_module modules/mod_ssl.so

修改: 
“ 

Options FollowSymLinks 
AllowOverride None 
Order deny,allow 
Deny from all 

”中的Deny from all為Allow from all,另外幾處Deny from all不用改 
我的版本中並不需要更改Deny from all這塊

六、配置:C:\wamp\bin\apache\Apache2.4.9\conf\extra\httpd-ssl.conf 
“SSLCertificateKeyFile…..”這行改成SSLCertificateKeyFile “C:/wamp/bin/apache/apache2.4.9/conf/server.key”

SSLSessionCache這行改成SSLSessionCache “shmcb:c:/wamp/bin/apache/apache2.4.9/logs/ssl_scache(512000)”

找到這塊內容 
修改DocumentRoot 為DocumentRoot “C:/wamp/www/” 
ServerName 花生殼域名:80 
ErrorLog “c:/wamp/bin/apache/apache2.4.9/logs/error.log” 
TransferLog “c:/wamp/bin/apache/apache2.4.9/logs/access.log”

SSLEngine on

SSLCertificateFile “C:/wamp/bin/apache/apache2.4.9/conf/server.crt”

SSLCertificateKeyFile “C:/wamp/bin/apache/apache2.4.9/conf/server.key”

七、重啟wampserver。瀏覽器輸入:https://192.168.1.4/index.php 
確保你www目錄下有index.php文件

成功后顯示 
這里寫圖片描述

搭建過程中遇到的問題,看一個程序員的水平主要是看他解決問題的能力,哈哈,小吹一下 
我也是第一次搭建https服務器,結果按照網上配置以后,apache怎么都啟動不起來,查看錯誤日志唄

cmd命令行切換到C:\wamp\bin\apache\apache2.4.9\bin目錄 
輸入httpd -t命令 錯誤如下: 
1.Syntax error on line 92 of C:/Apache24/conf/extra/httpd-ssl.conf: 
SSLSessionCache: ‘shmcb’ session cache not supported (known names: ). Maybe you need to load the appropriate socache module (mod_socache_shmcb?

解決方法:在httpd.conf中找到下面這句話# 
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so 
取消注釋(刪掉前面的”#”)

補充一個錯誤  打開conf/extra/httpd-ssl.conf

拉到最下面 搜索CustomLog

修改參數 為"c:/wamp/bin/apache/apache2.4.9/logs/ssl_request.log" \


 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM