大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
最近在帮别人做个小项目,要用到微信公众平台,虽然以前也做过微信开发,但是没有深入的自己去搞一套微信开发的东西(也搞不了,那时候没能力,也弄不到微信公众号),最近开始搞,第一步就是配置微信基本配置(账号注册我就不赘述了)。
我们首先要启用服务器配置,并填写URL,token,AESKey,加密方式
那么URL怎么填写呢?
网上有很多种教程,最靠谱的一种是去新浪云注册个免费的PHP服务器,
进入控制台,创建一个新应用,选PHP标准环境,不收费
创建完成后进入应用,左边列表里 应用–>代码管理 里选编辑代码
然后创建 一个index.php文件,双击进去,讲如下代码复制进去,token改成你自己的
<?php
/**
* wechat php test
*/
//define your token
define("TOKEN", "token");
$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)){
$postObj = simplexml_load_string($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()
{
$signature = $_GET["signature"];
$timestamp = $_GET["timestamp"];
$nonce = $_GET["nonce"];
$token = TOKEN;
$tmpArr = array($token, $timestamp, $nonce);
sort($tmpArr);
$tmpStr = implode( $tmpArr );
$tmpStr = sha1( $tmpStr );
if( $tmpStr == $signature ){
return true;
}else{
return false;
}
}
}
?>
修改TOKEN为你自己的token,可以自己随便写,但是不一定能用。
保存,右击index.php –> 通过URL访问,会在浏览器里获得这个PHP程序的URL地址。
将该URL地址放到接口配置里的URL里,token要和这个index.php里一致,以后在项目里使用的token也和这个一致.
AESKey点自动生成,消息加密方式根据你个人项目情况选择,如果是公司项目,涉及到钱的,建议使用安全模式。
然后就是提交了,这时候会发现,token验证失败(存在一定的可能性),怎么办,通过查找,可以在微信公众平台–>开发者工具–>公众平台测试账号中查看自己的 token
然后重复上述修改token步骤,运行index.php,使用新的token和URL进行验证,这个时候就OK了。
重点来了!!!
实际生产环节,我们都有自己的服务器,自己的域名,这个时候,就不希望通过第三方的方式做这个微信消息认证了。
我们在生产环境下,要给自己的服务器装个Nginx和PHP环境,具体怎么装百度。
装好以后,我们在/usr/share/nginx/html下新建一个index.php文件,讲上述代码复制进去,保存。
然后在/etc/nginx/nginx.conf(有的人的配置文件在default.d/default.conf里),在server里修改如下代码,注意index.php要加到index里,下方再配入PHP的代理。
location / {
root /usr/share/nginx/html;
index index.php index.html index.htm ;
}
location ~ \.php$ {
root /usr/share/nginx/html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
重启Nginx,解析域名到该服务器地址,使用域名就可以进行微信消息验证了,大功告成。
同样的,如果没有注册公众号,但是注册过测试号,也可以用上述方式填写相应的URL和token
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/171610.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...