关于微信支付-商户平台:查询订单提示“查询失败:操作失败,请稍候重试”的分析

 

目录

引子

分析

应对

小结


引子

在开发和实施微信 JSAPI 支付的应用后,我们遇到了一些问题,订单的状态更新不正常,当然我们首先需要从自身寻找原因和完善解决问题的办法和方案。在支付的过程中,客户会给我们一些反馈,应用系统的订单状态与微信手机端支付状态不一致,即信息状态更新异常。其中一个客户给我我们提供了手机截图,我们根据用户提供的订单号,登录微信支付商户平台,交易中心,按订单号进行查询,如下图,查询后的结果却显示“查询失败:操作失败,请稍候重试”...

分析

一般的情况下,查询订单会有两种结果,一、查不到,二、查得到。

一、查询不到订单号的显示如下图:

点击查询按钮后,系统显示“查询失败:商户订单号输入不正确”。

二、查询得到订单,如下图:

但第三种情况,某些存在且更新异常的订单,仍然提示 “查询失败:操作失败,请稍候重试”,则比较让人疑惑,如果按照字面的稍候重试去理解,则永远的答案都会是显示这一句话。客服咨询的回复和社区的求助目前也没有太理想的答案,这也在预期之中。

如引子里提供的订单号为:3328e4bae5ee40f5b6ff2fcd2782d5d8 的订单,则属于更为极端的一种情况,根据客户的反馈,通过系统其它的信息比对及排查(如支付时间、支付银行等),最终确定订单号为:3aa33681f24a41139a79e6ce431adf82,这种情况就难以解释了。

应对

目前来看,查询订单的结果无非这三种情况,无论何种情况,我们需要以下几点应对方案:

(1)建立日志跟踪机制是必不可少的,我们以 MS SQL SERVER 举例建立类似如下表:

序号字段名类型说明
1project_ciduniqueidentifier项目ID,连接项目活动表
2projectName[nvarchar](100)项目名称(冗余字段)
3per_ciduniqueidentifier个人ID,连接个人详情表
4payName[nvarchar](50)交费项目名称
5price[money]交费金额
6orderid[nvarchar](50)订单号
7ordertime[datetime]订单交易时间
8openid[nvarchar](50)微信个人openid标识
9err_msg[nvarchar](500)微信支付API返回消息
10status[nvarchar](50)支付状态,可设置消费交易成功、消费交易失败、待支付等
11paytime[datetime]支付时间
12paytype[nvarchar](10)支付类型,可包括消费、退款
13nickname[nvarchar](100)个人微信昵称(冗余字段,便于排查)
14rorderid[nvarchar](50)微信返回的退款订单号
15ciduniqueidentifier日制记录唯一标识

 (2)建立对帐排查功能

如下图登录微信支付商户平台,进入交易中心、交易订单、批量订单查询、输入或选择交易时间范围,点击查询

我们可以下载 Excel 格式的文件,如下图:

 下载的文件为CSV格式,我们可以根据实际需求转存为XLSX格式,通过读入EXCEL数据或导入数据库,与自己的业务表(如交易表、交易日志表)进行关键字比对(如订单号、微信用户openid)等,以排查异常数据进行提醒与处理。

(3)实现手工更新功能,手动更新是最后的处理方式,可以根据前面所述的排查结果单一或批量进行更新,更新的时候可以做好日志记录及标记标注等操作。

(4)对于示例中所叙述的极端情况,我们尽量还是要创建有意义的可用于后期可排查的订单号,微信订单号要求是32位数字,我们可以基于这个规则进行分段拼接,如连接个人信息表中的ID,加项目编号 加 时间戳信息,以免被动的无法主动跟踪交易信息,无法联系交易当事人的情况。

小结

在微信支付交易开发的过程中,我们会遇到很多种情况,需要不断的根据问题反馈来完善我们的应用系统 ,相关开发可参考我的文章:

《C# 实现微信退款及对帐》

​《C# 微信支付接口V2版本回调开发实践》

以上是本人的一些体会与实践,再次感谢您的阅读,欢迎讨论、指教!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/41830.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Open-Sora1.2环境搭建推理测试

