起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7869|回复: 24

[结贴] 微信里分享后新用户点击进入后提示40029.

[复制链接]

64

主题

321

帖子

679

积分

高级会员

Rank: 4

积分
679
QQ
发表于 2017-5-18 14:08:43 | 显示全部楼层 |阅读模式
http://mfxxl.net:80/mfxxl/v-YfIV ... Hash=%23!main%2F%2F(%23!windowContainer4%2F%2F(%7B%22src%22%3A%22%2Fmfxxl%2Fv-YfIVFv-zh_CN-%2Fmfxxl%2Finfodetail.w%22%2C%22params%22%3A%7B%22data%22%3A%7B%22info_id%22%3A2%7D%7D%7D)%2F!%2Finfodetailcontent)

微信分享时的url如上,如果是用户存在就不会报错,跳转也是正常的。
如果是新用户在微信内点击了该分享内容,进入后就是提示40029,没有使用微信支付,在微信调试里提示如下:
微信截图_20170518140351.png

按照意思来看是签名出错了,但是那个40029应该表示code只能使用一次,请问这是什么问题?

64

主题

321

帖子

679

积分

高级会员

Rank: 4

积分
679
QQ
 楼主| 发表于 2017-5-18 14:13:25 | 显示全部楼层
本帖最后由 ufo1982ufo 于 2017-5-18 14:16 编辑

鉴于之前有个code被舍弃的问题(请原谅我深夜的吐槽,微信code被舍弃了!),我修改了tomcat下ROOT文件夹的index.html,后来我还原了。也就是完全按照起步的那个外卖案例来做,还是提示40029!微信分享的页面引入
        var Utils = require("$UI/system/components/justep/common/utils");
分享url用了这个:        var slink = Utils.getShareUrl();

至今未解是什么原因!
回复 支持 反对

使用道具 举报

发表于 2017-5-18 14:17:59 | 显示全部楼层
code 当然只能使用一次了!
每次刷新页面。code都要重新获取的!
参考外卖案例
在首页中(index.w)使用
var weixinCode = this.getContext().getRequestParameter("code");

重新获取code  
每次新打开的页面都要重新获取它的!
获取当前分享的URL
http://docs.wex5.com/wex5-app-question-list-2065
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

64

主题

321

帖子

679

积分

高级会员

Rank: 4

积分
679
QQ
 楼主| 发表于 2017-5-18 15:15:35 | 显示全部楼层
liangyongfei 发表于 2017-5-18 14:17
code 当然只能使用一次了!
每次刷新页面。code都要重新获取的!
参考外卖案例

按照上面的方法,分享出去的页面其实已经加了一个code。
而新用户点进去该链接后
var weixinCode = this.getContext().getRequestParameter("code");
得到的code也是分享的code,再用这个code请求岂不是同一个code?
回复 支持 反对

使用道具 举报

64

主题

321

帖子

679

积分

高级会员

Rank: 4

积分
679
QQ
 楼主| 发表于 2017-5-18 15:39:39 | 显示全部楼层
liangyongfei 发表于 2017-5-18 14:17
code 当然只能使用一次了!
每次刷新页面。code都要重新获取的!
参考外卖案例

我试着在起步的微信号内分享页面,分享出来的地址如下:
  1. http://x5.justep.com/x5/UI2/v_411711_nol_zh_CNs_desktopd_/takeout/index.w?code=081EmpwT1inG5913ovzT1kfnwT1EmpwW&state=STATE#!ownContent
复制代码


