我通过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. FTP的搭建过程,以及遇到的坑

    在之前的博客中,我有说到,我最喜欢用Yum在线安装的方式安装软件,简单省事儿.现在看来,也不尽然,关键是,无法快速找到我要的文件,整个whereis 也很累.所以,现在觉得,还是乖乖的整个压缩包,自行 ...

  2. iOS键盘高度的获取

    代码如下: - (void)viewDidLoad { [super viewDidLoad]; //增加监听,当键盘出现或改变时收出消息 [[NSNotificationCenter default ...

  3. BZOJ1875 [SDOI2009]HH去散步 【dp + 矩阵优化】

    题目 HH有个一成不变的习惯,喜欢饭后百步走.所谓百步走,就是散步,就是在一定的时间 内,走过一定的距离. 但 是同时HH又是个喜欢变化的人,所以他不会立刻沿着刚刚走来的路走回. 又因为HH是个喜欢变 ...

  4. 用java通过键盘输入若干个int,直到输入#结束

    转 import java.util.ArrayList; import java.util.Scanner; public class Test { public static void main( ...

  5. 【CF712D】Memory and Scores(概率,DP,前缀和)

    题意:AB两人玩一个游戏,两人玩t轮 每人每次随机且等概率从[-k,k]中取一个数字加到总得分中 得分高者赢 已知A B初始分别有a b分,问A取得胜利的概率是多少 (1 ≤ a, b ≤ 100,  ...

  6. 用jquery写的图片懒加载

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...

  7. 禁用VMware的vmem文件

    新建一个虚拟机,VMWare会默认为其创建一个虚拟内存文件*.VMEM, 这个文件会影响系统的磁盘性能,所以最好关闭它. 该当是找到*.vmx文件,在文件最后加入一行 mainMem.useNamed ...

  8. HDU 6464 权值线段树 && HDU 6468 思维题

    免费送气球 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submi ...

  9. 洛谷——P1078 文化之旅

    P1078 文化之旅 题目描述 有一位使者要游历各国,他每到一个国家,都能学到一种文化,但他不愿意学习任何一种文化超过一次(即如果他学习了某种文化,则他就不能到达其他有这种文化的国家).不同的国家可能 ...

  10. Nginx日志参数、location匹配规则、设置密码

    1.三个参数 a)$http_referer:记录此次请求是从哪个链接访问过来的: 是直接访问,还是从其他网站跳转过来的. 例如:访问:http://www.etiantian.com/,其页面首页是 ...