引子 前阵子写了一篇Open-Sora1.0环境搭建&推理测试(Open-Sora1.0环境搭建&推理测试_自己搭建sora服务-CSDN博客,感兴趣的童鞋,请移步)。Open-Sora1.1发布的时候,撇了一眼新闻。后面一转头,忘记这…

ARL联动AWVS实现自动化漏洞扫描

0x01 前言 很多场景下需要大范围的扫描漏洞和快速排查互联网暴露面的漏洞,需要使用这种自动化的手段,常规渗透测试的找互联网暴露面是,域名>子域名>IP>C段>端口,可以手动收集,也可以借助一些网络搜索引擎…

css中伪元素 :: before的用法

在CSS中&#xff0c;伪元素 ::before 用于在选定元素的内容前插入内容。它常用于添加图标、文本或装饰性的元素&#xff0c;而不需要在HTML中实际添加额外的标签。 以下是一个示例说明 ::before 的用法&#xff1a; <!DOCTYPE html> <html lang"en"> &…

一文解决Postman请求发送难题

标题&#xff1a;【技术深度解析】一文解决Postman请求发送难题 在API开发和测试过程中&#xff0c;Postman作为一款强大的工具&#xff0c;其重要性不言而喻。然而&#xff0c;开发者们时常会遇到Postman无法发送请求的问题&#xff0c;这无疑会严重影响开发进度和测试效率。…

wordpress网站添加一个临时维护功能

把以下代码放到functions.php文件中&#xff0c;主要用网站临时维护或者用于备案。事情做好了&#xff0c;把以下代码删除即可&#xff01;&#xff01;&#xff01; 有时遇到一些情况&#xff0c;比如站点需要闭站备案、或者被要求停站等等&#xff0c;我们就可以使用本文的功…

开发个人Go-ChatGPT--5 模型管理 (三)

开发个人Go-ChatGPT–5 模型管理 (三) 服务部署 go-ChatGPT项目涉及的中间件服务较多&#xff0c;以下部署文件目录&#xff1a; |-- chat-api | |-- etc | | -- config.yaml | -- logs |-- chat-rpc | |-- etc | | -- config.yaml | -- logs |-- docker-co…

CP AUTOSAR标准之UDPNetworkManagement(AUTOSAR_CP_SWS_UDPNetworkManagement)(更新中……)

