- 登录页面验证码不显示
- 系统启动成功,点击登录提示:NoClassDefFoundError: javax/xml/bind/DatatypeConverter
- 系统部署后的默认密码是多少
- 修改yml配置中的数据库连接不生效
- 项目maven编译报错
- 项目编译时报jdk问题
- 前端vue编译报错
- 导入sql语句报错
- 切换RabbitMQ后启动报错
- 前端页面刷新报404错误
- 发起支付测试页面没有反应
- 打开收银台页面空白
- 收银台页面报404错误
- 支付参数修改后不生效
- 订单支付后好久才成功
- 微信支付提示 Illegal key size
- HuTool提示: Illegal key size or default parameters
- 微信支付配置参数oauth2的作用
- 微信条码支付好久才成功
- 微信H5支付提示错误
- 微信提示域名与后台配置不一致
- 微信支付提示当前页面的URL未注册
- 微信支付提示 [ sub_mch_id与sub_appid不匹配 ]
- 支付宝沙箱支付二维码扫码后提示 “二维码已失效”
- 支付宝测试不显示二维码
- 支付宝应用回调地址配置
- 支付宝提示签名数据错误
- 支付宝扫码提示页面不存在
- jeepay-sdk-java 的apiKey在哪里获取?
- 同一个企业主体是否可同时申请服务商和特约商户?
- 分账业务: 是否可以退款不退分账(商家垫资)?
- 系统中的订单号都指什么?
- 微信支付 提示 “签名错误,请检查后再试”
- 访问pay项目的图片提示404
- 支付宝用户主扫报“Business Failed【买家不存在】” 错误
登录页面验证码不显示
【问题描述】运营平台或商户系统登录界面,验证码不能显示。
【解决思路】
- 检查是否开启跨域设置,修改yml文件配置
- 验证码需要存入redis,检查redis连接是否正常
- 如果以上都正常,前端谷歌浏览器F12键,查看请求接口是否报错。如果接口报错表明服务端接口连接失败,请检查服务是否正常,连接服务端接口地址是否正确。
系统启动成功,点击登录提示:NoClassDefFoundError: javax/xml/bind/DatatypeConverter
【问题描述】
【问题解答】
- 一般是由于JDK编译版本导致, 项目要求为1.8的版本; 出现该问题可能是11或者更高版本导致;
- 解决: 打开IDEA –> 选中jeepay项目 –> File –> Project Structure –> 切换Project SDK 和 Project language lebvel 对应jdk8
系统部署后的默认密码是多少
【问题描述】 运营平台或商户系统登部署后的默认密码是多少。
【问题解答】
- 运营平台默认账号为:jeepay,默认密码为:jeepay123
- 商户系统账号需要[运营平台-商户管理]增加商户时指定账号名称,默认密码为:jeepay666
修改yml配置中的数据库连接不生效
【问题描述】本地开发环境修改了application.yml配置中的数据库连接,但依然连不上数据库
【解决思路】
- 确保数据正常,网络可访问,配置参数正确
- 开发环境下请阅读conf/readme.txt文件,更改 conf/devCommons/config/application.yml 文件内的配
项目maven编译报错
【问题描述】服务端项目使用maven编译时报错,提示
【解决思路】
- maven编译失败会有很多种情况,具体问题要根据日志查看
- 上图中错误提示,maven版本过低,需要升级到新版。建议直接使用3.6.1版本
- 编译提示:
Could not resolve dependencies for project com.jeequan:jeepay-service ...
解决: 请在最外层的pom.xml文件同级执行 >mvn package 命令进行打包。 由于项目互相依赖,不可在子项目中进行打包操作。
项目编译时报jdk问题
【问题描述】服务端项目maven编译时报错,提示信息:com\alibaba\druid\1.2.6/lib/openjdk-1.8-tools.jar
【解决思路】
- 该错误是由于jeepay目前不支持openjdk导致,请切换oracle jdk 1.8 版本
前端vue编译报错
【问题描述】前端项目编译时,错误提示:compiling ERROR TypeError: Cannot read property ‘get’ of undefined
【解决思路】
- 该问题一般是使用cnpm编译导致,请使用命令
npm install
- 参考命令
npm config set registry https://registry.npm.taobao.org npm install
【问题描述】前端项目编译时,错误提示:ERR! configure error gyp ERR! stack Error: Can’t find Python executable “python”, you can set the PYTHON env variable.
【解决】
- 安装 windows-build-tools ( !! 切记使用 【以管理员身份进入】 CMD !! )
由于会请求国外安装包地址, 若卡住不动,请耐心等待。或切换网络重试。C:\WINDOWS\system32> npm install --global --production windows-build-tools
或者尝试以下命令C:\WINDOWS\system32> npm --vs2015 install --global windows-build-tools
参考: https://cloud.tencent.com/developer/article/1343373
参考:https://developer.aliyun.com/article/797172
参考: https://blog.csdn.net/notejs/article/details/49681517
【问题描述】前端项目编译没有问题, 运行时npm run serve出现: 【error:0308010C:digital envelope routines::unsupported】
【解决】
- 一般是 Node 版本导致, 参考:https://www.jianshu.com/p/fc7674e8a84d
- 推荐版本:v16.13.0
导入sql语句报错
【问题描述】导入数据库sql语句,出现错误提示
【解决思路】
- 一般是
init.sql
和patch.sql
都导入,导致错误。初始安装只需导入init.sql文件即可,patch.sql文件是记录每次版本升级的sql语句,根据对应版本选择导入。 - 由于jeepay中使用到了json数据格式,所以要求msyql版本不能低于5.7
切换RabbitMQ后启动报错
【问题描述】切换了mq,然后重新启动项目,会报各种错误,无法启动项目
【解决思路】
- 确保application.yml文件中的mq配置正确,空格占位符要对
- 确保mq服务正常启动,rabbitmq需要安装延迟插件
- 确保安装的延迟插件版本是匹配版本: 参考: https://gitee.com/jeequan/jeepay/issues/I5G1T5
- 确保pom.xml中mq依赖的jar都正常开启(修改jeepay-components/jeepay-components-mq中的pom.xml文件,将mq需要依赖的jar,去掉
<scope>provided</scope>
配置) - 切换后,本地环境重新编译下项目,再启动
- 确保以上每步都理解,然后自己检查核对
前端页面刷新报404错误
【问题描述】前端项目已经正常部署,可以登录访问,但是页面刷新后提示404错误
【解决思路】
- 该问题是由于vue导致,更多原理可百度搜
vue 404
了解 - 在nginx中的解决方案,可配置
try_files $uri $uri/ /index.html;
解决 - 更多配置可参考部署文档中的nginx配置:https://docs.jeequan.com/docs/jeepay/deploy
发起支付测试页面没有反应
【问题描述】商户系统侧发起支付测试,已经支付成功,但是页面没有任何反应
【解决思路】
- 首先排查该订单当前的支付状态,是否为支付成功
- 如果订单支付成功,但是页面没有提示成功,则检查websocket连接是否正常
- 支付页面和服务端通信使用了websocket协议,如果使用nginx,注意nginx配置是否增加了如下配置
proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade";
打开收银台页面空白
【问题描述】通过手机打开收银台时,显示空白页面
【解决思路】
- 出现该问题一般是前端收银台界面部署问题导致,参考部署文档排查:https://docs.jeequan.com/docs/jeepay/deploy
- 多是因为部署后,依赖的js和css加载失败导致,cashier项目生成dist时,尝试修改
.evn
文件中VUE_APP_BASE_URL=./
后重新部署 - 同时也可以查看下payment项目日志,看后台有没有异常日志信息,辅助排查
收银台页面报404错误
【问题描述】访问收银台项目,页面报404错误提示
【解决思路】
- 收银台需要部署前端项目:https://gitee.com/jeequan/jeepay-ui/tree/main/jeepay-ui-cashier
- 收银台请使用手机端访问
支付参数修改后不生效
【问题描述】在支付通道参数配置,已经将参数修改为最新,但是请求到支付通道的参数还是修改之前的
【解决思路】
- 检查mq是否正常,修改参数时服务端会有参数同步更新的日志输出
- jeepay将通道配置缓存在了内存中,通过后台修改时通过mq通知修改内存中的参数
- 其他现象,如下单提示签名不对时,也要考虑是否配置已生效
订单支付后好久才成功
【问题描述】订单已经支付了,但是订单状态没有成功,大概过了10分钟后订单又成功了
【解决思路】
- 该问题大部分都是因为回调地址错误,导致支付通道回调请求不到,然后jeepay的自动补单机制会主动去支付通道查询订单状态
- 在 [运营平台 - 系统管理 - 系统设置] 中,检查支付网关地址配置是否正确
- 确保支付网关地址,公网是可以访问的(微信支付V3接口要求是https地址)
- 保存成功后,确保内存中参数也会修改(mq确保正常,如果还不生效,尝试重启应用)
- 如果以上都检查,还是回调不正常,需要查看payment日志,检查是否有验证签名错误等问题
微信支付提示 Illegal key size
【问题描述】调用微信支付时,payment项目错误日志:
java.security.InvalidKeyException: Illegal key size
【解决思路】
- 由于jeepay中微信支付使用了wxjava的开发包导致,需要设置jdk的安全策略。
- 参考解决:https://hub.fastgit.org/Wechat-Group/WxJava/wiki/%E5%8A%A0%E8%A7%A3%E5%AF%86%E7%9A%84%E5%BC%82%E5%B8%B8%E5%A4%84%E7%90%86%E5%8A%9E%E6%B3%95
原文如下:
如果在加解密的过程中出现java.security.InvalidKeyException: Illegal key size,则需要下载一个东西:
JRE/JDK 6:http://www.oracle.com/technetwork/java/javase/downloads/jce-6-download-429243.html
JRE/JDK 7:http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html
JRE/JDK 8u151 之前版本:http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html
JRE/JDK 8u151 之后版本已经内置无限制权限策略文件,只需将$JAVA_HOME/jre/lib/security/java.security文件中的#crypto.policy=unlimited解除注释即可
如果安装了JRE,将两个jar文件放到$JAVA_HOME/lib/security目录下覆盖原来的文件
如果安装了JDK,将两个jar文件放到$JAVA_HOME/jre/lib/security目录下覆盖原来文件
如果是使用了工具可能内置了JRE,需要在工具引用的目录下面将两个jar文件放到/jre/lib/security目录下覆盖原来的文件
HuTool提示: Illegal key size or default parameters
【问题描述】生成聚合码时,payment项目错误日志:
cn.hutool.crypto.CryptoException: InvalidKeyException: Illegal key size or default parameters
at cn.hutool.crypto.asymmetric.AsymmetricCrypto.encrypt(AsymmetricCrypto.java:250)
at cn.hutool.crypto.asymmetric.AbstractAsymmetricCrypto.encrypt(AbstractAsymmetricCrypto.java:109)
at cn.hutool.crypto.asymmetric.AbstractAsymmetricCrypto.encryptBase64(AbstractAsymmetricCrypto.java:146)
【解决思路】
- 参考Hutool官方解决方案: https://github.com/dromara/hutool/issues/1660
- 参考: 【微信支付提示 Illegal key size】问题解决。
微信支付配置参数oauth2的作用
【问题描述】在微信支付参数配置中,有个oauth2的参数,该参数的作用是什么
【问题解答】
- 一般时该参数留空即可,那么微信跳转获取openid用到的域名,配置payment项目域名即可
- 当有多个系统使用同一个公众号时,可以使用该参数,配置一个跳转的地址。那么获取openid时会先跳转oauth2的地址,成功后再调回payment项目。
微信条码支付好久才成功
【问题描述】使用微信条码支付,已经付款成功,但是要过10分钟左右订单才显示成功
【解决思路】
- 是因为没有配置mq的延迟配置导致,jeepay的自动补单任务去微信查订单,再把订单改为成功
- mq延迟配置参考:待出一个mq延迟配置文档
【深入解析】微信条码支付,需要请求微信查单接口,查询微信订单状态。jeepay使用mq的延迟消息机制,延迟发起查询。每隔5秒发起一次订单查询,一共查询6次。当查询6次或订单非支付中状态时,就不再发起查询。如果没有配置mq的延迟配置,则会瞬间查询6次,此时该订单还没有支付。然后jeepay的补单机制10分钟后,会再对该订单进行查询,进行状态更改。
微信H5支付提示错误
【问题描述】微信H5下单成功,访问返回的H5地址报错。提示:商家参数格式有误,请联系商家解决
【解决思路】
- 因微信H5支付的限制,微信H5支付要求当前调起H5支付的referer不能为空
- 且与申请H5支付时提交的授权域名要一致。
- 更多其他错误可参考微信官方文档:https://pay.weixin.qq.com/wiki/doc/api/H5.php?chapter=15_4
微信提示域名与后台配置不一致
【问题描述】使用微信公众号支付时,提示微信登录失败,redirect_uri域名与后台配置不一致,错误码:10003
【解决思路】
- 配置微信公众号授权域名,登录微信公众号: 头像 –》 功能设置 –》 网页授权域名 与当前支付平台的域名进行绑定即可。
- 绑定域名为payment项目域名,如:pay.jeepay.com
- 检查 [运营平台 - 系统设置 - 支付网关] 域名配置是否正确,确保更新到内存(保证mq正常)
微信支付提示当前页面的URL未注册
【问题描述】使用微信公众号支付时,提示当前页面的URL未注册
【解决思路】
- 进入微信支付平台-产品中心-开发配置。
- 添加支付授权目录,一般为payment项目域名,如:http://pay.jeepay.com/
微信支付提示 [ sub_mch_id与sub_appid不匹配 ]
【问题描述】服务商模式下:使用微信小程序或者公众号时提示: sub_mch_id与sub_appid不匹配
【解决思路】
- 进入微信服务商系统: 服务商商户平台-服务商功能-子商户管理-开发配置-特约商户APPID配置 -将appid 做关联。
- 微信官方文档: https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_sl_api.php?chapter=7_12&index=6
- PS: 服务商模式下 appId 和 sub_appId的关联关系说明:
appid为和服务商商户号绑定的服务商appid,一般情况为认证的服务号appid;
mch_id为服务商商户号,目前仅在认证服务号后台(mp.weixin.qq.com)开放申请服务商商户号,申请开通后即在微信支付系统创建绑定关系;
sub_mch_id为和服务商商户号有父子绑定关系的子商户号;
sub_appid为服务商模式的场景appid,在小程序中拉起支付时该字段必传;
trade_type请填写JSAPI;
openid为appid对应的微信用户标识;
sub_openid为sub_appid对应的微信用户标识,小程序服务商模式下单中的openid和sub_openid必须至少传其中一个,在小程序中拉起支付一般情况下只能获取到sub_openid,即使用wx.login接口获得的openid - https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_sl_api.php?chapter=7_11&index=2
支付宝沙箱支付二维码扫码后提示 “二维码已失效”
【问题描述】商户配置了沙箱, 并且接口正常,用户支付时提示 “二维码已失效”
【解决思路】支付宝沙箱支付, 需要使用支付宝的沙箱专用APP进行支付。
沙箱管理: https://openhome.alipay.com/develop/sandbox/tool/alipayclint
下载地址:
支付宝测试不显示二维码
【问题描述】在商户系统发起支付宝二维码下单,页面显示等待支付,然而并没有出现二维码
【解决思路】
- 支付宝二维码使用的是支付宝当面付接口,确保该接口已经开通
- 查看payment项目日志,根据错误提示排查
- 前端使用谷歌浏览器F12查看接口请求是否正常
支付宝应用回调地址配置
【问题描述】支付宝应用中授权回调地址,配置是多少
【问题解答】
- 配置地址 https://{payment项目域名}/api/channelbiz/alipay/appToAppAuthCallback 即可,然后勾选下面的只验证域名
- 该授权回调目前在获取支付用户ID及特约商户授权获取access_token时使用
支付宝提示签名数据错误
【问题描述】支付宝下单,提示错误:sign check fail:check Sign and Data Fail!JSON also!
【解决思路】
- 一般是支付宝公钥配置错误,导致对支付宝响应数据验签时报错误
- 制作支付宝秘钥时密钥长度选择RSA2,密钥格式选择PKCS8(JAVA使用)
- 切记在jeepay中配置支付宝参数时,接口签名方式也要选择RSA2
支付宝扫码提示页面不存在
【问题描述】使用jeepay生成的聚合码,用支付宝扫码后提示:页面不存在!对不起,访问出错了
- 需要配置支付宝应用的授权回调地址
- 授权回调地址配置payment项目域名即可,然后勾选下面的只验证域名
jeepay-sdk-java 的apiKey在哪里获取?
【问题描述】https://gitee.com/jeequan/jeepay-sdk-java 中的apiKey在哪里获取?
【解决思路】
- sdk中的apiKey是与jeepay统一下单的标准接口( https://docs.jeequan.com/docs/jeepay/api_rule ) 中的
key
是对应的。 - 设置路径:
商户系统 : 商户中心 –》 应用管理 –》新建/修改 –》 私钥 AppSecret
运营平台 : 商户管理 –》 –》商户列表 –》 应用配置 –》新建/修改 –》 私钥 AppSecret
*注意: 安全起见, 应用新建后不可查询到api秘钥, 只能重置。*
同一个企业主体是否可同时申请服务商和特约商户?
【以下来自Jeepay交流群】
- 微信支付服务商是不能给自己企业申请特约商户的,那自己的支付业务如何在服务商+特约商户模式下进行?
- A: 服务商主体不能申请成为自己企业的【特约商户】,但是可以在其他服务商下进件。
- B:一个主体可以是服务商同时也可以是【普通商户】,所以服务商在去申请普通商户(不同商户号)就可以了。
https://developers.weixin.qq.com/community/develop/doc/0002a482200f40a6c07a21d3a54400
微信原文:
【一个主体可以申请服务商号,直连商户号和子商户(子商户不能在自己主体的服务商下申请) 但是,同一商户号,不能既是服务商,又是普通商户】 - 另外普通商户不能直接和服务商进行绑定操作。
分账业务: 是否可以退款不退分账(商家垫资)?
【以下来自Jeepay QQ交流群】
支付宝: 当面付不支持只退款不退分账, 会自动退分账的。
其他支付方式若需要退款退分账需要传入refund_royalty_parameters参数, 如果不设置默认即是退款不退分账。
文档: https://opendocs.alipay.com/support/01rg1b微信:如果商户余额充足,也是可以商户垫资完成退款的(需要调用完结分账接口)。
https://pay.weixin.qq.com/wiki/doc/api/allocation_sl.php?chapter=24_4&index=4
系统中的订单号都指什么?
- 支付订单号:Jeepay支付系统生成的订单号,再请求支付通道(如微信支付)会把单号传过去
- 渠道订单号:指的是该笔订单对应的支付渠道那边的单号
- 商户订单号:是请求jeepay支付系统的商户侧的订单号
微信支付 提示 “签名错误,请检查后再试”
提示该错误,请围绕: 【秘钥】找问题。
- 检查商户/服务商的 秘钥Key是否配置的正确; V2/V3 是否正确; 缓存是否生效?
- 若确保秘钥配置正确, 并且通过 微信工具: https://pay.weixin.qq.com/wiki/doc/api/micropay.php?chapter=20_1 也提示验签通过。检查以下:
微信私钥的要求格式是:【微信支付密钥需要是32个字符,并且只允许输入数字和英文大小写字母的组合】
32位 ,32位 , 32位 重要的事情说三遍。 - 使用新证书, 证书序列号也需要变更为最新的。 若使用新证书+旧序列号仍然提示:【验签失败】
- 若确保秘钥配置正确, 并且通过 微信工具: https://pay.weixin.qq.com/wiki/doc/api/micropay.php?chapter=20_1 也提示验签通过。检查以下:
访问pay项目的图片提示404
一般是安装宝塔的默认配置导致, 删除pay项目的以下配置:
支付宝用户主扫报“Business Failed【买家不存在】” 错误
一般是默认使用了支付宝的openid模式导致,申请退回使用userid即可,参考:https://opendocs.alipay.com/mini/0ai736?pathHash=46388508