社区
其他
帖子详情
微信公众号支付报错:当前页面的URL未注册
辉____
2018-10-20 06:34:41
问题展示:报错“当前页面的URL未注册”
访问地址是:http://gogi***hui.cn/redirect/jspay
可实际上我已经配置了支付授权url:
不是域名的问题,域名正确,且备案了。
请问各路大神,还有什么其他原因导致这个问题?
或者说,这个配置怎么配才正确?
谢谢,找了好久,找不出原因。
...全文
330
1
打赏
收藏
微信公众号支付报错:当前页面的URL未注册
问题展示:报错“当前页面的URL未注册” 访问地址是:http://gogi***hui.cn/redirect/jspay 可实际上我已经配置了支付授权url: 不是域名的问题,域名正确,且备案了。 请问各路大神,还有什么其他原因导致这个问题? 或者说,这个配置怎么配才正确? 谢谢,找了好久,找不出原因。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
街头小贩
2018-11-22
打赏
举报
回复
是未注册呀,你注册的是: ..../jspay/ ; 提示未注册的是: ..../jspay
公众号微信分享使用js-sdk走过的坑 错误类型:invalid
url
domain
问题描述:做公众号的微信分享功能要进行签名认证,后台处理只需要传sha1加密的签名(生成签名代码,已经封装好,可以查看链家https://blog.csdn.net/ouxiaoxian/article/details/103859057),随机字符,时间,
url
再和前台对接的时候一直
报错
:invalid
url
domain 在网上查找了很多资料,有说端口的问题,也有其它各种原因的,一大堆,最后我发现以上的说法都不准确,这是我配置的地址(错误的地址) 把配置地址的http://去掉就可以了 作者:ouxiaoxian
java
微信公众号
MVC开发框架
jwx是开源的java公众号开发MVC框架,基于spring配置文件和微信消息或事件注解,通过微信上下文处理一个或多个
微信公众号
服务请求。目的主要有两个,其一生封装微信请求xml消息为java实体对象,将返回对象转换为xml响应消息;其二是封装微信接口为java服务。
微信公众号
采用web服务作为消息与第三方平台发生交互,数据格式主要是xml和json,普通的web请求响应机制采用xml数据格式交互,微信接口服务采用json数据格式。jwx主要对这两个方面做了封装处理,另外借鉴springmvc的请求处理方式,以WeixinDispatcherServlet类作为消息分发控制器,通过消息组装工厂生成请求消息或事件实体,根据消息或事件类型,在消息策略处理工厂查找处理策略,获取相应的微信处理方法,Servlet获取到处理方法后,请求线程池获取线程调用微信方法,根据微信方法的返回值,生成请求的xml响应。本说明文档将分章节说明jwx框架的特征、快速入门、配置、扩展等各个方面。 一、特征 消息重排自动处理,提供消息重排缓存接口 明文/加密模式无感知切换 常用的微信接口服务封装 提供线程池执行微信方法,方法调用线程池大小可配置 长任务消息推送 通过微信上下文配置支持多个
微信公众号
处理 提供统一的异常处理机制 提供access_token自动更新机制 请求消息组装 灵活的响应消息类型 二、快速入门 本章教材提供一个最简单的例子,用户在
微信公众号
发一条foo的文本请求消息,公众号响应一条bar的文本响应消息。 1、maven配置文件 通过maven生成一个webapp项目,例如项目名为weixin,在maven配置文件pom.xml中添加jwx依赖,jwx的1.1.1jar包已经提交到maven中心仓库,通过中心仓库搜索jwx关键字可以获取jar包依赖配置。 com.github.jweixin jwx 1.1.1 2、web.xml文件配置 web.xml是web应用的配置文件,jwx从spring配置文件中获取配置信息,所以必须配置spring上下文环境;另外,需要配置微信消息处理分发Servlet(WeixinDispatcherServlet),用于处理微信送过来的请求消息或事件。jwx对springmvc没有依赖关系,web mvc框架可以根据实际需要配置。 org.springframework.web.context.ContextLoaderListener weixin com.github.jweixin.jwx.servlet.WeixinDispatcherServlet 1 weixin /wx/* load-on-startup表示Servlet在web应用启动阶段加载,数字代表了启动次序,如果项目使用了springmvc框架,可以调整该数字为2,放到springmvc框架后面启动加载,但实际上Servlet的启动次序并没有太大的关系。 spring配置是jwx必须的,如果没有配置spring上下文,jwx在启动阶段会
报错
。
url
-pattern模式匹配
微信公众号
平台服务器配置的
URL
配置,如果需要处理多个
微信公众号
,可以配置多个servlet-mapping或者使用路径通配符匹配多个
url
链接。 3、spring配置文件 spring配置文件applicationContext.xml里面需要配置WeixinConfigurer,这是jwx唯一必须配置项,如果没有配置,启动阶段会
报错
。 com.telecomjs.yc.controller component-scan配置了微信接口服务类,里面包含常用的
微信公众号
接口服务,例如菜单管理、消息服务、二维码服务、用户管理、微信网页授权、素材管理等服务内容,在web应用控制器类和微信控制器类里面可以通过@Autowired注解来注入服务。本配置并不是必须项。 WeixinConfigurer是唯一需要配置的部分,packages属性必须配置,里面是微信控制器包路径列表,WeixinDispatcherServlet在启动阶段会扫描包路径及其下面的子包路径,如果类拥有@Weixin注解,则该类会被当作微信控制器类加载到微信上下文。 除了packages属性是必须配置的,其他配置都有缺省值,包括消息缓存、微信方法线程池的大小、微信方法调用超时阀值等,这部分内容放在配置部分说明了。 4、编写微信控制器类 当配置完上面的3个部分,所有的配置文件部分就结束了,是不是很简单呢。下面我们只需要写微信控制器类就能让我们的
微信公众号
活起来了。微信控制器类是用@Weixin注解的普通类,与sprngmvc里面的controller很类似,方法的执行也很类似。我们在com.telecomjs.yc.controller包下建一个java类WeixinController,如下: package com.telecomjs.yc.controller; import com.github.jweixin.jwx.context.Weixin; import com.github.jweixin.jwx.message.annotation.TextMsg; @Weixin(value="/wx/coreServlet", appID="xxx", appSecret="xxx", encodingAESKey="xxx", token="xxx") public class WeixinController { @TextMsg("foo") public String foo(){ return "bar"; } } @Weixin需要配置value值,这个实际就是微信服务器配置里面
URL
最后的部分,当然不包含域名和web应用的上下文,切记,不能包含web应用上下文,其他4个部分配置内容也是公众号配置内容,我们只需要登录到公众号看下填进去就行了。如果没有配置encodingAESKey,那么是不能处理加密消息的,如果有log4j的配置文件,启动阶段会给出告警信息的。 同一个公众号可以配置多个@Weixin注解控制器类,其中只需要一个有其他4项配置就可以了,如果多个控制器类配置了其他4个配置项,如果相对应的配置项值不相同,启动阶段会
报错
。 不同
微信公众号
是通过@Weixin的value值区分的,该值同时是微信上下文的查找关键字。 foo方法上面有@TextMsg注解,是定义的微信方法,在Servlet启动时通过包扫描加载到微信上下文对象中。jwx针对微信消息或事件类型设计了一组微信注解,基本涵盖了
微信公众号
定义的消息和事件类型。 @TextMsg是文本消息注解,代表请求类型的是文本消息,value值是发送的文本消息内容。处理文本适配模式,@TextMsg还支持正则表达式适配模式,这部分内容在使用参考部分说明。 本例中微信方法并没有设置参数,实际可以灵活设置参数,例如我们可以在方法中设置HttpServletRequest request,HttpServletResponse response,InMessage in, WeixinContext context等参数,这部分内容也放在使用参考部分说明。 本例中方法的返回类型是String,代表响应的消息内容是文本消息,jwx提供了丰富的返回值类型,这部分内容会在使用参考部分详细说明。 5、启动web应用 上面就是这个最简单例子的全部内容,让我们启动web应用,进入到我们的公众号,输入foo文本提交,看看返回的是不是bar这个内容了,如果是,恭喜你,你已经初步掌握了jwx的使用方法。下面更多的内容等着你呢! 三、配置说明 spring配置文件中唯一需要配置的bean是WeixinConfigurer类,是可选配置,但里面封装了微信接口服务类,建议一定要配置进spring配置文件中。 1、微信接口服务 微信接口服务类位于com.github.jweixin.jwx.weixin.service包中,在spring配置文件中通过扫描包载入服务,在web mvc框架和微信控制器类中都可以通过@Autowired注解注入,与其他spring普通的服务类主键使用方式一致,服务类每个方法都有accessToken参数,这个参数指的是微信access_token,在微信控制器类方法中,可以通过设置方法的WeixinContext context参数获取,在web mvc框架中,可以通过WeixinContextHelper类的静态方法getAccessToken(String
url
)获取。 CustomMsgService 客服消息服务 MassMsgService 群发消息服务 MaterialService 永久素材管理 MediaService 临时素材管理 MenuService 菜单服务 QrcodeService 二维码服务 TagService 标签服务 TemplateService 模板管理及消息发送 WebAuthService 微信网页授权服务 UserService 微信用户服务 SystemService 获取地址列表及长链接转短链接等其他类型服务 2、WeixinConfigurer配置 WeixinConfigurer是微信上下文全局配置类,里面包含了处理微信类扫描、微信消息重排处理、微信方法执行线程池大小、微信方法调用超时阀值等方面的配置,packages包扫描配置是唯一必须的配置部分,这个配置在快速入门部分已经描述,其他部分配置都有缺省配置,不是必须配置部分。 a、微信消息重排处理messageKeyCache配置 微信在处理消息推送时,如果没有获得响应,会隔5秒重试,最多重试3次。jwx在接到消息推送时,需要判断该消息是否已经接受过,如果接受过,则需要放弃处理。jwx设计了MessageKeyCache接口用于处理消息重排,里面需要实现唯一的方法public boolean hasMessageKey(String key);如果系统已经缓存了消息key值,返回true。jwx实现了一个默认的消息key值缓存ConcurrentHashMapMessageKeyCache。如果我们要设置缓存清理间隔,可以采用如下配置: <!-- 设置消息key缓存清理间隔,单位秒 --> com.telecomjs.yc.controller 另外我们可以实现自己的消息key缓存类,只需要实现MessageKeyCache接口就可以了,比如我们可以采用redis作为消息key值缓存数据库。 b、微信方法线程池大小threadPoolSize设置 微信方法是由Servlet在获取请求消息或事件的策略后取得,Servlet取得微信方法后,在线程池中获取线程执行微信方法。缺省线程池的大小是10个,如果微信公众并发比较频繁,我们可以调整线程池的大小,以提高处理效率。 如果我们调整线程池大小为100,可以采用如下配置: <!-- 设置消息key缓存清理间隔,单位秒 --> com.telecomjs.yc.controller <!-- 设置微信方法执行线程池大小 --> c、微信方法调用超时阀值weixinMethodTimeoutThreshold设置 微信推送消息或事件如果超过5秒,微信会中断连接,有时候微信方法的执行会超过5秒钟,针对这种情况,jwx采用微信方法调用超时阀值机制,如果微信方法调用线程不能在超时阀值内处理完毕,Servlet会先行返回http响应,后续Servlet会等待方法执行完毕,然后通过客服消息返回响应,对用户来说并没有感知。缺省的微信方法调用超时阀值是3000毫秒,该值可以通过配置调整,如下我们将超时阀值改成4秒: <!-- 设置消息key缓存清理间隔,单位秒 --> com.telecomjs.yc.controller <!-- 设置微信方法执行线程池大小 --> <!-- 设置微信方法调用超时阀值,单位毫秒 --> 四、使用参考 本部分会全面讲解jwx的概念及使用方法。 1、主要概念 微信上下文:微信上下文(WexinContext)是jwx最重要的部分,jwx可以同时处理多个
微信公众号
,每个公众号在jwx框架中对应一个微信上下文,微信上下文持有一个
微信公众号
所有的配置信息及处理策略。
url
是
微信公众号
配置的服务器地址的最后部分(不包括域名和web应用上下文),是识别
微信公众号
的唯一标识,透过
url
我们可以通过微信上下文帮助类(WeixinContextHelper)的静态方法获取到微信上下文及访问token,另外,在微信方法中我们也可以通过注入WeixinContext参数来获得微信上下文。微信上下文还包含了微信的access_token、appID、appSecret、encodingAESKey这些
微信公众号
的配置内容。微信上下文还保存微信方法与消息注解的策略对应关系,是微信消息能够得到处理的最重要的部分。微信上下文通过@Weixin注解来配置。 微信消息注解:jwx定义了14个消息或事件注解,涵盖了目前所有的微信消息和事件类型,这些注解定义在包com.github.jweixin.jwx.message.annotation中,微信注解代表了消息或事件类型,可以通过微信注解配置识别请求消息类型,获取相应的微信处理方法。 微信方法:被微信消息注解包围的方法,通过微信方法,我们可以处理
微信公众号
请求消息,返回公众号的响应消息。 2、@Weixin注解 @Weixin是用来配置微信上下文的,该注解使用在微信控制器类上。每个被@Weixin注解包围的类会在web应用启动时被扫描,配置项会加载到微信上下文中,@Weixin注解的参数说明: value:代表微信上下文关键字,不能为空,在
微信公众号
基本配置中,处于
URL
配置的最后部分。例如
微信公众号
的
URL
(服务器地址)配置是:http://nalan_weixin.tunnel.qydev.com/weixin/wx/coreServlet,其中http://nalan_weixin.tunnel.qydev.com是主机栏,/weixin是web应用的上下文栏,那么value值应该是/wx/coreServlet,一个公众号可以有多个类拥有@Weixin注解,如果多个注解的value相同,则会认为是同一个微信上下文,在jwx中,区分上下文的唯一标识就是@Weixin注解的value值配置。@Weixin注解还有其他4个配置项,都有缺省值,在一个微信控制器类中配置了其他4个值,那么相同value值得控制器类只需要配置value项就可以了,如果value配置项相同,而其他4个配置项的同项配置不同,jwx在初始启动扫描阶段会给出
报错
提示。 token:代表
微信公众号
基本配置中的Token(令牌)项的值。 encodingAESKey:代表
微信公众号
基本配置中的EncodingAESKey(消息加解密密钥),该项如果没有配置,那么jwx不能处理加密的请求消息,在jwx初始启动阶段会给出告警提示。如果我们配置了消息加解密方式为安全模式,没有配置encodingAESKey项,则运行阶段会
报错
。另外如果在加密请求消息到达时报如下错误:java.security.InvalidKeyException:illegal Key Size,则说明
当前
运行的JDK没有用JCE无限制权限策略文件替换相应的安全jar包,**解决方案:在官方网站下载JCE无限制权限策略文件(请到官网下载对应的版本, 例如JDK7的下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html下载后解压,可以看到local_policy.jar和US_export_policy.jar以及readme.txt,如果安装了JRE,将两个jar文件放到%JRE_HOME%\lib\security目录下覆盖原来的文件;如果安装了JDK,将两个jar文件放到%JDK_HOME%\jre\lib\security目录下覆盖原来文件**。 appID:代表
微信公众号
基本配置中的AppID(应用ID)。 appSecret:代表
微信公众号
基本配置中的AppSecret(应用密钥)。 3、微信方法 在微信控制器类中,被微信消息(事件)注解包围的方法,被称为微信方法,微信方法是MVC框架里面的C部分,它控制着对请求消息的处理逻辑,并且返回响应消息。微信注解主要用于适配请求消息(事件)的类型及关键字内容,当适配成功后,由对应的微信方法执行处理逻辑,并且通过方法的返回值返回响应消息。微信方法的参数在请求消息到达时由Servlet注入,目前微信方法参数可以是HttpServletRequest request,HttpServletResponse response,InMessage in, WeixinContext context里面的任意次序和数量的组合,参数中InMessage可以是与注解对应的子类,对于@ExceptionHandler注解,可以添加Throwable及其子类作为方法参数,需要注意的是如果参数类型与实际消息类型或异常类型不能匹配,则该参数会被置为空。 4、微信注解 jwx定义了14个消息或事件注解,涵盖了目前所有的微信消息和事件类型,下面逐个讲解没有注解的使用。 @TextMsg @ClickEvent 5、响应类型
微信公众号
H5之微信分享常见错误和问题(小结)
url
转码 官方文档描述: https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html#62 确认
url
是
页面
完整的
url
(请在
当前
页面
alert(location.href.split(‘#’)[0])确认),包括’http(s):confused_face:/’部分,以及’?’后面的GET参数部分,但不包括’#’hash后面的部分 即获取
url
完成地址的方法为 let
url
= [removed].href.split('#')[0]; 如果链接带有中文字符或者特殊符号,前端需要使用encodeURICompo
微信二次分享
报错
invalid signature问题及解决方法
基于
微信公众号
开发的h5
页面
(使用jssdk接口),由用户A分享给用户B,用户B再次分享这个
页面
时,不能成功分享。问题出在用户B收到的分享链接与用户A打开的链接不同 A用户的链接为 http://test.com/test.html B用户收到的连接 http://test.com/test.html&from=singlemessage from=singlemessage是微信客户端为了区分分享来源再链接后自动添加的标记,再次分享时,需要在js代码中对自动获取的连接进行encodeURIComponent处理,后台再对收到的
url
进行
url
decode处理。 js与php示例代码如下:
SmartWx
微信公众号
管理系统-其他
SmartWx是一个
微信公众号
的web管理工具,本项目采用springmvc+layui实现。 本项目是一个完整的
微信公众号
web操作版,直接编译即可运行。让用户不再用关心微信的底层接口,直接使用
页面
进行操作,简单方便。 包括服务器绑定、文本管理、图文管理、菜单管理、粉丝管理、群发消息等。 技术框架 开发语言:JAVA 数据库:MYSQL JAVA开发框架:Spring MVC+Spring+Mybatis 缓存框架:j2cache 前端开发框架:Layui+JQuery+html 前台模板引擎:art-template 应用场景: 1、SmartWx是一款基于JAVA企业级平台研发的
微信公众号
管理系统, 依托企业级JAVA的高效、安全、稳定等优势,开创国内JAVA版开源
微信公众号
管理系统先河。 2、SmartWx采用最流行的Spring语言,来实现多公众号的管理。 3、如果您要需要搭建一个
微信公众号
管理系统,那么您可以用SmartWx 4、如果您厌烦了
微信公众号
管理后台枯燥的
页面
,那么您可以用SmartWx 5、如果您手中有很多公众号,那么您可以用SmartWx 功能模块: 1、账号信息 绑定公众号信息 2、文本信息 新建消息 消息发送 3、模板消息 由于模板消息需要自己创建模板,系统中只是演示功能,大家可以自行更改 4、图文管理 多图文 单图文 5、菜单管理 支持几乎所有的微信菜单类型 可视化管理 保存&同步 6、粉丝管理 批量同步粉丝 单个粉丝同步 发送文本消息和图文消息 7、多账号管理 添加公众号 选择公众号 环境要求: JDK7或更高版本 Tomcat7.0或更高版本 MySQL5.1或更高版本 部署说明: 1、创建数据库。如使用MySQL,字符集选择为utf8。 2、执行数据库脚本。数据库脚本在/doc目录下。 3、在eclipse中导入maven项目。点击eclipse菜单File - Import,选择Maven - Existing Maven Projects 4、设置项目编码为utf-8,选择jdk1.7版本或以上,不要选择jre。 5、修改数据库连接。打开/src/main/resources/property/jdbc.properties文件,根据实际情况修改jdbc.
url
、jdbc.username、jdbc.password的值 6、上传图片设置。upload.properties 如属性文件所描述,如图片想放到项目中,res.upload.
url
注释即可 7、缓存设置。为兼容jdk1.7,此版本中暂时废弃j2cache,默认仅使用ehcache缓存,如想使用,修改J2CacheUtil,用CacheJ2Utils替换CacheUtils,修改依赖文件 8、七牛云配置。app.properties 项目中暂时未用到,可废弃 9、项目中为简化代码,用到了 lombok 插件,大家可自行安装。 10、由于项目采用前后台分离,也为了将来配置读写分离,项目需 root 根目录运行,如若不然可能会js,css加载不到的情况(自己可修改) 11、编译项目。在eclipse中,右键点击项目名,选择Run as - Maven build...,Goals填入clean package,然后点击Run,第一次运行需要下载jar包,请耐心等待 12、部署项目。将项目部署到Tomcat7或以上版本,启动Tomcat。也可使用maven tomcat7插件运行,jetty插件运行暂时有问题 13、访问系统。地址:http://localhost:8080/;用户名:smartwx,密码:smartwx 14、由于eclipse识别问题,部分xml文件和html
页面
会
报错
,无需关心,运行即可。 15、添加公众号
页面
,
url
和token两项自动生成,无需手动填写。将 开通80端口的公网ip或域名(切记全路径)+
url
和 token 这两项填入到微信后台即可 16、添加完公众号,大家先尝试下 同步粉丝功能,若成功,则项目配置完成,若无法获取accesstoken,切记检查 微信后台 获取accesstoken白名单设置
其他
10,607
社区成员
29,048
社区内容
发帖
与我相关
我的任务
其他
Web 开发 其他
复制链接
扫一扫
分享
社区描述
Web 开发 其他
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章