App支付报错"商家订单参数异常,请重新发起付款"排查流程
今天在对接支付宝 APP 支付的时候遇到了一个报错,记录下问题的排查过程~
报错过程
APP 中弹窗提示的报错“商家订单参数异常,请重新发起付款”,检查了下参数感觉没啥问题,不知道是啥问题导致的。
去官网搜了下,折腾排查了一遍,发现是环境问题,没有切到沙箱环境导致的 (*/ω\*) 。
先放个官网提供的报错排查思路:
[商家订单参数异常,请尝试返回后重新付款或联系商家确认 (ALIN10146)]
排查思路
造成这个问题的原因还挺多的,下面把排查过程总结下:
第一步:使用官方的诊断工具查日志
支付宝提供了一个日志的查询工具,可以直接根据交易号查到报错信息,(๑•̀ㅂ•́)و✧nice~!
[诊断工具] 建议收藏使用
输入 out_trade_no 之后,说是“接口传入的 app_id(9021000123607990)不正确”
发现 appid 没有从沙箱的换回线上的,重新切换回线上的环境,发现查不到日志了=-=
️注意:这个工具只能查线上环境的,沙箱环境的无法查询!!!
第二步:排查参数是否有问题
没有办法,只能重新确认下请求参数
method 没有问题,product_code 参数也跟文档上一致。
没啥思路了,重新按照官方的文档排查下。
第三步:排查密钥是否有问题
可以参考官网文档 [如何检验 RSA2 密钥是否匹配]
检查了下密钥,发现没有问题,是匹配的;
应用私钥放在代码中,应用公钥上传到平台上,跟文档说的一致。
第四步:排查权限是否正常
可以参考官网文档 [如何确认是否完成签约]
直接到应用下产品绑定里查看产品开通状态,是 已开通 的,没有问题
第五步:排查测试的环境
沙箱联调时要在客户端代码里加上下面这行代码,客户端请求的时候才能请求到沙箱环境,如果不加的话,就是请求到正式网关。
- EnvUtils.setEnv(EnvUtils.EnvEnum.SANDBOX);
找到这里就定位到问题了。
我之前在沙箱测试的,想着网关和密钥切回去了之后就没有问题了,忘记了客户端还得改。
去掉这行代码之后,走通了。
希望能对你有所帮助~✿✿ヽ(°▽°)ノ✿,有问题一起沟通~。
关于沙箱的更多内容,可以参考这一篇:
App支付报错"商家订单参数异常,请重新发起付款"排查流程的更多相关文章
- APP支付报错ALI40247处理方案!
简直日狗!这里要吐槽支付宝: 1.支付宝文档太复杂,分类虽然详细,但是我找不到app支付 对应服务端的demo 2.提供下载的sdk都是全整合的 用下来都是一条龙服务,还有一些客户端(app)的请求也 ...
- 微信h5支付报错 商家参数格式有误,请联系商家解决
商家参数格式有误,请联系商家解决 当前调起H5支付的referer为空导致,一般是因为直接访问页面调起H5支付,请按正常流程进行页面跳转后发起支付,或自行抓包确认referer值是否为空 解决:就把 ...
- 微信支付报错:统一下单和拉起支付的appid不一致(原创)
微信支付报错:统一下单和拉起支付的appid不一致 错误码:-2 提示参考: 参考统一下单的API (谦信君原创,转载请注明来源) 原因排查: 我们做的是APP微信支付 客户端向我服务端发请求,获取预 ...
- python报错函数传参数传多了
写python的时候报错: Exception : Traceback (most recent call last): File , in __bootstrap_inner self.run() ...
- vscode源代码管理(vscode报错 未找到Git,请安装Git,或在"git.path" 设置中配置)
vscode源代码管理(vscode报错 未找到Git,请安装Git,或在"git.path" 设置中配置) 直接上图,电脑上已经安装git,由于vscode没有找到git,所以v ...
- 微信支付报错:app没有获取微信支付权限
调试微信支付的时候报错: Array( [return_code] => FAIL [return_msg] => 您没有APP支付权限) 查询了,发现自己将之前的公众号支付的APPID一 ...
- APP微信支付报错《商户号该产品权限未开通,请前往商户平台>产品中心检查后重试》
问题 最近项目使用MUI,HBuilder.开发打包H5的app 在开发H5 plus支付的时候,遇到以下问题: App微信支付调官方的统一下单接口返回错误信息 {return_msg=商户号该产品权 ...
- python (3):wxPython打包app,报错
1,打包app报错 如图: 使用py2app,mac下打包成app.异常.程序直接退出. 没有详细的错误信息,client程序直接崩溃了. 2.原因 代码没有几行: #!/usr/bin/python ...
- go Rails 知识点,Concepts Series:url和parameter; 建立Rails App Templates;报错页面debug; counter_cache
Rails Concepts Series: https://gorails.com/series/rails-concepts 基本都是免费的 一些细小的知识点,很有帮助. URL和paramete ...
- Django-自己写的py文件调用models&Non-ASCII character报错&url接收参数
1.这个设置是网上能查到的最多的,但是没解决我的问题: Django的models.py在外部独立使用,新建一个文件夹,和monitor1目录平级 import sys,os sys.path.app ...
随机推荐
- 如何使用C#中的Lambda表达式操作Redis Hash结构,简化缓存中对象属性的读写操作
Redis是一个开源的.高性能的.基于内存的键值数据库,它支持多种数据结构,如字符串.列表.集合.散列.有序集合等.其中,Redis的散列(Hash)结构是一个常用的结构,今天跟大家分享一个我的日常操 ...
- 说说 Go 语言的坑(二)
上一篇文章 说说 Go 语言 for-range 的坑 说的是 for-range 的,工作中,其实还是遇到蛮多奇奇怪怪的问题,这里也顺便整理了一下,就当作是续集:) 先继续看 for-range 的 ...
- 小程序软键盘&SM2解密方式
小程序软键盘&SM2解密方式 转载请著名出处:https://www.cnblogs.com/funnyzpc/p/17572445.html SM2基本信息 私钥(primary key) ...
- Python中的弱引用与基础类型支持情况探究
背景 最近有一个业务场景需要用Python自行实现一个简单的LRU cache,不可避免的接触到了弱引用这一概念,这里记录一下. 强引用 Python内存回收由垃圾回收器自动管理,当一个对象的引用计数 ...
- 常用c++ STL 汇总
常用STL: vector 变长数组,倍增的思想 初始化: //初始化 vector<int> a; vector<int> a(n); vector<int> a ...
- 【go笔记】使用sqlx操作MySQL
前言 go在操作MySQL时,可以使用ORM(比如gorm.xorm),也可以使用原生sql.本文以使用sqlx为例,简单记录步骤. go version: 1.16 安装相关库 # mysql驱动 ...
- 【go笔记】使用标准库flag解析命令行参数
前言 Go语言标准库中提供了一个包flag可以解析命令行参数. 示例代码:文件读取 package main import ( "fmt" "flag" &qu ...
- debian11安装mysql5.7
前言 mysql官网5.7版本的只找到debian10的,没有debian11的,试了下也能用. 系统版本:debian 11 mysql版本:5.7.35 步骤 下载bundle的tar包.官网地址 ...
- Spring HandlerInterceptor工作机制
本文以一个通过正常注册拦截器流程注册拦截器失败的实际场景,来带领大家阅读源码,体会Spring的HandlerInterceptor拦截器整个工作流程 简单认识 org.springframework ...
- ENVI+ERDAS实现Hyperion叶绿素含量反演:经验比值法、一阶微分法
本文介绍基于ENVI与ERDAS软件,依据Hyperion高光谱遥感影像,采用经验比值法.一阶微分法等,对叶绿素含量等地表参数加以反演的具体操作. 目录 1 前期准备与本文理论部分 1.1 几句闲谈 ...