常见问题Q&A

Q:拓展码如何获取?服务商配置渠道参数认证二维码地址/拓展码地址是什么?怎么配置?

A:
1.打开微信/支付宝服务商平台,登录后(使用渠道下发的商户号登录)进入服务商管理,下载拓展码。
2.登录渠道申请下发的微信、支付宝账户,同上述方式找到拓展码。
3.使用草料二维码或其他二维码解析工具,解析上述二维码图片,将解析结果填写到对应位置。

Q:如何获取支付宝服务商拓展码?

A: 登录支付宝服务商平台https://p.alipay.com/,进入银行服务商商户管理下载即可。

Q:如何获取微信服务商拓展码?

A: 登录微信支付合作伙伴平台,https://pay.weixin.qq.com/partner/public/home,进入合作伙伴工功能页面,下载拓展二维码。

Q:微信如何查看已关联的商户?

A:
登录https://pay.weixin.qq.com/partner/public/home,可查看已关联商户号。

Q:服务商oauth2配置是干嘛的?

A:
1.oauth2配置用于用户支付宝、微信公众号小程序下单时,获取用户支付userId。
2.支付下单接口上送相关公众号APPID及小程序APPID。
3.该配置下微信、支付宝各有两套参数,分别为三方应用参数和小程序参数;三方应用配置用于非小程序支付相关,小程序参数即收银台小程序配置(需申请小程序参数),收银台发布并配置合法域名后即可使用。
参考文档:https://docs.jeequan.com/docs/jeepay-plus/jeepay-plus-1e6m5uhedivj5
4.如何查看微信appid:https://developers.weixin.qq.com/community/develop/article/doc/0002ea97958958f87389d9a2b5fc13

Q:oauth2中服务商小程序原始ID及路径是什么?

A:
此配置为收银台小程序配置,其中小程序路径可默认配置:pages/hub/lite

Q:小程序码牌支付扫码后显示空白页面,或标题提示undefind?

A:
码牌支付需上传及配置收银台小程序,请使用开发工具发行微信/支付宝小程序(cashier项目)。

Q:商户提交进件成功了,状态显示<进件成功>,为什么商户支付功能还是无法使用?

A:
1.商户进件成功状态为商户已经在渠道方进件成功。不同渠道对应不同的流程,但在jeepay-plus中流程大抵是相同的。
2.商户进件成功状态后操作流程:签约开通->参数配置。
3.签约开通:签约支付宝、微信实名认证。
4.参数配置:(此时渠道方已返回商户对应进件的商户号->用于支付下单)配置支付参数至应用、配置费率至应用。
5.配置微信参数:用于微信小程序、公众号支付下单(默认显示为服务商oauth2配置参数、支付域名地址,若商户使用自己的appid,请关联商户自己的appid)。
6.此时商户进件流程基本完成,可在本系统配置支付费率及支付方式进行下单。
7.按文档流程配置,检查遗漏项:https://docs.jeequan.com/docs/jeepay-plus/jeepay-plus-1dpam5esvhie0

Q:使用云闪付扫码支付提示风险连接/获取二维码参数失败?

A:
此提示为云闪付安全校验,需将支付域名添加到云闪付白名单,可联系三方渠道帮忙添加。

Q:收银台微信小程序发布需要配置什么?

A:
1.配置服务器域名
    进入微信平台【开发-开发管理开发配置-服务器域名】,把payment项目域名配置request合法域名。如: https://pay.jeepay.vip
2.配置链接二维码
    进入微信平台【开发-开发管理-开发配置-扫通链接二维码打开小程序】
    二维码地址: https://payment项目域名/cashier/pages/hub/lite/ (如: https://pay.jeepay.vip/cashier/pages/hub/lite/)
    小程序路径: pages/hub/lite
    前缀占用规则:占用

Q:商户进件费率是什么?怎么配置?

A:
您与渠道方签约的费率即为服务商费率(请务必与服务商费率配置对应的渠道一致),代理商即您的发展下级。
所以代理商的费率需大于等于服务商的费率配置(等于即无手续费0分润),商户进件时的支付方式费率配置需大于代理商费率配置。
此时进件时会按照已填写的费率在渠道方开通支付方式。

Q:数据库报错:nested exception is java.sql.SQLSyntaxErrorException: In aggregated query without GROUP BY, expression #2 of SELECT list contains nonaggregated column ‘total.amount’; this is incompatible with sql_mode=only_full_group_by?

