关于公众号平台的测试与运营 中

上次讲到了如何开发微信公众平台和关于内网穿透的一些知识点,那个是开发微信公众号的重要一步。

书接上一回,把基本的东西搞好之后就可以准备开发微信公众号,在开发的过程中我们先要测试,当打开电脑,第一步就是把之前的东西准备号,请看关于开发公众号平台的测试与运营 上

登录公众号,打开设置与开发>开发者工具>公众平台测试账号,

之后你就能看见测试号信息,记住appID、appsecret,还有接口配置信息的URL、token在后面在开发工具中会用到

在接口配置信息中,打开消息接口信息使用指南, 下滑找到用户管理,点击进入用户标签管理,会看到接口调用请求协议,我们先找到,后面会用到。

铺垫准备就绪后,我们打开开发软件,我用的是MyEclipse,打开创建两个.java文件,放入两个插件、MyRequest.java、SHA1.java

上面说创建两个.java文件,打开其中一个,我这里是Test.java,编写代码

package cn.gd;

import com.alibaba.fastjson.JSONObject;

public class Test {
	public static String getToken(){
		//接口请求四要素
				//一、地址(URL)
				String url="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET";
				//二、请求参数
				String appid="wx1bf8211edc20bf77";
				String appsecret="235fa1d985d938bce40d659e5ffae1e7";
				url=url.replace("APPID",appid).replace("APPSECRET",appsecret);
				//3请求方式(GET/POST)
				String r=MyRequest.get(url);
				JSONObject json=JSONObject.parseObject(r);//把json格式的字符串转化为json对象
				String at=json.getString("access_token");//
				//4返回值
				//System.out.println(at);
				return at;
		
	}
	
	public static void main(String[]args){
		//用接口四要素构建请求获取所有关注用户的功能
		String url="https://api.weixin.qq.com/cgi-bin/user/get?access_token=ACCESS_TOKEN&next_openid=NEXT_OPENID";
		String at=getToken();
		url=url.replace("ACCESS_TOKEN",at).replace("NEXT_OPENID","");
		String r=MyRequest.get(url);
		JSONObject json=JSONObject.parseObject(r);//把JSON格式的字符串转化为JSON对象
		System.out.println(json);
		//输出openid列表
	}

把上面提到的公众号的appID、appsecret、url(请求协议)填写在其中,文件lib中的五个插件放到,WebRoot中

打开weixin.java编写源代码

package cn.gd;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Enumeration;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


@WebServlet("/Weixin")
public class Weixin extends HttpServlet {

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	
		Enumeration<String> names=request.getParameterNames();//拿到全部的信息名称集合
		while(names.hasMoreElements()){
			String key=names.nextElement();
			System.out.println(key+"\t"+request.getParameter(key));
		}
		//验证过程Start***********************************************
		String signature=request.getParameter("signature");//从网络上传来的
		String echostr =request.getParameter("echostr");//从网络上传来
		String timestamp=request.getParameter("timestamp");
		String nonce=request.getParameter("nonce");
		String token="goodgoodstudy";//注意,这个字符串不是在网络上传过来的,而是在后台设置好的,必须一致
		boolean result=true;//假设是微信来的信息
		
		//1)将token,timestamp,nonce三个参数进行字典排序
		ArrayList<String> list=new ArrayList<String>();//准备一个空的字符串列表,用作排序的容器
		list.add(token);list.add(timestamp);list.add(nonce);//把三个准备排序的字符串装入容器
		Collections.sort(list);//执行排序
		//2)将三个参数字符串拼接成一个字符串进行sha1加密
		String sorted=list.get(0)+list.get(1)+list.get(2);//按顺序拼接
		String s2=SHA1.encode(sorted);//加密生成签名s2
		//3)开发者获得加密后的字符串可与signature对比,标识该请求来源于微信
		result=s2.equals(signature);
		//验证过程stop**************************************************
		PrintWriter out =response.getWriter();
		if(result){//如果验证成功,则返回echostr
			out.print(echostr);
		}else{//否则说明这不是来自微信的请求
			System.out.println("参数不对");
			out.print("非法来源,已经被记录,ip="+request.getRemoteAddr());
		}
		//out.print(request.getParameter("echostr"));
		out.flush();
		out.close();
	}
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

编写代码的过程中注意书写规范,不然很容易出错,这期文章到这里,下期见。

  • 12
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ASP.NET微信公众号平台系统源码是一种用于构建微信公众号的框架和代码库。它提供了一系列的接口和功能,帮助开发人员快速地搭建和定制自己的微信公众号平台。 该系统源码基于ASP.NET技术开发,结合微信公众号开放平台的接口和功能进行了集成。它提供了一种便捷的方式,让开发人员可以通过编写少量的代码来实现与微信公众号的交互和功能扩展。 ASP.NET微信公众号平台系统源码具备以下特点和功能: 1. 用户管理:能够管理微信公众号的用户信息,包括用户的基本信息、关注状态、交互记录等。 2. 消息管理:能够接收和发送微信公众号的消息,包括文本消息、图片消息、语音消息、视频消息等。 3. 菜单管理:能够创建和管理微信公众号的自定义菜单,包括点击菜单、跳转链接、触发推送消息等。 4. 接口管理:能够对接微信公众号开放平台的各种接口,包括获取用户信息、发送模板消息、创建二维码等。 5. 素材管理:能够上传和管理微信公众号的素材,包括图文消息、图片、音频、视频等。 6. 数据统计:能够统计微信公众号的用户活跃度、消息互动情况、菜单点击量等数据。 ASP.NET微信公众号平台系统源码的优势在于它具有良好的扩展性和定制性,开发人员可以根据自己的需求进行二次开发和定制。同时,它也提供了一定的安全机制和权限控制,保障了用户信息和数据的安全性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值