微信公众号服务器配置

微信公众号开发-服务器配置

最近在进行公司的微信公众号和小程序的开发,由于都是由本人独立研发,所以框架和接口都要自己去搭去写,因此想把相关接口做完之后做一些记录,如今闲来无事就总结下相关接口,本篇内容为:微信公众号研发的服务器配置

1.微信公众平台配置

要进行服务器配置的话首先登入微信公众平台,总步骤如下:

  1. 登入微信公众平台 ,在左侧菜单栏最下方子菜单找到 开发–基本配置
    在这里插入图片描述
  2. 点击进入 基本配置,出现下图
    在这里插入图片描述
  3. 此处我已经进行过配置了,未进行配置的页面 服务器配置 相关信息应是空白。那么此页面需要配置的信息为 ip白名单+服务器配置信息,url填服务器+接口,token随便填,token用作生成签名(该Token会和接口URL中包含的Token进行比对,从而验证安全性),密钥直接点随机生成,加解密方式选明文模式。
  4. 具体配置: ip白名单应配置为你的服务器ip地址(不知道自己的ip?看完本条看下一条),服务器地址应配置为你的项目发布的服务器地址(必须是已备案的域名,端口必须是80或443)+项目名+接口名,(此条看懂的话,第五第六条可跳过)
  5. 不知道自己的ip地址,打开cmd命令,windows输入ipconfig,Linux输入ifconfig,windows或者可以直接打开百度,然后输入ip至搜索框,点搜索,往下翻翻,就可以看到下图
    在这里插入图片描述
  6. 你的项目发布的服务器地址(必须是已备案的域名,端口必须是80或443)+项目名+接口名 :意思是你的项目必须发布在一台外网可以访问到的服务器上,且发布的端口必须是80或443,如果你想用本机发布并调试的话,建议去natapp买一个外网映射工具,在网站里叫隧道(图一),再在本网站二级域名菜单里点击注册买个已备案的二级域名(图二),然后把域名绑定到隧道上,下载一个小工具,解压,修改一下配置,然后启动之后,本机地址就映射到外网了(图三);URL格式示例http://top.XXX.cc/项目名/wechat
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

至此,微信公众平台上的配置就完成了,接下来是java端的接口写法。

2.JAVA接口写法

  1. 先看官方文档的说明

开发者提交信息后,微信服务器将发送GET请求到填写的服务器地址URL上,GET请求携带参数如下表所示:

参数 描述
signature 微信加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。
timestamp 时间戳
nonce 随机数
echostr 随机字符串

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

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

官方文档链接:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421135319

官方文档里还给了个PHP的代码示例,不过我做的框架是java的SSM,开始有点懵,后来在网上借鉴相关在ssm里配置相关借口资料研究之后终于走通,所以现在直接贴出java的相关代码

Controller层

package com.wechat.controller;

import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage;
import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage;

import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

import com.wechat.service.WxService;

@RestController
@RequestMapping("/wxportal")
public class WxController {
   
  @Autowired
  private WxService wxService;
 
  private final Logger logger = LoggerFactory.getLogger(this.getClass());
  private static org.apache.log4j.Logger log = org.apache.log4j.Logger.getLogger("logfile");
  @ResponseBody
  @GetMapping(produces = "text/plain;charset=utf-8")
  public String authGet(@RequestParam(name = "signature", required = false) String signature,
      @RequestParam(name = "timestamp", required = false) String timestamp,
      @RequestParam(name = "nonce", required = false) String nonce,
      @RequestParam(name = "echostr", required = false) String echostr) {
   
    this.logger.info("\n接收到来自微信服务器的认证消息:[{}, {}, {}, {}]", signature, timestamp, nonce, echostr)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值