关闭

微信开发:接入微信入口

标签: 微信springMvcjava
143人阅读 评论(0) 收藏 举报
分类:

一,申请开发者账号,进行服务器配置

首先我们得先有一个公众号,到微信公众号平台申请一个,本人申请的是订阅号。网址:公众号平台网址

还需要一个外网地址接口微信推送的消息,微信约定外网地址目前支持80和443接口,本人使用的是花生壳映射本机

1,登陆公众号,选择开发-基本配置-填写服务器配置:
这里写图片描述

参数说明:

URL:服务器地址-用来接收微信消息和事件的接口URL(需保持外网访问)

Token:任意填写,用作生成签名

EncodingAESKey:消息体加解密密钥(自己填写或者自动生成)

此处消息加解密方式如果选择的安全模式则需要用到EncodingAESKey进行解密消息

若是此处点击提交会出现token验证失败,是因为我们需要新建一个工程来进行微信验证。本人此处使用的是SpringMvc,请看下一步

二,验证服务器地址

URL参数:

参数 描述

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

加密/校验流程:
1. 将token、timestamp、nonce三个参数进行字典序排序
2. 将三个参数字符串拼接成一个字符串进行sha1加密
3. 开发者获得加密后的字符串可与signature对比,标识该请求来源于微信请求
4. 通过检验signature对请求进行校验(下面有校验方式)。若确认此次GET请求来自微信服务器,请原样返回echostr参数内容,则接入生效,否则接入失败

@Controller
@RequestMapping("/")
public class WeixinController {

    @RequestMapping("signature")
    @ResponseBody
    public String signature(String signature,
                            String timestamp,
                            String nonce,
                            String echostr){
        try {
            String shaPw = SHA1.getSHA1("xiaofli007", timestamp, nonce);
            if(signature.equals(shaPw))
                return echostr;

        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;

    }
}
   /**
     * 用SHA1算法生成安全签名
     * @param token 
     * @param timestamp 时间戳
     * @param nonce 随机字符串
     * @return 安全签名
     * @throws Exception 
     */
    public static String getSHA1(String token, String timestamp, String nonce) throws Exception 
              {
        try {
            String[] array = new String[] { token,timestamp, nonce};
            StringBuffer sb = new StringBuffer();
            // 字符串排序
            Arrays.sort(array);
            for (int i = 0; i < 3; i++) {
                sb.append(array[i]);
            }
            String str = sb.toString();
            // SHA1签名生成
            MessageDigest md = MessageDigest.getInstance("SHA-1");
            md.update(str.getBytes());
            byte[] digest = md.digest();

            StringBuffer hexstr = new StringBuffer();
            String shaHex = "";
            for (int i = 0; i < digest.length; i++) {
                shaHex = Integer.toHexString(digest[i] & 0xFF);
                if (shaHex.length() < 2) {
                    hexstr.append(0);
                }
                hexstr.append(shaHex);
            }
            return hexstr.toString();
        } catch (Exception e) {
            e.printStackTrace();
            throw new Exception();
        }
    }

本人的配置:

URL:/weixin/signature (为我外网地址)

TOKEN:xiaofli007 (我自行填写-任意)

EncodingAESKey:自动生成(此处不会用到,安全模式下接收消息会用此密钥进行解密)

点击提交,如果出现以下情况:

    1. URL请求超时:检查本机URL是否能正常访问,外网URL是否能正常访问
    2. TOKEN验证失败:确定signature是否与解密过后的字符串一致,本人此处验证过后返回为JSON

提交成功,则可以进行下一步开发。

三,文档阅读

1,微信定义的规则,一定要仔细看微信开发文档(http://mp.weixin.qq.com/wiki),无非就是进行接口的调用。

1
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

Android之微信接入分享,登录功能。

最近在做一个APP项目,需要用到微信分享啊,登录这些。
  • u013066292
  • u013066292
  • 2015-11-07 15:36
  • 9206

微信开放平台android接入笔记(unity3d)

最近接了下微信开放平台的sdk,总结下 首先,申请appId和appSecret这部分就不多讲了,上官网申请,审核通过就可以拿到了 然后就是下载sdk了,点击打开链接 有两个,一个旧的一个新的,一...
  • linxinfa
  • linxinfa
  • 2017-07-11 20:47
  • 2144

Unity 接入微信sdk安卓篇

接入环境 本次使用unity5.3.0,使用AndroidStudio 2.1 ,微信Sdk Android_SDK_3.1.1 参考链接: 雨松大大的教程http://www.xuanyuso...
  • daimou123
  • daimou123
  • 2016-09-08 13:37
  • 1909

Android app 第三方微信支付接入详解

微信支付做了好几遍了,都没有出现什么棘手的问题,下面一一为大家分享一下,欢迎吐槽。 还是老样子,接入微信的支付要第一步添加微信支付官方的包libammsdk.jar首先就处理略坑的一个问题,app应...
  • u013031725
  • u013031725
  • 2016-05-18 18:00
  • 15509

Unity使用官方sdk实现微信、QQ、微博三方登录(Android)

对于一个不懂安卓不会java的新手程序,实现安卓三方登录开始是 一头雾水,不知道从哪下手,通过自己摸索加上多方求助终于完成了。为了自己巩固一下以及一些像我一样的新手走弯路,把详细过程记录下来。 第一次...
  • yangxuan00
  • yangxuan00
  • 2016-11-29 12:30
  • 15150

应用中接入微信登录

iOS应用唤起微信客户端登录
  • feng2qing
  • feng2qing
  • 2016-08-30 14:22
  • 1144

微信企业号接入(使用SpringMVC)

企业号是公众平台为企业客户提供的微信移动应用入口。它帮助企业建立与员工、上下游供应链及企业应用间的连接。利用企业号,企业或第三方合作伙伴可以帮助企业快速、低成本的实现移动轻应用的部署与应用,实现生产、...
  • rzg813
  • rzg813
  • 2014-09-19 13:43
  • 19937

Cocos项目中接入微信SDK

1.做好微信开放平台的审核工作 第一步:创建自己的微信开放平台账号并且提交自己的应用等待审核 审核通过之后就会如上图所示,审核已通过。一般应用审核通过之后只会有微信分享和收藏的功能: ...
  • u013517637
  • u013517637
  • 2017-01-02 15:47
  • 5756

在Web应用中接入微信支付的流程之极简清晰版 (转)

背景: 在Web应用中接入微信支付,我以为只是调用几个API稍作调试即可。 没想到微信的API和官方文档里隐坑无数,致我抱着怀疑人生的心情悲愤踩遍了丫们布下的所有坑。 简要介绍几个主...
  • s501936242
  • s501936242
  • 2016-03-08 13:23
  • 4610

Android开发——支付宝和微信支付快速接入流程

一、Android快速实现支付宝支付1、首先,我们需要前往支付宝开放平台,申请我们的支付功能:https://open.alipay.com/platform/home.htm支付宝首页这里 有两个需...
  • SEU_Calvin
  • SEU_Calvin
  • 2016-11-14 09:59
  • 1937
    个人资料
    • 访问:147次
    • 积分:12
    • 等级:
    • 排名:千里之外
    • 原创:1篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档