这说明分享后的url其实加入了code进去。
再回到我的代码,我的也是和案例一样分享后带了code,然而新用户点击后提示40163,这个微信错误意思是已经被使用了!这岂不更说明code都是一个了吗?
既然是同一个code,那这个问题又如何解决呢?还是我的代码有问题?基本都是按照takeout外卖写的!分享也是您发给我的那个分享出去的!
  1. HTTP Status 500 - 执行Action:weixin/weixin/userinfo失败,Action[weixin/weixin/userinfo]执行失败,微信错误 errcode=40163, errmsg=code been used, hints: [ req_id: nyXx.A0640th21 ]

  2. type Exception report

  3. message 执行Action:weixin/weixin/userinfo失败,Action[weixin/weixin/userinfo]执行失败,微信错误 errcode=40163, errmsg=code been used, hints: [ req_id: nyXx.A0640th21 ]

  4. description The server encountered an internal error that prevented it from fulfilling this request.

  5. exception

  6. javax.servlet.ServletException: 执行Action:weixin/weixin/userinfo失败,Action[weixin/weixin/userinfo]执行失败,微信错误 errcode=40163, errmsg=code been used, hints: [ req_id: nyXx.A0640th21 ]
  7. json:{"errcode":40163,"errmsg":"code been used, hints: [ req_id: nyXx.A0640th21 ]"}
  8.         com.justep.baas.servlet.BaasServlet.execService(Unknown Source)
  9.         com.justep.baas.servlet.BaasServlet.service(Unknown Source)
  10. root cause

  11. com.justep.baas.action.ActionException: Action[weixin/weixin/userinfo]执行失败,微信错误 errcode=40163, errmsg=code been used, hints: [ req_id: nyXx.A0640th21 ]
  12. json:{"errcode":40163,"errmsg":"code been used, hints: [ req_id: nyXx.A0640th21 ]"}
  13.         com.justep.baas.action.Engine.execAction(Unknown Source)
  14.         com.justep.baas.action.Engine.execAction(Unknown Source)
  15.         com.justep.baas.servlet.BaasServlet.execService(Unknown Source)
  16.         com.justep.baas.servlet.BaasServlet.service(Unknown Source)
  17. root cause

  18. java.lang.reflect.InvocationTargetException
  19.         sun.reflect.GeneratedMethodAccessor32.invoke(Unknown Source)
  20.         sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
  21.         java.lang.reflect.Method.invoke(Unknown Source)
  22.         com.justep.baas.action.Engine.execAction(Unknown Source)
  23.         com.justep.baas.action.Engine.execAction(Unknown Source)
  24.         com.justep.baas.servlet.BaasServlet.execService(Unknown Source)
  25.         com.justep.baas.servlet.BaasServlet.service(Unknown Source)
  26. root cause

  27. me.chanjar.weixin.common.exception.WxErrorException: 微信错误 errcode=40163, errmsg=code been used, hints: [ req_id: nyXx.A0640th21 ]
  28. json:{"errcode":40163,"errmsg":"code been used, hints: [ req_id: nyXx.A0640th21 ]"}
  29.         me.chanjar.weixin.common.util.http.SimpleGetRequestExecutor.execute(SimpleGetRequestExecutor.java:40)
  30.         me.chanjar.weixin.common.util.http.SimpleGetRequestExecutor.execute(SimpleGetRequestExecutor.java:20)
  31.         me.chanjar.weixin.mp.api.WxMpServiceImpl.oauth2getAccessToken(Unknown Source)
  32.         weixin.UserInfo.service(UserInfo.java:26)
  33.         weixin.Weixin__do.userinfo(Weixin__do.java:139)
  34.         sun.reflect.GeneratedMethodAccessor32.invoke(Unknown Source)
  35.         sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
  36.         java.lang.reflect.Method.invoke(Unknown Source)
  37.         com.justep.baas.action.Engine.execAction(Unknown Source)
  38.         com.justep.baas.action.Engine.execAction(Unknown Source)
  39.         com.justep.baas.servlet.BaasServlet.execService(Unknown Source)
  40.         com.justep.baas.servlet.BaasServlet.service(Unknown Source)
  41. note The full stack trace of the root cause is available in the Apache Tomcat/6.0.41 logs.

  42. Apache Tomcat/6.0.41
复制代码
回复 支持 反对

使用道具 举报

