微信开发者签名填写_微信支付开发,签名和微信端一直仍然报签名参数错误 - CSDN
  • 微信开放平台 申请时获取应用签名

    千次阅读 2016-03-26 18:47:35
    微信开放平台,申请移动应用的时候: ... 下一步后需要填写应用签名 这可难倒了我了..签名 keyst

    在微信开放平台,申请移动应用的时候:

    https://open.weixin.qq.com/cgi-bin/appcreate?t=manage/createMobile&type=app&lang=zh_CN&token=60682ddfbd9106b1c4b1f9d70f56c98e5f728905

    下一步后需要填写应用签名

    这可难倒了我了..签名 keystore文件可没有这么简单.

    "开发者可以使用签名工具直接从安装当前应用的手机中获取"

    查找文档,根据这个页面提供的一个工具 签名生成工具

    https://open.weixin.qq.com/cgi-bin/readtemplate?t=resource/app_download_android_tmpl&lang=zh_CN

    复制代码
    Android资源下载
    开发工具包
    开发第三方应用所需要的库以及文件。点击下载
    范例代码
    包含了一个完整的范例工程。该范例的使用可以参阅Android平台上手指南:HelloWeixin@Android。点击下载

    签名生成工具用于获取安装到手机的第三方应用签名的apk包。点击下载

     

    复制代码

    可以一个字符串,类似于:

     应用签名:049a9fde46bfc5087f3825582208b248

    安装这个应用可以获取本手机已经安装的某个android软件,根据软件的包名,类似于: com.demo.AppX 来查找这个软件,以及获取这个软件的 应用签名。

    还有一个工具是在

    http://wiki.open.qq.com/wiki/mobile/SDK下载

    Android_SDK_V2.3.1 Connect_logo_1.png的tools目录下有一个  获取签名.apk ,这个也可以获取,但是我测试发现,只能显示一部分的本机应用,有些应用查不到,就麻烦了..

    所以还是用wechart的那个吧.遗憾的是,腾讯为什么不把两个小工具源码也发出来呢??

     

     

     

     

    微信开放平台 文档:

    https://open.weixin.qq.com/cgi-bin/frame?t=resource/res_main_tmpl

     

    Signature的生成方法[java.security 类 Signature]

    http://download.oracle.com/technetwork/java/javase/6/docs/zh/api/java/security/Signature.html

     

    Android获取应用程序信息列表:

    http://www.cnblogs.com/Ryandroid/archive/2011/11/25/2263226.html

    展开全文
  • 微信开发者平台应用创建

    千次阅读 2019-06-06 11:49:44
    微信开发者平台 1.移动应用的创建 (1)填写基本信息(应用的基本内容、应用的App图标等) (2)填写平台信息(应用的官网、应用的平台(ios、android、wp8应用))其中要有应用签名、应用报名填写 (3)...

    微信开发者平台
    1.移动应用的创建
    (1)填写基本信息(应用的基本内容、应用的App图标等)
    (2)填写平台信息(应用的官网、应用的平台(ios、android、wp8应用))其中要有应用签名、应用报名填写
    (3)提交成功
    这里写图片描述

    2.提交成功之后可以进行查询填写的资料,会有7天的待审核时间,如下图:
    这里写图片描述

    3.申请通过的界面如下图(其中获得了朋友圈分享以及微信好友):
    这里写图片描述
    4.现在完成了应用创建,那么接下来就可以在你的android项目中继承你的微信朋友圈和微信好友的分享了。

    展开全文
  • 最近在搞微信开发者模式,对于第一次接触这东西的人来说还真是没有头绪,因为需要跟微信进行交互,难免会碰到一些问题,不像我们在本机开发那样,很快就能把逻辑代码写完。今天主要是让测试耽误了时间,由于微信...

    最近在搞微信的开发者模式,对于第一次接触这东西的人来说还真是没有头绪,因为需要跟微信进行交互,难免会碰到一些问题,不像我们在本机开发那样,很快就能把逻辑代码写完。今天主要是让测试耽误了时间,由于微信只能绑定域名,不能使用ip地址,但是在公司中域名直接解析到线上服务器,但是线上服务器该域名下已经有服务在运行,所以不能使用线上服务器直接进行开发测试,也不能把已有的服务号打开开发者模式,因为打开开发者模式之后好多已有的自动回复就不能使用了,总之遇到了各种问题,记录下开发过程。


    申请测试账号

    进入申请地址:https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login

    点击登录按钮,会弹出一个二维码,使用手机微信扫描即可

    登录成功之后会出现下面的界面


    appID和appsecret在调用微信接口的时候会用到,这里是微信自动给我们生成好的,直接使用就可以。

    URL:是我们自己服务器的URL,用户微信推送用户消息和事件用的。这里只能配置域名,不能使用IP。这个URL是用来接收微信的token认证和消息事件用的,我们自己的服务器要能对这个url的请求进行处理并相应,所以要求该域名必须是外网可以访问的,否则在点“提交”按钮的时候会报token异常。

    Token:是验证签名用的,此处填写的要与代码中的Token保持一致否则验证不过。

    URL和Token都填好之后点击提交按钮,若验证通过,会返回配置成功,否则返回配置失败。

    配置失败的原因可能有几个:

    1、URL地址不能访问

    2、Token填写错误

    注意:在点击提交按钮之前一定要先把服务端的代码写好,否则会返回配置失败,具体实现代码在后面演示。

    到此为止,我们的接口配置信息就算完成了。

    扫描测试号二维码就可以来测试我们的功能了


    Token认证

    我配置的URL是,http://www.xxx.com/XX/wxProcess/service,所以微信会把所有的请求都发到我的/service路径上,包括Token认证和事件处理,我使用两个方法来处理的,但是请求类型不同,Token认证是用的GET请求,事件处理使用的是POST请求。演示代码如下:

    /**
         * 打开开发者模式签名认证
         * @param signature
         * @param timestamp
         * @param nonce
         * @param echostr
         * @return
         */
        @ResponseBody
        @RequestMapping(value = "/service", method = RequestMethod.GET)
        public Object defaultView(String signature, String timestamp, String nonce, String echostr) {
            if (echostr == null || echostr.isEmpty()) {
                return nonce;
            }
            if (SignUtil.checkSignature(signature, timestamp, nonce)) {
                return echostr;
            }
            return nonce;
        }
    
        /**
         * 事件处理
         * @param signature
         * @param timestamp
         * @param nonce
         * @param message
         * @return
         */
        @ResponseBody
        @RequestMapping(value = "/service", method = RequestMethod.POST, consumes = "text/xml", produces = "text/xml;charset=UTF-8")
        public String defaultViewHandler(String signature, String timestamp, String nonce, @RequestBody String message) {
            String result = "";
            if (SignUtil.checkSignature(signature, timestamp, nonce)) {
                result = coreService.processRequest(message);
            }
            return result;
        }

    做签名认证的时候会调用我的defaultView方法,其他的事件都走defaultViewHandler方法。

    coreService.processRequest(): 是对所有的请求事件进行处理

    CoreService.java主要代码实现如下:

    @Override
        public String processRequest(String msg) {
            String respMessage = null;
            try {
                // 默认返回的文本消息内容
                String respContent = "";
    
                // xml请求解析
                Map<String, String> requestMap = MessageUtil.parseXml(msg);
    
                // 发送方帐号(open_id)
                String fromUserName = requestMap.get("FromUserName");
                // 公众帐号
                String toUserName = requestMap.get("ToUserName");
                // 消息类型
                String msgType = requestMap.get("MsgType");
                String eventType = requestMap.get("Event");
    
                // 存在事件类型且类型有效 或者 消息类型可以处理,才需要进行身份处理,防止没有意义的事件引起发送大量绑定消息
                if ((!StringUtils.isEmpty(eventType) && !eventArrays.contains(eventType)) || !msgArrays.contains(msgType)) {
                    return "";
                }
    
                respMessage = handleWxMessage(requestMap);
            } catch (Exception e) {
                LOGGER.error("error", e);
                e.printStackTrace();
            }
            return respMessage;
        }
    
        @Override
        public String handleWxMessage(Map<String, String> requestMap) {
            // 发送方帐号(open_id)
            String fromUserName = requestMap.get("FromUserName");
            // 公众帐号
            String toUserName = requestMap.get("ToUserName");
            // 消息类型
            String msgType = requestMap.get("MsgType");
            // 回复文本消息
            String respContent = "";
            BaseMessage textMessage = new TextMessage();
            textMessage.setMsgType(MessageUtil.RESP_MESSAGE_TYPE_TEXT);
            switch (msgType) {
                case MessageUtil.REQ_MESSAGE_TYPE_TEXT:
                    // 文本类型消息,暂时设置成用户发什么就回复什么
                    String content = requestMap.get("Content");
                    respContent = "";
                    break;
                case MessageUtil.REQ_MESSAGE_TYPE_VOICE:
                    // 使用语音识别功能需要开启微信公众号相关权限
                    // 语音识别结果
                    String recognizeText = requestMap.get("Recognition");
                    respContent = "";
                    break;
                case MessageUtil.REQ_MESSAGE_TYPE_EVENT:
                    // 事件类型
                    String eventType = requestMap.get("Event");
                    // 事件KEY值,qrscene_为前缀,后面为二维码的参数值
                    String eventKey = requestMap.get("EventKey");
                    // 自定义事件
                    switch (eventType) {
                        // 用户未关注时,进行关注后的事件推送
                        case MessageUtil.EVENT_TYPE_SUBSCRIBE:
                            if (isUserBuyLastActivity(fromUserName)) {
                                textMessage = getAddClassTextMessage(fromUserName);
                            } else {
                                textMessage = getDefaultTextMessage(fromUserName);
                            }
                            Integer eventKeyValue = 1;// 带参数的情景值
                            if (!StringUtils.isEmpty(eventKey) && eventKey.contains("qrscene_")) {
                                eventKey = eventKey.replace("qrscene_", "");
                                // 渠道ID
                                eventKeyValue = Integer.parseInt(eventKey);
                            }
                            subscribeAction(fromUserName, eventKeyValue);
                            break;
                        // 取消关注
                        case MessageUtil.EVENT_TYPE_UNSUBSCRIBE:
                            unSubscribeAction(fromUserName);
                            break;
                        // 用户已关注时的事件推送
                        case MessageUtil.EVENT_TYPE_SCAN:
                            textMessage = getDefaultTextMessage(fromUserName);
                            break;
                        default:
                            respContent = "";
                            break;
                    }
                    break;
                default:
                    respContent = "";
                    break;
            }
    
            if (textMessage instanceof TextMessage) {
                // 文本内容为空且是文本消息返回空字符串,防止微信发送异常消息
                String content = ((TextMessage) textMessage).getContent();
                if (StringUtils.isEmpty(respContent) && StringUtils.isEmpty(content)) {
                    return "";
                }
                if (org.apache.commons.lang.StringUtils.isBlank(content)) {
                    ((TextMessage) textMessage).setContent(respContent);
                }
            }
            textMessage.setToUserName(fromUserName);
            textMessage.setFromUserName(toUserName);
            textMessage.setCreateTime(new Date().getTime());
            String xmlString = MessageUtil.messageToXml(textMessage);
            return xmlString;
        }

    上面只是展示了部分核心代码,具体代码可以去我的GitHub下载,地址:https://github.com/liuyanmin/wxDemo

    下面是微信开发相关的链接:

    申请个人测试账号:https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login

    微信被动回复消息开发文档:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140543

    微信错误码文档:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140543


    展开全文
  • 在运行里输入CMD 我把JKS文件放在了E盘里 然后在命令行里输入 E:切换到E盘里 ...出来显示的MD5就是微信里要用的应该签名但是要注意 把冒号去掉然后把大写字母改成小写就是微信所要的应用签名 最后就提交审核吧

    在运行里输入CMD

    我把JKS文件放在了E盘里

    然后在命令行里输入 E:切换到E盘里

    再输入keytool -list -v -keystore 签名.jks 后按回车

    出来显示的MD5就是微信里要用的应该签名但是要注意 把冒号去掉然后把大写字母改成小写就是微信所要的应用签名

    最后就提交审核吧


    展开全文
  • 微信开发者模式一些参数简介 1.开发者提交信息后,微信服务器将发送GET请求到填写的服务器地址URL上,GET请求携带参数如下表所示: signature 微信加密签名,signature结合了开发者填写的token参数和请求中...
  • 初学微信二次开发首先我们要接入微信公众平台。我们首先要有一个开发微信的第三方平台。这个平台可以是自己写的代码,也可以使用已经发布的一些平台。我们选择用自己的域名和虚拟主机,来自己开发。在域名和虚拟主机...
  • 微信开发(一)----成为开发者

    千次阅读 热门讨论 2017-08-11 21:02:40
    最近的开发中用到了微信公众号,通过微信公众号接收一些文本、图片……然后对这些信息进行处理,效果类似下图:   一、申请公众号  公众号开发当然首先得有一个公众号,公众号分为两种:订阅号和服务号,这两个有...
  • 因项目需要,需在微信浏览器中获取实时位置。使用微信jweixin-1.2.0.js初始化时(wx.config)需要签名、appID...详细步骤如下:1、登录微信公众号平台-》开发者工具-》公众平台测试帐号通过绑定测试者微信号,成功后...
  • 用的是md5值,不是sha1值 获取md5值 把md5值 冒号去掉 大写转小写
  • 接入流程详见微信公众平台可用测试号进行开发测试1.填写服务器配置(我使用测试号进行开发的),如下图所示2.验证消息来自微信服务器发送请求,请求地址:http://cmy.ngrok.xiaomiqiu.cn/wechat/chat (自己在微信中...
  • 微信之所以验证开发者服务器,是为了绑定公众号用户与其开发服务器,以完成公众号的用户与公众号之间交互信息的推送。 举个例子来说,比如用户领取了公众号的会员卡,微信就会往这个公众号绑定的服务器地址发送一个...
  • 微信平台开发应用的签名

    万次阅读 热门讨论 2013-05-31 16:56:27
    在审核之前,需要填写应用的相关信息,包括名称、图标、用途说明、签名等。 下面介绍如何获取程序的签名。 解决方案: 选择程序,右键--->android tools --->签名发布,按步骤生成一个签名keystore和一个经过...
  • 我们要用微信jsapi,以及获取用户openid,就要进行签名校验。 先捋一下应用jssdk的整个流程: 步骤一:绑定域名 先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。 备注:登录后可...
  • 1.填写服务器配置  主要填写URL、Token。 2.验证消息的确来自微信服务器  微信公众平台开发者文档内容如下: ... signature:微信加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、no
  • 微信开放平台“开发资源”中网站... 据开发者资质认证处介绍:开发者资质认证通过后,微信开放平台帐号下的应用,将获得微信登录、智能接口、第三方平台开发等高级能力。 所以在微信第三方授权登陆获取用户信息...
  • 接入微信公众平台开发,开发者需要按照如下步骤完成: 1、填写服务器配置 2、验证服务器地址的有效性 3、依据接口文档实现业务逻辑 1、填写服务器配置 下面是微信公众号的截图 点击服务器配置,进入配置页面 ...
  • 微信开发者接口验证。 Token,自己随便定义,与微信填写一致就可以了。 根据微信接入指南描述 http://mp.weixin.qq.com/wiki/17/2d4265491f12608cd170a95559800f2d.html 第一步:填写服务器配置 第二步:...
  • 本节书摘来自华章出版社《微信...2.2 微信开发者中心 2.2.1 配置和启用服务器 登录微信公众平台后台,微信公众平台地址:mp.weixin.qq.com,在左侧列表中最下方,找到“开发者中心”,如图2-19所示。 单击进...
  • 微信公众开发URL和token填写详解

    千次阅读 2018-09-17 15:03:24
    作为一名微信公众号开发者,别人进入你的微信公众号,肯定会看见某些网页,或者给你发某些信息,你需要实时自动回复,所以你需要一个24小时为用户服务的服务器。我们所要填写的url就是你提供的服务器的地址,前提是...
  • 一个微信公众号,参考:微信公众号申请及介绍 内网穿透工具,参考:使用natapp开启内网穿透之旅 数据交互 编辑模式和开发模式的关系: 编辑模式和开发模式是互斥的关系,也就是说,当我们使用开发模式时,编辑模式...
1 2 3 4 5 ... 20
收藏数 4,302
精华内容 1,720
关键字:

微信开发者签名填写