A:
此Q由数据统计sql引发,需关闭数据库only_full_group_by规则:
先查一下规则
SELECT @@GLOBAL.sql_mode;
SELECT @@SESSION.sql_mode;
关闭only_full_group_by后重启数据库后重试。

Q:数据库数据为什么是加密的?怎么解密?

A:
数据库加解密采用hutool的SM4加解密:
// 初始化
SM4 sm4 = SmUtil.sm4("1111111111111111".getBytes());
// 加密方法
sm4.encryptBase64("123123".getBytes())
// 解密方法
sm4.decryptStr("CpvdG2XeLgv6tekentpT2A==")

Q:微信、支付宝校验文件怎么配置?

A:
打开payment的nginx配置,添加如下配置:
微信收银台小程序:
location /cashier/pages/hub/lite/文件名.txt {
    return 200 '文件内容';
}
支付宝收银台小程序:
location /文件名.html {
    return 200 '文件内容';
}

授权文件:(配置路径看官方问题描述提示)
location /文件名.txt {
    return 200 '文件内容';
}

Q:二维码规则和小程序功能页面如何配置?

A:
二维码规则地址:支付域名 + /cashier/pages/hub/lite/
小程序路径:pages/hub/lite

Q:订单列表中的回调状态是什么?有什么作用?支付成功后为什么还是未发送状态?

A:
1.该状态作用为订单支付成功后向商户系统(即订单发起方)发送支付结果通知。
2.如商户拥有自己的小程序/app等,此时商户调用接口下单,传入支付 回调地址参数后,当订单支付成功后,系统会通过mq调起向商户系统发送支付结果通知的任务,将支付结果通知到商户系统。
3.任务执行说明:一笔订单支付成功后,mq执行推送商户通知默认执行6次,时间:0 30 60 90 120 150 秒依次增加,6次后将不再通知。
4.支付成功后显示未发送,复制订单号,打开商户通知菜单,搜索该订单号,详情检查回调地址以及回调响应结果,是否为商户端地址;
5.检查回调地址无误,可复制该地址,使用工具请求,测试是否可以接收到商户端响应,如不能接收到响应结果,联系商户端回调接口是否可公网访问或其他限制条件
6.若可以正常接收响应,检查服务器mq配置是否正确
7.注该支付方式不会发送回调通知给商户系统:使用系统码牌绑定给商户,使用码牌扫码付款的方式。(由于码牌可换绑等因素创建订单时无法确定商户回调地址)

Q:商户通、展业宝是否支持上架支付宝小程序端?

A:
暂只支持微信小程序以及APP

Q:小程序上传大小超限怎么办?

A:
将项目基本设置es6编译成es5勾选去掉,Hbuilder 和 微信开发工具都设置一下。

Q:服务商支付配置中公钥与私钥怎么配置?

A:
1.渠道配置一般需要配置应用私钥,支付渠道会要到你生成的一对公私钥中的公钥,以用于渠道侧解密验签等操作,私钥需要自己留存备份好;
2.同样渠道会给你一份渠道侧的公钥,以用于接收渠道侧支付回调等操作的验签;
3.公私钥怎么生成?依据渠道侧要求,生成对应的密钥对;
4.可参考支付宝公私钥生成及说明;支付宝文档:https://opendocs.alipay.com/support/05l6nw?pathHash=748e60aa

Q:微信支付参数V2/V3参数如何获取?

A:
1.可百度查询微信支付参数说明参考网上文档:https://blog.csdn.net/guochunyun/article/details/130217954
2.微信官方V2仅支付功能,V3方可发起进件。

Q:下单支付页提示“商户应用不支持该支付方式”是怎么回事?

A:
支付配置流程未完成,查阅文档,按文档流程配置:https://docs.jeequan.com/docs/jeepay-plus/jeepay-plus-1dpam5esvhie0

Q:商户系统登录后没有支付测试等菜单操作?

A:
1.设置商户为M1类型,可操作更多菜单及功能
2.如何切换:
    ① 商户系统-系统管理-系统设置-功能配置 商户等级切换为M1后重新登录商户系统
    ② 运营平台-商户管理-商户列表-对应商户-修改商户信息 商户等级切换为M1后重新登录商户系统
3.说明:M0商户:简单模式(页面简洁,仅基础收款功能)、M1商户:高级模式(支持api调用, 支持配置应用及分账、转账功能)

Q:普通商户和特约商户有什么区别?

A:
普通商户:商户自行申请入驻微信或支付宝,无服务商协助,单独调接口。
特约商户:由微信或支付宝的服务商协助商户完成入驻(即商户进件),商户下单走的是服务商接口。