发表于 2017-5-18 15:52:32 | 显示全部楼层
ufo1982ufo 发表于 2017-5-18 15:39
我试着在起步的微信号内分享页面,分享出来的地址如下:

URL 有问题!
在微信中打开的URL ,如果想实现支付
http://docs.wex5.com/wex5-app-question-list-2067/

https://open.weixin.qq.com/ 这种格式的URL才能有 微信公众号 的能力

直接分享 http://x5.justep.com 的URL 只有普通页面的访问能力
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

64

主题

321

帖子

679

积分

高级会员

Rank: 4

积分
679
QQ
 楼主| 发表于 2017-5-18 16:07:03 | 显示全部楼层
liangyongfei 发表于 2017-5-18 15:52
URL 有问题!
在微信中打开的URL ,如果想实现支付
http://docs.wex5.com/wex5-app-question-list-2067/

使用 Utils.getShareUrl()生成的url是没有“https://open.weixin.qq.com/ ”这种的。
如果对 Utils.getShareUrl()生成的url进行encodeURI后加入“https://open.weixin.qq.com/connect/oauth2/authorize?appid=。。。。。”这种的引导认证的url后,进入就是提示uri参数错误!
如何实现你说的:https://open.weixin.qq.com/ 这种格式的URL才能有 微信公众号 的能力?
回复 支持 反对

使用道具 举报

发表于 2017-5-18 16:33:35 | 显示全部楼层
ufo1982ufo 发表于 2017-5-18 16:07
使用 Utils.getShareUrl()生成的url是没有“https://open.weixin.qq.com/ ”这种的。
如果对 Utils.getSh ...

可以自己拼接URL  或者那个连接的视频,你先看一遍!视频讲解看过,估计你就清楚了!

/Baas/weixin/WxMpServiceInstance.java

这个里面也有拼接 URL地址的代码
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

64

主题

321

帖子

679

积分

高级会员

Rank: 4

积分
679
QQ
 楼主| 发表于 2017-5-18 17:09:29 | 显示全部楼层
liangyongfei 发表于 2017-5-18 16:33
可以自己拼接URL  或者那个连接的视频,你先看一遍!视频讲解看过,估计你就清楚了!

/Baas/weixin/WxMp ...

梁老师指的是这个吗?
  1.                 takeout.setUrl("https://open.weixin.qq.com/connect/oauth2/authorize?appid=" + this.getWxMpConfigStorage().getAppId() + "&redirect_uri=http%3A%2F%2Fmfxxl.net&"
  2.                                 + "response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect");
复制代码


我在公众号菜单就是这种拼接的,就是中间那部分redirect_uri=不会拼,因为我的url是index.w==>main.w==>windowContainer4==>infodetail.w
这个其中container需要参数“src”:xxxxxx,params.
我试着用这个:http://localhost:8080/x5/UI2/v_/mfxxl/index.w#!main//(#!windowContainer4//({"src":"./infodetail.w","params":{"data":{"info_id":57}}})/!/infodetailcontent)
结果不成功,之前页面对./infodetail.w是经过require的,就是不知道起步对这些嵌套在一起是如何规定的。
如果可以直接用这个访问到页面,再用encodeurl后拼接“https://open.weixin.qq.com/connect/oauth2/authorize?appid=”和“response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect”应该也是可以实现的,请老师指点下那个路径如何设置?
回复 支持 反对

使用道具 举报

64

主题

321

帖子

679

积分

高级会员

Rank: 4

积分
679
QQ
 楼主| 发表于 2017-5-18 17:12:22 | 显示全部楼层

这个是main.w页面,在index.w使用shell跳转进来:
  1.         Model.prototype.modelLoad = function(event){
  2.                 window.wWeixinCode = this.getContext().getRequestParameter("code");       
  3.                 justep.Shell.showPage("main");
  4.         };
复制代码
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-3-29 03:05 , Processed in 0.076414 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表