个人电脑做网站服务器教程,克州seo整站排名,做网站 绑定域名,公司网站建设前期情况说明目录
引子
分析
应对
小结 引子
在开发和实施微信 JSAPI 支付的应用后#xff0c;我们遇到了一些问题#xff0c;订单的状态更新不正常#xff0c;当然我们首先需要从自身寻找原因和完善解决问题的办法和方案。在支付的过程中#xff0c;客户会给我们一些反馈#xf…
目录
引子
分析
应对
小结 引子
在开发和实施微信 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版本回调开发实践》 以上是本人的一些体会与实践再次感谢您的阅读欢迎讨论、指教