PHP接入微信公众号接口的全过程(含踩坑记录)

PHP接入微信公众号接口的全过程(含踩坑记录)

最近在对接微信公众号接口,官方文档真的一言难尽。。。第一步的验证接口就差点搞崩了。。


📌 官方接入文档地址

微信官方文档地址:
https://developers.weixin.qq.com/doc/offiaccount/Getting_Started/Getting_Started_Guide.html

文档提供了接入流程,但一些地方表述不清,特别是在 URL 配置和签名验证上,让人迷惑。。


🚧 踩坑记录

1. URL 填写格式的误区

在这里插入图片描述

官方文档说,上图的接口配置信息的URL,“填写:http://外网IP/wx”,我一开始照做,填写了 IP 地址(为了支持http://外网IP/wx访问,还特地开启了80端口、修改了nginx映射。。):

http://123.123.123.123/wx

结果微信验证成功是成功了,就是太麻烦。。最后发现只需要填写域名就可以了,不需要填外网 IP。我尝试用下面URL:

http://test.example.com/wxVerify.php

✅ 结果成功! 文档里的“填写:http://外网IP/wx”实在让人迷惑,实际上填写域名完全可以。


2. 接口验证 PHP 代码(完整)

下面也给出正确的步骤:

  • 首先,在网站根目录下创建 wxVerify.php,然后写入如下内容:
<?php

const TOKEN = 'eeafff'; // 随便填

function checkSignature() {
    $signature = $_GET["signature"];
    $timestamp = $_GET["timestamp"];
    $nonce     = $_GET["nonce"];
    
    $token  = TOKEN;
    $tmpArr = array($token, $timestamp, $nonce);
    sort($tmpArr, SORT_STRING);
    $tmpStr = implode($tmpArr);
    $tmpStr = sha1($tmpStr);
    
    return ($tmpStr === $signature);
}

if (checkSignature()) {
    echo $_GET['echostr'];
}
  • 并配置微信后台接口 URL 为(比如你的域名为:https://test.com):
    https://test.com/wxVerify.php
    

如下图:
在这里插入图片描述

  • 最后点击提交即可~

🧠 总结

  • 微信文档的“填写:http://外网IP/wx”误导了不少人,域名也是可以的。
  • 有问题欢迎留言交流~
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值