1 简介和功能概述 本文档介绍了AUTOSAR UDP网络管理(UdpNm)的概念、核心功能、可选功能、接口和配置问题。UdpNm旨在成为一项可选功能。它旨在与TCP/IP堆栈协同工作,独立于所用通信系统的物理层。AUTOSAR UDP网络管理是一种独立于硬件的协议,可用于基于TCP/IP的系统(有关限制…

卡尔曼滤波Q和R怎么调

卡尔曼滤波器是一种有效的估计算法&#xff0c;主要用于在存在噪声的环境中估计动态系统的状态。它通过结合预测模型&#xff08;系统动态&#xff09;和观测数据&#xff08;包括噪声&#xff09;来实现这一点。在卡尔曼滤波中&#xff0c;调整过程噪声协方差矩阵 ( Q ) 和测量…

Java中的标准输入流简述

System.in简介 System.in 是标准输入流&#xff0c;通常与键盘输入相关联。它是 InputStream 类型的对象&#xff0c;Java 使用它来从控制台接收用户输入。在 Java 程序中&#xff0c;通常使用 Scanner 类来读取 System.in 的输入。 以下是一些关键点&#xff0c;解释为什么需…

Kubernetes运维工程师必备:K8s 基础面试题精编(一)

Kubernetes运维工程师必备:K8s 基础面试题精编(一) 1. 什么是Kubernetes?2. Kubernetes如何实现容器编排?3. 说出k8s的常见资源对象?4. 什么是pod?5. Deployment介绍及使用?6. statefulesets介绍及使用?7. statefulesets和deployment区别?8. 什么是调度器(Scheduler…

The First项目报告:NvirWorld与区块链游戏的未来

根据官方公告&#xff0c;The Fisrt现货区将于2024年7月2日16:00上架NVIR/USDT交易对&#xff0c;NVIR是NvirWorld平台的原生代币。作为一个去中心化解决方案&#xff0c;NvirWorld为开发者提供了一个简化且适应性强的环境&#xff0c;旨在通过优化的扩展解决方案来降低交易成本…

docker 本地部署大模型(ollama)

docker 安装 ollama docker search ollama docker pull ollama/ollama###docker下载ollama部署 docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama### 下载模型 docker exec -it ollama ollama pull llama3### 交互式运行模型docker exec -i…

ECharts 最小高度设置指南

下面提供一份关于ECharts中设置最小高度的专业而详细的文档。这份文档将涵盖不同图表类型的最小高度设置方法&#xff0c;适合初学者学习和参考。 ECharts 最小高度设置指南 1. 通用属性 对于大多数图表类型&#xff0c;可以使用以下通用属性来控制最小高度&#xff1a; 1.…

算法 —— 二分查找

目录 二分查找 在排序数组中查找元素的第一个和最后一个位置 搜索插入位置 x的平方根 山峰数组的峰顶索引 寻找峰值 搜索旋转排序数组中的最⼩值 点名 二分查找模板分为三种&#xff1a;1、朴素的二分模板 2、查找左边界的二分模板 3、查找右边界的二分模板&#xf…

【基于R语言群体遗传学】-12-超显性与次显性

欢迎先看前面的博客&#xff0c;再继续进行后面的内容&#xff1a; 群体遗传学_tRNA做科研的博客-CSDN博客 当杂合子的适应度超出纯合子的范围时&#xff0c;二倍体能够展现出更多令人着迷的选择实例。这种形式的一种是杂合子优势&#xff0c;或称为“超显性”&#xff0c;其…

【包邮送书】AIGC时代程序员的跃迁——编程高手的密码武器

欢迎关注博主 Mindtechnist 或加入【智能科技社区】一起学习和分享Linux、C、C、Python、Matlab&#xff0c;机器人运动控制、多机器人协作&#xff0c;智能优化算法&#xff0c;滤波估计、多传感器信息融合&#xff0c;机器学习&#xff0c;人工智能等相关领域的知识和技术。关…

深入了解 Huber 损失函数

深入了解 Huber 损失函数 在机器学习和深度学习的训练过程中&#xff0c;选择合适的损失函数对于模型性能的提升至关重要。MSE&#xff08;均方误差&#xff09; 和 RMSE&#xff08;均方根误差&#xff09; 是我们常见的回归损失函数。然而&#xff0c;当数据中存在异常值&am…

无线麦克风哪个品牌音质最好,揭秘手机收音麦克风哪个牌子好!

随着全球直播和短视频行业的蓬勃发展&#xff0c;领夹麦克风因其便携性和出色的录音质量而备受青睐。用户在各种场合下追求清晰、真实的录音效果&#xff0c;领夹麦克风无疑是一个理想的选择。 然而&#xff0c;面对市场上琳琅满目的品牌和型号&#xff0c;想要挑选一款性能优…

C++和Python蚂蚁搬食和蚊虫趋光性和浮标机群行为算法神经网络

&#x1f3af;要点 &#x1f3af;机器人群行为配置和C行为实现&#xff1a;&#x1f58a;脚底机器人狭隘空间导航避让障碍物行为 | &#x1f58a;脚底机器人使用摄像头耦合共振&#xff0c;实现同步动作 | &#x1f58a;脚底机器群使用相机&#xff0c;计算彼此间“分子间势能…

WAIC2024 上海 | Gooxi 全面展示智算新成果,加速人工智能落地应用

浦江之畔&#xff0c;大咖云集&#xff1b;智能浪潮&#xff0c;奔涌不息。7月4日&#xff0c;被誉为人工智能界风向标的世界人工智能大会暨人工智能全球治理高级别会议在上海盛大召开&#xff0c;Gooxi此次携最新AI服务器以及解决方案参与&#xff0c;以算为擎赋能新质生产力&…