Q:代理商列表是否可以看到所有下级代理商?

A:
1.代理商平台只能看到下一级代理商信息。
2.运营平台编辑代理商,可控制代理商是否可发展下级代理。

Q:用户类型为商户拓展员是什么?怎么创建新的角色并关联?

A:
1.商户拓展员为平台创建发展商户的业务员,可代商户发起进件等操作。
2.商户拓展员为非角色方式类型,如需扩展新的角色并关联,可参考服务端代码自行实现。

Q:新建用户,登录时提示“当前用户未分配任何菜单权限,请联系管理员进行分配后再登录”

A:
1.检查该新用户是否分配了角色。
2.检查已分配的角色是否分配了所需权限。
3.系统默认的普通操作员没有分配权限,需要自行分配权限后再使用。
4.用户类型为普通操作员才可分配角色权限,其他用户类型为固定权限。

Q:服务端代码部署启动项目报错: java.lang.NoClassDefFoundError: javafx/util/Pair

A:
1.检查一下系统环境是否使用了open jdk,由于openjdk缺少很多项目启动必要的类,无法使用该类型jdk,请切换为oracle jdk。
2.系统jdk版本目前支持的版本:JDK1.8 且版本大于1.8_121(121会存在: SSLException: Received fatal alert: internal_error)
3.推荐使用:http://xxpayvip.oss-cn-beijing.aliyuncs.com/soft/jdk-8u261-linux-x64.tar.gz
4.如果使用docker镜像,检查docker环境是否符合运行环境

Q:前端项目打包失败

A:
1.查看部署流程文档:https://docs.jeequan.com/docs/jeepay-plus/jeepay-plus-1doq3ag6c2ktf
2.进入到对应目录下如: /jeepay-ui-manager
3.服务端接口地址修改:修改文件 .env 中的 VITE_API_BASE_URL 配置,如果前端和服务端部署在同一域名下,该值留空,否则需要设置为服务端接口地址。
4.修改为manager服务地址,如:http://mgr.xxx.com 或 http://202.112.102.18:9217 (域名和ip端口以你服务端真实部署为准)。
5.在 jeepay-ui-manager 根目录下,执行编译打包。
    参考如下命令:
        # 安装依赖 (每个前端项目web端以及uni前端均需执行此操作,依赖于manager中components组件库)
        npm install

        # 打包文件
        npm run build
6.打包后,生成dist目录,将dist目录下所有文件上传至服务器,如: /home/jeepay/html/manager下。
7.其他前端打包参考上述流程
注意事项:node 版本需要 >= v16.7.0

Q:web码牌字体乱码

A:
1.找到字体文件夹:jeepay-plus/docs/fonts 解压后按安装说明放到对应目录下。
2.重启运营、代理、商户等服务端。

Q:已配置公私钥是否还需要配置证书?

A:
1.支付宝公钥证书配置项勾选不使用证书时,不用配置证书即可使用。
2.微信退款时需要证书文件,配置微信官方时需配置相应证书。

Q:证书类文件上传是上传到哪里?是否安全?

A:
1.依据当前系统配置中存储配置来存储。
2.本地存储:将文件、图片等上传存储到本地服务器,存储路径在对应yml配置文件中修改。
3.阿里云oss:证书文件等存储到私有读权限的bucket,图片、头像等会存储到公共读权限的bucket。
4.进件上传的身份证等信息将存储至公共读权限桶,进件发起时支付渠道方也会要求上送证件信息等图片。

Q:为什么支付成功后订单还是支付中的状态?过了一段时间之后订单又成功了是为什么?

A:
1.该问题大部分都是因为回调地址错误,导致支付通道回调请求不到,然后jeepay的自动补单机制会主动去支付通道查询订单状态
2.在 [运营平台 - 系统管理 - 系统设置] 中,检查支付网关地址配置是否正确
3.确保支付网关地址,公网是可以访问的(微信支付V3接口要求是https地址)
4.保存成功后,确保内存中参数也会修改(mq确保正常,如果还不生效,尝试重启应用)
5.如果以上都检查,还是回调不正常,需要查看payment日志,检查是否有验证签名错误等问题

Q:自动补单机制是怎样运行的?怎么管理补单机制?相关代码在哪里?

