Go 初识微信订阅号(测试号)

一、申请订阅号账号

微信公众平台:https://mp.weixin.qq.com/
在这里插入图片描述

按照要求申请一个账号就行,然后登陆进去


二、找到公众平台测试账号

登陆以后再左侧 设置与开发-开发者工具 然后点 公众平台测试账号
在这里插入图片描述


三、测试号接口配置

  • URL:你服务器对硬件API的地址(我这里的域名是用内网穿透工具将本地127.0.0.1绑定的域名,后面会介绍工具)
  • Token:你服务器对应API中填的Token与这里的一直即可,内容不限
    在这里插入图片描述

四、接口代码(Go语言实现)

因为我用的beego框架,我就不展示服务器相关的代码了,直接是验证的和接口内容返回的代码
在这里插入图片描述
这是接入的官方文档:https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Access_Overview.html


const (
	TOKEN = "这个Token和上面网页中的Token一直就行,下面需要进行验证用"
)

type WeiXinController struct {
	beego.Controller
}

func (c *WeiXinController) Get() {
	/*
		开发者通过检验 signature 对请求进行校验(下面有校验方式)
		若确认此次 GET 请求来自微信服务器,请原样返回 echostr 参数内容,则接入生效,成为开发者成功,否则接入失败。加密/校验流程如下:

		1)将token、timestamp、nonce三个参数进行字典序排序
		2)将三个参数字符串拼接成一个字符串进行sha1加密
		3)开发者获得加密后的字符串可与 signature 对比,标识该请求来源于微信
	*/
	mRequest := c.Ctx.Request

	err := mRequest.ParseForm()
	if err != nil {
		logs.Debug("mRequest.ParseForm() URL解析失败!")
		return
	}

	// 获取参数
	mSignature := mRequest.FormValue("signature")
	mTimestamp := mRequest.FormValue("timestamp")
	mNonce := mRequest.FormValue("nonce")
	mEchostr := mRequest.FormValue("echostr")

	logs.Debug("mSignature=" + mSignature)
	logs.Debug("mTimestamp=" + mTimestamp)
	logs.Debug("mNonce=" + mNonce)
	logs.Debug("mEchostr=" + mEchostr)

	// 1)将token、timestamp、nonce三个参数进行字典序排序
	mTempArr := []string{TOKEN, mTimestamp, mNonce}
	logs.Debug("排序前 mTempArr=", mTempArr)
	sort.Strings(mTempArr)
	logs.Debug("排序后 mTempArr=", mTempArr)

	// 2)将三个参数字符串拼接成一个字符串进行sha1加密
	var mSha1Str string = ""
	for _, v := range mTempArr {
		mSha1Str += v
	}
	logs.Debug("sha1加密前 mSha1Str=", mSha1Str)
	mSha1 := sha1.New()
	mSha1.Write([]byte(mSha1Str))
	mSha1Str = hex.EncodeToString(mSha1.Sum([]byte("")))
	logs.Debug("sha1加密后 mSha1Str=", mSha1Str)

	// 3)开发者获得加密后的字符串可与 signature 对比,标识该请求来源于微信
	if mSignature != mSha1Str {
		logs.Debug("mSignature=" + mSignature)
		logs.Debug("mSha1Str=" + mSha1Str)
		return
	}

	// 若确认此次 GET 请求来自微信服务器,请原样返回 echostr 参数内容
	c.Ctx.WriteString(mEchostr)
}

都弄完以后就可以启动你的服务,然后在网页点击提交,这时候微信的服务会请求你服务器的接口,进行验证
如果是成功的会显示下面的结果,如果失败了会有个小的提示
在这里插入图片描述


附加:内网穿透工具 NATAPP

NATAPP官网:https://natapp.cn/
进去先注册账号然后进行实名,需要实名了才可以使用免费的,实名就需要姓名+身份证号+支付宝信息权限即可
记得在首页下载在这里插入图片描述
然后找到以及指定的版本
在这里插入图片描述
找个地方放着就行,先不用管这个,看到下面的 1分钟快速新手图文教程 点进去,不用看前面的,直接找到 8.运行natapp
在这里插入图片描述
点开 详见 这个超链接,然后看到配置直接复制,然后再你本地创建一个 config.ini 的文件,然后将内容粘进去,填入对应的数据,需要注意这个ini文件需要与刚才下载的exe文件放在同一路径下

#将本文件放置于natapp同级目录 程序将读取 [default] 段
#在命令行参数模式如 natapp -authtoken=xxx 等相同参数将会覆盖掉此配置
#命令行参数 -config= 可以指定任意config.ini文件
[default]
authtoken=这里是你购买完隧道后会有一个authtoken 然后直接复制在这里将这段话替换      #对应一条隧道的authtoken
clienttoken=                    #对应客户端的clienttoken,将会忽略authtoken,若无请留空,
log=none                        #log 日志文件,可指定本地文件, none=不做记录,stdout=直接屏幕输出 ,默认为none
loglevel=DEBUG                  #日志等级 DEBUG, INFO, WARNING, ERROR 默认为 DEBUG
http_proxy=                     #代理设置 如 http://10.123.10.10:3128 非代理上网用户请务必留空

在这里插入图片描述
然后在登录的状态下购买隧道
在这里插入图片描述
在这里插入图片描述
购买完成后这里就有 authtoken 复制一下,然后把上面的配置改一下就行
在这里插入图片描述
到这里这个工具就算是好了,然后就可以双击下载的exe文件运行了
在这里插入图片描述


一点点笔记,以便以后翻阅。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小印丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值