我通过java代码去获得用户的openid,一直报redirect_uri。

我页面代码的链接为:

https://open.weixin.qq.com/connect/oauth2/authorize?
appid=APPID&
redirect_uri=ENCODE(URL)&
response_type=code&
scope=snsapi_base&
state=state#wechat_redirect"

当中APPID为项目的appid,ENCODE(URL)为链接希望跳转的url地址(url须要urlencode),url的encode在java中代码实现例如以下:

        // url进行编码
String url = "http://evan.tunnel.mobi/zzaClient/bindindex.html";
String url_encode = java.net.URLEncoder.encode(url, "utf-8"); request.setAttribute("url_encode", url_encode);

当前台页面构造完毕后,点击页面链接会跳转到bindindex.html的controller,在这个controller的代码写法是:

        // 须要在“开发人员中心”---网页账号--改动。

改动成域名。不要带http 。比方:evan.tunnel.mobi
// 通过code获取openid
String code = request.getParameter("code"); JsonObject json = WeixinUtils.getOpenId(getopenid_url, app_id, secret,
code, "authorization_code"); String openid = json.get("openid").getAsString();
logger.info(openid + "------------------------------openid");

但是奇怪的是,以上全部參数都没有写错,url也进行编码了。但是还是会报redirect_uri 參数错误。解决的方法是: 须要在微信公众平台的“开发人员中心”—网页账号–改动 把“授权回调页面域名”改成server的域名就可以。

如图:

到这样,openid就能够正常获得了。有些开发人员可能会有些疑问,假设我每次更改都要部署到正式环境进行測试。这样多浪费时间,事实上我们能够通过ngrok将本地地址映射到外网,这样就能够将开发环境的地址直接映射到外网。

详细操作详见博客:

http://blog.csdn.net/zl544434558/article/details/46593063

最后附上一张报错的图片

redirect_uri 參数错误的解决的方法的更多相关文章

  1. MyBatis參数格式化异常解决方式:MyBatisSystemException:

    MyBatis參数格式化异常解决方式:MyBatisSystemException: 问题:今天使用MyBatis开发查询功能时,前台传入查询条件明明是String类型,到后台就报错,提示格式化数值错 ...

  2. Extjs4 Combobox 联动始终出现loading错误的解决的方法

    当反复选者combobox 联动时,下级的Combobox 会出现loading的错误表现形式,尽管Store数据已载入完也是一样. 废话少说贴代码就知道怎样处理了:(注意红色部分的关键语句) }, ...

  3. GCC编译uboot出现(.ARM.exidx+0x0): undefined reference to `__aeabi_unwind_cpp_pr0'错误的解决的方法

    /opt/arm-2010.09/bin/../lib/gcc/arm-none-linux-gnueabi/4.5.1/armv4t/libgcc.a(_bswapsi2.o):(.ARM.exid ...

  4. Android-68-Tomcat各种启动错误的解决的方法,如:Exception in thread "Thread-6" NoClassDefFoundError,Document base E:\

     上午遇到一个棘手的事儿,导入一个project,结果把原有的Tomcatserver给导坏了.各种红的.黑的.蓝的错误满天飞啊,刚弄完一个项目,怕被毁了.我那个揪心呀! 还好.在走头无路的情况下 ...

  5. 关于Oracle安装完毕后,登录时遇到的错误的解决的方法

    1 提示无监听服务 解决方法:打开Net Configuration Assistant 依照提示删除现有的监听服务,然后又一次建立一个就可以. 2 SQL Plus登陆时提示username或pas ...

  6. ubuntu无法解析主机错误与解决的方法

    今天在用命令行进行操作的时候,出现了无法解析主机的错误.google了一下,原来是hosts文件的问题.更改过来即可了 进入终端,输入 sudo gedit /etc/hosts.输入password ...

  7. 使用Genymotion调试出现错误INSTALL_FAILED_CPU_ABI_INCOMPATIBLE解决的方法

    今天在使用android studio在Genymotion上调试程序出现INSTALL_FAILED_CPU_ABI_INCOMPATIBLE导致程序安装不了: 后来百度发现是要安装:http:// ...

  8. win7系统中更新错误怎么解决的方法

    不少安装win7旗舰版系统的网友们都喜欢关注微软发布的一些消息,尤其是关于win7旗舰版系统的更新补丁时都会下载并安装的.可是不少网友在自动更新补丁的时遇到自动更新失败的问题,下面来介绍一下具体操作! ...

  9. Android快捷支付SDK Demo resultStatus={4001};memo={參数错误};result={}问题

    在支付宝中粘贴RSA公钥并提交,然后问题就完美攻克了...

随机推荐

  1. IDE介绍以及Eclipse的简单使用

    一.IDE介绍 ①   什么是IDE? 1.  IDE全称是”Integrated Development Environment”,中文称为“集成开发环境”; 2.是用于提供程序开发环境的应用程序, ...

  2. 九度oj 题目1452:搬寝室

    题目描述: 搬寝室是很累的,xhd深有体会.时间追述2006年7月9号,那天xhd迫于无奈要从27号楼搬到3号楼,因为10号要封楼了.看着寝室里的n件物品,xhd开始发呆,因为n是一个小于2000的整 ...

  3. Linux Shell系列教程之(六)Shell数组

    本文是Linux Shell系列教程的第(六)篇,更多shell教程请看:Linux Shell系列教程 Shell在编程方面非常强大,其数组功能也非常的完善,今天就为大家介绍下Shell数组的用法. ...

  4. JAVA接口与抽象类区别

    接口 1.接口可以继承多个接口,extends 接口1,接口2,接口3 2.接口的成员变量默认是public static abstract,必须初始化的: 3.接口只能有抽象方法,继承接口的类必须实 ...

  5. TCP面试题之为什么需要三次握手才能建立连接/四次挥手才能断开连接

    为什么需要三次握手才能建立连接? 答:为了初始化Sequence Number(序列号)的初始值,要通知双方数据包的序号,作为以后通讯的序号,以保证在网络传输过程,不会因为网络原因而导致乱序: 为什么 ...

  6. 如何从sql server导出到csv文件

    如何从sql server导出到csv文件,具体代码如下: private static void WriteHeader(SqlDataReader reader, TextWriter outpu ...

  7. Linux System Programming 学习笔记(七) 线程

    1. Threading is the creation and management of multiple units of execution within a single process 二 ...

  8. http client transfer

    背景 在平时工作中我偶尔会写一些脚本监控HTTP接口的健康状况,基本上都是发送HTTP GET或HTTP POST请求,然后检测响应内容.但一直用的是WebClient和HttpWebRequest, ...

  9. Java原来如此-反射机制

    在Java运行时环境中,对于任意一个类,能知道这个类有哪些属性和方法.对于任意一个对象,能调用它的任意一个方法.这种动态获取类的信息以及动态调用对象的方法的功能来自于Java语言的反射(Reflect ...

  10. .Net Core中的配置文件源码解析

    一.配置简述 之前在.Net Framework平台开发时,一般配置文件都是xml格式的Web.config,而需要配置其他格式的文件就需要自己去读取内容,加载配置了..而Net Core支持从命令行 ...