微信测试号管理——接口配置信息的配置

微信测试账号配置 ———接口配置信息

进入微信公众平台 获取测试账号appId 和 secretKey

配置接口信息

 注意:

1.url的端口 http 为80   https 为443

2.Token为任意数字与字母组合且长度3-32

由于我的服务器80端口已经被nginx监听,所以做了一个nginx转发

我的wechatService服务监听的web端口为9080

server.port=9080

WechatContoller.java

package com.wl.wechat.contoller;

import org.apache.commons.codec.digest.DigestUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Arrays;

/**
 * Created by wl on 2021/4/10.
 */
@RestController
@RequestMapping("/wx")
public class WxController {

    private static final String TOKEN = "wl123";

    @RequestMapping("/receiveWx")
    public void receiveWxToken(HttpServletRequest request,HttpServletResponse response) throws Exception{

        String signature = request.getParameter("signature");
        String timestamp = request.getParameter("timestamp");
        String nonce = request.getParameter("nonce");
        String echostr = request.getParameter("echostr");
        System.out.println("signature: " + signature);
        System.out.println("timestamp: " + timestamp);
        System.out.println("nonce: " + nonce);
        System.out.println("echostr: " + echostr);
        String[] params = new String[]{nonce,timestamp,TOKEN};
        Arrays.sort(params);
        String signatureResult = DigestUtils.sha1Hex(params[0]+params[1] + params[2]);
        //校验签名
        if(!signatureResult.equals(signature)) {
            throw new RuntimeException("signature is not the same wechat signature is " + signature + " signatureResult is " + signatureResult);
        }
        response.getWriter().write(echostr);
    }

    @RequestMapping("/login")
    public String login(HttpServletRequest request){
        return "ok";
    }

}

nginx部分配置如下(一般nginx配置在/etc/nginx/nginx.conf 我的服务器为腾讯云ubuntu20  nginx配置在 /etc/nginx/sites-available/default)

upstream wechat_server{
            server localhost:9080;
}

server {
        listen 80 default_server;
        listen [::]:80 default_server;
        location /wechat/ {
             proxy_pass   http://wechat_server/wechat/;
          }
        .....
}

上面配置是将 http://hostIp/wechat/的请求转发到 http://hostIp:9080/wechat/上

重启nginx 并且启动java 服务

sudo /etc/init.d/nginx reload

提交微信测试账号的 接口配置信息(Token需要与java程序中的TOKEN一致)

 

成功! 

java日志如下

signature: e42508e3982e6f1c414fb4d2e1a857fdcdc31af1
timestamp: 1618138978
nonce: 1621993589
echostr: 4331993227658786679

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值