php开发微信公众号步骤_PHP接口

php开发微信公众号步骤_PHP接口最近在帮别人做个小项目,要用到微信公众平台,虽然以前也做过微信开发,但是没有深入的自己去搞一套微信开发的东西(也搞不了,那时候没能力,也弄不到微信公众号),最近开始搞,第一步就是配置微信基本配置(账号注册我就不赘述了)。我们首先要启用服务器配置,并填写URL,token,AESKey,加密方式那么URL怎么填写呢?网上有很多种教程,最靠谱的一种是去新浪云注册个免费的PHP服务器,

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

最近在帮别人做个小项目,要用到微信公众平台,虽然以前也做过微信开发,但是没有深入的自己去搞一套微信开发的东西(也搞不了,那时候没能力,也弄不到微信公众号),最近开始搞,第一步就是配置微信基本配置(账号注册我就不赘述了)。

我们首先要启用服务器配置,并填写URL,token,AESKey,加密方式

php开发微信公众号步骤_PHP接口

那么URL怎么填写呢?

网上有很多种教程,最靠谱的一种是去新浪云注册个免费的PHP服务器,

php开发微信公众号步骤_PHP接口

进入控制台,创建一个新应用,选PHP标准环境,不收费

php开发微信公众号步骤_PHP接口

创建完成后进入应用,左边列表里  应用–>代码管理  里选编辑代码

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/171610.html原文链接:https://javaforall.net

(0)
上一篇 2022年8月20日 下午11:16
下一篇 2022年8月20日 下午11:16


相关推荐

  • CSS之经典flex布局-垂直居中「建议收藏」

    CSS之经典flex布局-垂直居中「建议收藏」<!DOCTYPEhtml><htmllang=”en”><head><metacharset=”UTF-8″><metahttp-equiv=”X-UA-Compatible”content=”IE=edge”><metaname=”viewport”content=”width=device-width,initial-scale=1.0″><title>flex垂直居中&lt

    2022年6月3日
    35
  • 点到平面的基本距离推导公式

    点到平面的基本距离推导公式平面的一般式方程 Ax By Cz D 0 其中 n A B C 是平面的法向量 D 是将平面平移到坐标原点所需距离 所以 D 0 时 平面过原点 向量的模 长度 给定一个向量 V x y z 则 V sqrt x x y y z z 向量的点积 内积 给定两个向量 V1 x1 y1 z1 和 V2 x2 y2 z2 则他

    2026年3月17日
    4
  • 中国传统颜色16进制颜色码

    中国传统颜色16进制颜色码uad 很明显 自然界中的颜色几乎有无数种 但是在计算机中我们需要用固定的内存去存储 根据三原色理论 我们就有了颜色在计算机中的各种数值命名表示 如 RGB 值 16 进制颜色码 常见颜色可以用对应名称如 red green RGB 值 uad 计算机中颜色一般用 RGB 值表示颜色 RGB 也就是光学三原色 Red Green Blue 红绿蓝 因为三原色可以混合成所有颜色 所以计算机只需要存储这三种基色的数值即可 对于 RGB 三种基色 计算机用 1 字节 Byte 来存储相应强度值 总共 3Byte RGB 值即三原色

    2026年3月17日
    2
  • 3.2 万人收藏的 Claude Skills,才是 AI 这条路上最值得研究的一套范式!

    3.2 万人收藏的 Claude Skills,才是 AI 这条路上最值得研究的一套范式!

    2026年3月16日
    3
  • getParameterValues使用

    getParameterValues使用request.getParameterValues:接收名字相同,值有多个的变量,返回一个数据。如: String[]courseNumbers=request.getParameterValues(“courseNumberForCourse”);request.getParameter:接收单一值变量。如:stringtype=request.getPara

    2022年7月22日
    20
  • python基础之for循环语句

    python基础之for循环语句1 python 中的 for 循环 本质是对一个数据或数据集合体的遍历时 有多少个数据 就是会循环几次 这样理解后你会发现 for 循环是很简单的 并且你会发现它比 C 和 Java 的 for 循环功能更多 而且还要语法简洁很多 话不多说 直接上代码 结果 因为我们这个列表有四个数 所有我们循环了四次

    2025年11月2日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号