A:
1.支付中的订单系统会在10分钟后(默认),进行定时任务补单,每分钟执行一次,调用渠道查单接口查询上游订单状态,直到订单终态(成功/失败)或者订单超过支付时间(系统默认2小时,订单生成时定义),2小时后将更新订单状态为订单关闭,此时订单不再执行定时任务,以订单终态结束。
2.定时任务使用xxljob,系统启动的task-center就是定时任务模块。
访问默认登录地址(http://服务器IP:9300/xxl-job-admin/toLogin),默认登录账号及密码可以管理相关定时任务(admin / 1234563.代码位置:jeepay-payment/src/main/java/com/jeequan/jeepay/pay/task/RefundOrderReissueTask.java

Q:商户WEB页操作支付测试,下单跳转的returnUrl跳转到了www.jeequan.com 在哪里更改?

A:支付测试下单部分参数默认在代码中写死,可以在对应文件中修改:jeepay-merchant/src/main/java/com/jeequan/jeepay/mch/ctrl/paytest/PaytestController.java

Q:前端涉及到的公司logo网页图标等是否可以替换?在哪里替换?

A:
1.前端展示的企业logo以及网站图标等信息均为动态参数,可随时更换。
2.运营平台-系统配置-平台配置 相关logo图标、备案信息、主题色等均可替换。

Q:支付订单有效期是多久?上送渠道的订单支付有效期是多久?

A:
1.订单的支付超时时间由两种方式定义:一种是由接口下单上传expiredTime字段,另外就是系统默认订单超时时间。(支付接口文档:https://docs.jeequan.com/docs/jeepay_api/jeepay_api-1dabshnfu814r)
2.若接口未上传订单失效时间,则默认为系统默认订单超时时间,2个小时。(AbstractPayOrderController中搜索"订单过期时间"3.系统内上送渠道的订单超时时间为,已生成的订单中超时时间,具体可查看对应渠道下某支付方式中代码逻辑
4.说明:订单超时时间暂无系统配置方式,代码逻辑中默认2小时

Q:微信官方支付已配置V3参数,但是使用条码支付方式会签名错误?

A:
1.微信V3不支持条码支付方式
2.服务商微信官方配置需配置V2key用于支持条码支付

Q:关于账户中心、佣金钱包、在途利润、提现中金额、入账金额、待入账、利润等详细说明

假定当前费率配置为:(基于此费率进行以下说明)
服务商 0.25%    代理商:0.32    商户:0.38
------------------------------------------------------------------------------------------------------------------------------
此时商户产生一笔订单,订单金额:100.00 元。运营端打开该支付订单详情,展示如下:

商户(初始商户) 手续费 : 0.38 元
代理商( 初始代理商)分润 : 0.06 元
平台三方入账 (不扣减代理商分润): 0.13 元
平台利润: 0.07 元

上述计算说明:
商户(初始商户) 手续费 : 0.38 元    (100元 x 0.38%)由商户承担支付费率0.38%
代理商( 初始代理商)分润 : 0.06 元    (100元 x (0.38%-0.32%))代理商利润
平台三方入账 (不扣减代理商分润): 0.13 元    (100元 x (0.38%-0.25%))服务商基础费用(平台利润+代理商分润)
平台利润: 0.07 元    (0.13 - 0.06)    服务商利润
渠道手续费:0.25 元
------------------------------------------------------------------------------------------------------------------------------
代理商佣金钱包:
钱包余额--->可提现的余额
在途利润--->订单未结算完成的金额(结算时间配置为服务商列表-支付配置-对应渠道结算周期配置)
提现中金额--->代理商发起提现,未通过结算审核的金额
钱包流水可查看钱包余额流水以及平台手动调账变动流水
------------------------------------------------------------------------------------------------------------------------------
运营-佣金管理说明:(点击对应金额可进入记录列表)
入账金额--->三方支付平台计算费率后,结算至服务商账户中的佣金金额。(为上述中平台三方入账 0.13元)
待入账金额--->处于结算周期中的订单金额(订单结算周期为:服务商列表-支付配置-对应渠道结算周期配置)

利润--->减去代理商佣金后的实际利润金额 (为上述中平台利润 0.07)
在途利润--->订单处于结算周期中的实际利润金额 (订单结算周期为:服务商列表-支付配置-对应渠道结算周期配置)
------------------------------------------------------------------------------------------------------------------------------
注:
1.运营可根据实际情况对代理商钱包进行手动调账,调账记录可在钱包流水查询。(用于运营与代理协商结算等业务)
2.钱包提现操作最终由运营方通过对公/其他方式结算给代理商,jeepay系统目前没有结算至账户功能

Q:进件成功后,下单支付提示:当前商户需补齐相关资料后,才可进行支付,请商户联系服务商

A:
1.此提示信息为商户还未进行支付宝/微信侧实名认证
2.引导商户扫描对应渠道侧商户拓展码,完成认证后再下单支付

Q:API调用接口提示:商户无此接口[API_PAY_ORDER]权限!

A:
1.商户侧接口调用,权限是可配置的。此提示为未配置该接口权限。
2.配置地址:运营端-商户列表-高级功能配置-接口权限;针对该商户所需勾选对应接口进行配置。

Q:小程序启动图在哪里更改?

A:
1.此图标暂未支持动态配置。
2.文件位置:/pages/adStart/components/StartPage.vue
3.image标签内容替换或注释即可。

Q:提示 认证服务出现异常

A:
1.检查MQ是否正在正常运行
2.检查yml配置文件中db-encrypt-secrethttp-message-encrypt-secret是否有所更改及前端env文件中VITE_HTTP_MESSAGE_ENCRYPT_KEY是否一致,如KEY、私钥不一致将导致数据错乱,前后端部分数据无法解析。

tips:
1.如果mq启动显示正常启动,查询启动状态为未启动。可能为端口冲突。
2.如果安装过rabbitmq,后续改为activemq,此时activemq启动不成功为端口占用。
3.占用问题解决方法:打开activemq.xml,找到5672端口号,修改为其他如5673,保存后重启mq,再次检查启动状态。

Q:如何切换mq配置?

A:
1.配置对应服务端application.yml文件中所要用到的mq,activemq/rabbitmq/rocketmq/aliyun-rocketmq(配置其中一种),文件最下方配置mq.vender,配置对应的MQ名称配置
2.打开mq配置pom:jeepay-components/jeepay-components-mq/pom.xml,在对应mq注释掉<scope>provided</scope>(将不需要的mq下方注释放开,即仅注释掉所需要的mq类型)
3.启动mq,启动服务

tips:
1.aliyun-rocketmq配置文档参考:https://docs.jeequan.com/docs/jeepay-plus/jeepay-plus-1e6mhs7shqv0p
2.除aliyun-rocketmq外,其他mq会自动创建消息队列
3.由RabbitMQ切换至activemq(两种mq环境都有的情况),切换后会导致activemq启动失败,无法正常启动。具体原因为端口占用,请将activemq配置文件中5672端口号修改为其他如5673后,即可正常启动。
4.其他问题参考文档:https://docs.jeequan.com/docs/jeepay/jeepay-1d99ciatu11h5#9zt7gr

Q:小程序违规收集隐私信息。请参照《微信小程序平台运营规范》15.用户隐私和数据规范-15.1 数据收集和存储修改内容。


A:
1.修改用户隐私保护指引,将其中为了手机用户手机号修改为符合业务场景的描述信息。
2.如服务内容声明中没有《用户隐私保护指引》则小程序为代开发小程序

tips:
1.非代开发的小程序可通过登陆微信公众平台在【小程序管理后台-设置-功能设置-用户隐私保护指引】进行配置,而代开发的小程序则只能通过接口进行配置。
2.微信开放社区帖:https://developers.weixin.qq.com/community/develop/doc/00028ef67d43c82ca0dfa49a25b000
3.配置小程序用户隐私保护指引:https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/product/privacy_setting.html

Q:支付宝[buyerUserId]不可为空/微信[openId]不可为空

A:
1.调起小程序、公众号支付方式需要传入支付用户的userId,查看payment服务器日志,具体某一个支付渠道,会有详细的日志输出,多数情况为公私钥配置不正确,导致获取支付用户userId失败。
2.日志产生:用户扫码牌/聚合码时调起获取支付用户id的sdk。
3.检查服务商/普通商户,oauth2参数中支付宝/微信公众号or小程序配置是否正确。
4.公众号/小程序appid配置需为同一个服务商主体下申请的。
5.sdk接口下单,可查按文档接口获取参数:https://docs.jeequan.com/docs/jeepay_api/jeepay_api-1dabshnfu814r (获取渠道用户ID接口)
6.若下单方式为聚合码方式等主扫方式(公众号、小程序),需在下单调起时同步传入userid,注意调起时获取支付用户id并按支付文档传入对应参数。

Q:什么是MFA认证?

A:
1.多重要素验证(英语:Multi-factor authentication,缩写为 MFA),又译多因子认证、多因素验证、多因素认证,
是一种计算机访问控制的方法用户要通过两种以上的认证机制之后,才能得到授权,使用计算机资源,这种认证方式可以提高安全性。
2.可使用的MFA认证软件,阿里云或腾讯云手机客户端或者微信小程序中MFA工具等。
文档更新时间: 2024-04-03 10:38   作者:大森林