微信公众平台开发详细步骤与java代码

1、微信公众平台设置

首先在https://mp.weixin.qq.com/注册一个公众平台账号(服务号、订阅号、企业号的区别

微信公众平台地址:https://mp.weixin.qq.com

登录微信公众平台后台,在左侧列表中最下方,找到“ 基本配置 ”,点击进入

进入服务器配置填写框。

点击“修改配置”按钮

这里url需要填以下申请好的地址,tocken需要填写代码中指定好的。

2、申请服务器资源

创建新浪云计算应用

申请账号

我们使用SAE新浪云计算平台作为服务器资源,
申请地址为:

http://www.sinacloud.com

直接点击上述网址,可以看到右上角微博登录的链接。

创建新应用 

回到首页,在菜单顶部选择 控制台 ,再选择 云应用SAE 

进入SAE应用列表

应用创建成功。并自动跳转到应用列表中,上传代码包就好了。

3、核心代码(完整代码下载)

import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;import java.util.Arrays;

/** * Created by Gensis on 2016/8/10. */public class SignUtil {    private static String token = "weixinlogin";

    public static boolean checkSignature(String signature, String timestamp, String nonce) {

            String[] arr = new String[]{token, timestamp, nonce};            // 将 token, timestamp, nonce 三个参数进行字典排序            Arrays.sort(arr);            StringBuilder content = new StringBuilder();            for(int i = 0; i < arr.length; i++){                content.append(arr[i]);            }            MessageDigest md = null;            String tmpStr = null;

            try {                md = MessageDigest.getInstance("SHA-1");                // 将三个参数字符串拼接成一个字符串进行 shal 加密                byte[] digest = md.digest(content.toString().getBytes());                tmpStr = byteToStr(digest);            } catch (NoSuchAlgorithmException e) {                // TODO Auto-generated catch block                e.printStackTrace();            }            content = null;            // 将sha1加密后的字符串可与signature对比,标识该请求来源于微信            return tmpStr != null ? tmpStr.equals(signature.toUpperCase()): false;        }

        /**         * 将字节数组转换为十六进制字符串         * @param digest         * @return         */    private static String byteToStr(byte[] digest) {        // TODO Auto-generated method stub        String strDigest = "";        for(int i = 0; i < digest.length; i++){            strDigest += byteToHexStr(digest[i]);        }        return strDigest;    }

    /**     * 将字节转换为十六进制字符串     * @param b     * @return     */    private static String byteToHexStr(byte b) {        // TODO Auto-generated method stub        char[] Digit = {‘0‘, ‘1‘, ‘2‘, ‘3‘, ‘4‘, ‘5‘, ‘6‘, ‘7‘, ‘8‘, ‘9‘, ‘A‘, ‘B‘, ‘C‘, ‘D‘, ‘E‘, ‘F‘};        char[] tempArr = new char[2];        tempArr[0] = Digit[(b >>> 4) & 0X0F];        tempArr[1] = Digit[b & 0X0F];

        String s = new String(tempArr);        return s;    }}    
时间: 2024-08-06 03:40:32

微信公众平台开发详细步骤与java代码的相关文章

微信公众平台开发教程新手解惑40则

[编者按]由CSDN和<程序员>杂志联合主办的 2014年微信开发者大会 将于8月23日在北京举行,邀请了来自于一线的微信开发商技术负责人或资深工程师从企业应用开发高级篇.智能客服与LBS.微信支付.微信上的HTML5社交应用.微信小店开发等角度为与会者带来实战分享( 议程 ).目前报名处于优惠票价阶段,通过申请加入CSDN CTO俱乐部即可享受8折购票价格(票款中均含午餐),在8月1日前完成付款的同学还将免费获赠微信开发图书一本(两选一,活动现场发放).  值得一提的是,CSDN优秀博主.畅

微信公众平台开发基础知识38问

最近接触微信公众号后台的开发,看了一些资料基本可以满足简单的需求开发.笔者将这些问题及解答整理出来,以帮助更多初学者少走弯路. 1.订阅号与服务号的主要区别是什么? 订阅号每天能群发一条消息,没有自定义菜单及高级接口权限(目前 个人.企业订阅号关联腾讯微博认证之后才有自定义菜单):服务号有自定义菜单微信认证之后有高级接口权限,但每月只能群发一条消息. 2.到底该申请订阅号还是服务号? 申请哪种类型的公众账号,主要取决于账号的用途.服务号主要面向企业和组织,旨在为用户提供服务:订阅号主要面向媒体和

微信公众平台开发教程第1篇-新手解惑

1.订阅号与服务号的主要区别是什么?订阅号每天能群发一条消息,没有自定义菜单及高级接口权限(目前 个人.企业订阅号关联腾讯微博认证之后才有自定义菜单):服务号有自定义菜单微信认证之后有高级接口权限,但每月只能群发一条消息. 2.到底该申请订阅号还是服务号?申请哪种类型的公众账号,主要取决于账号的用途.服务号主要面向企业和组织,旨在为用户提供服务:订阅号主要面向媒体和个人,旨在为用户提供信息和资讯. 3.订阅号是否支持编程开发?不管是订阅号,还是服务号,在高级功能中都有编辑模式和开发模式,订阅号也

第九篇 :微信公众平台开发实战Java版之如何实现自定义分享内容

微信JS-SDK是微信公众平台面向网页开发者提供的基于微信内的网页开发工具包. 通过使用微信JS-SDK,网页开发者可借助微信高效地使用拍照.选图.语音.位置等手机系统的能力,同时可以直接使用微信分享.扫一扫.卡券.支付等微信特有的能力,为微信用户提供更优质的网页体验. 本次的内容: 实现:分享到朋友圈,qq,qq空间,微信朋友的功能. 基础接口 判断当前客户端版本是否支持指定JS接口 wx.checkJsApi({ jsApiList: ['chooseImage'], // 需要检测的JS接

Java微信公众平台开发(一)--接入微信公众平台

转自:http://www.cuiyongzhi.com/post/38.html (一)接入流程解析 在我们的开发过程中无论如何最好的参考工具当然是我们的官方文档了:http://mp.weixin.qq.com/wiki/8/f9a0b8382e0b77d87b3bcc1ce6fbc104.html 通过文档我们可以看出其中接入微信公众平台开发,开发者需要按照如下步骤完成: 填写服务器配置 验证服务器地址的有效性 依据接口文档实现业务逻辑 按照上面的逻辑可能是填写服务器配置信息是在第一步,但

第四篇 :微信公众平台开发实战Java版之完成消息接受与相应以及消息的处理

温馨提示: 这篇文章是依赖前几篇的文章的. 第一篇:微信公众平台开发实战之了解微信公众平台基础知识以及资料准备 第二篇 :微信公众平台开发实战之开启开发者模式,接入微信公众平台开发 第三篇 :微信公众平台开发实战之请求消息,响应消息以及事件消息类的封装 首先,我们看看原来写的dopost方法: /** * 处理微信服务器发来的消息 */ public void doPost(HttpServletRequest request, HttpServletResponse response) thr

Java微信公众平台开发模式+自定义按钮源码

首先,想用开放模式需要先成为开发者.成为开发者有两种写法. 一是:通过jsp页面,用out.print("echostr")//SHA1加密的字符串: 二是:通过Servlet.doGet返回exhostr,给微信平台. 这里我只写第二种方式的请求(这里的请求是以get方式请求),代码如下: import java.io.IOException; import java.io.InputStream; import java.io.PrintWriter; import java.ut

java微信公众平台开发事件推送

import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; import org.apache.log4j.Logger; import org.springframework.stereotype.Service; import com.ifp.weixin.biz.cor

Java微信公众平台开发_02_启用服务器配置

一.准备阶段 需要准备事项: 1.一个能在公网上访问的项目: 见:[  Java微信公众平台开发_01_本地服务器映射外网  ] 2.一个微信公众平台账号: 去注册:(https://mp.weixin.qq.com/) 3.策略文件 见:[ Java企业微信开发_Exception_02_java.security.InvalidKeyException: Illegal key size ] 4.微信官方消息加解密工具包 需要下载微信官方的消息加解密的工具包,主要是AES加密工具 下载地址: