微信公众号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