微信支付服务器system error,微信企业支付--遇到不明确结果的err_code:SYSTEMERROR,NOT_FOUND...
前提
项目开发中实现微信提现的功能。使用到了两个接口
企业付款接口:transfers【】
查询企业付款接口:gettransferinfo 【】
为什么有不能马上知道付款结果的情况--遇到err_code=SYSTEMERROR?
根据支付文档,可知,主要看3个字段
return_code :通信标识,非交易标识,此字段是通信标识,非交易标识,交易是否成功需要查看result_code来判断
result_code: 交易标识
err_code :错误编码
只有在return_code 和 result_code 同时为SUCCESS时 才可判断 交易成功
那么return_code ==SUCCESS result_code =FAIL的时候呢?根据文档可知result_code 才是交易标识,这时应该判定位交易失败才对,
然而,在实际应用中发现,真相并不是这样的。
在一次付款日志中出现,return_code ==SUCCESS result_code =FAIL 有err_code时 【err_code=SYSTEMERROR:系统繁忙,请稍后再试】
我们判定了为交易失败,但是微信方面却在几天后,成功支付了这笔钱,这就就导致了损失。
所以,付款API 除了有即时成功 即时失败的情况外 还有一些意外的情况 :不能马上判断是成功了还是失败了
对于那些不能马上知道结果的交易订单应该怎么处理?
对于那些不能即时成功的交易记录,我们使用第二个微信接口:查询企业付款接口:gettransferinfo
定期去查询这些记录的微信处理结果,如果返回即时成功/失败时 才在我们这边处理金额数据。这样就尽量避免了出现上面会造成损失的情况。
查询企业付款接口遇到的err_code=NOT_FOUND问题
但是这个查询企业付款接口 ,在实际应用中,我们又遇到了一个新的问题:
付款接口返回即时成功时,下一秒马上使用查询接口去查询该订单号的交易结果时,返回的却是err_code=NOT_FOUND而不是成功。再隔一个时间去查询时 就返回交易结果为成功了。
这种情况,因为付款成功到调用查询接口的时间间隔太短 (只有1秒)导致的,这1秒期间微信那边的订单可能还没有入库,导致查询结果为订单号不存在,在隔一段时间去查就为成功了。
这是因为付款成功后,刚好就到了定时任务启动的时间段,马上就去执行查询订单结果的脚本的结果,这是使用定时任务无法避免的会出现的情况。
所以,有err_code=NOT_FOUND并不代表 真的交易失败,err_code为NOT_FOUND时可能只是数据没有入库的原因。
总结上文工作中遇到的情况,可以归纳如下结果
付款接口
return_code=result_code=SUCCESS -->可以 判定为即时交易成功
return_code=FAIL -->可以判定为即时交易失败
err_code=SYSTEMERROR -->不可判定交易结果,需要定时去调用查询付款接口取确定,直到明确结果
其他 明确失败的err_code则 可以判定为即时失败(err_code=NOAUTH/AMOUNT_LIMIT等)
其他不可判定交易结果,需要定时去调用查询付款接口取再去确定,直到明确结果
查询付款接口
return_code=result_code=SUCCESS时:
status=SUCCESS 交易成功
status = FAILED 交易失败
status=PROCESSING 交易处理中
2.return_code=SUCCESS,result_code=FAIL时:
err_code=NOT_FOUND 不可判定交易结果,需要定时去调用查询付款接口取再去确定,直到明确结果
其他 明确失败的err_code则可以判定为即时失败(err_code=NOAUTH/AMOUNT_LIMIT等)
3.其他不可判定交易结果,需要定时去调用查询付款接口取再去确定,直到明确结果
微信支付服务器system error,微信企业支付--遇到不明确结果的err_code:SYSTEMERROR,NOT_FOUND...相关推荐
- 微信支付服务器system error,调用微信支付统一下单接口出现err_code:SYSTEMERROR错误...
调用统一下单接口: 返回如下 {'appid': 'wxxxxxxxxx', 'err_code': 'SYSTEMERROR', 'err_code_des': 'system error', 'm ...
- 微信企业支付 服务器根证书,微信支付服务器证书根ca证书有什么用
随着现如今网络的不断发展,我们的生活跟网络密不可分,现在到处充斥着手机消费,只要你手机上有微信.支付宝不管到哪里都可以买你想买的东西,钱包已经在家里闲置多时.手机支付给我们的生活带来便利的同时也会伴随 ...
- 微信企业支付 服务器根证书,微信支付证书获取与上传流程的说明_根证书rootca.pem...
小伙伴们,有少许正在使用微信支付交易功能的用户向我们反馈,在某些功能里需要使用到微信支付证书,比如在拼团购.高级酒店.微信红包.高级H5游戏里涉及到金额退款. 有部分需要使用到微信支付证书上传的用户不 ...
- 微信支付服务器demo,集成微信支付(附带demo)
首先忽略掉申请AppKey的步骤,直接从集成开始 1.cocopods集成SDK pod 'WechatOpenSDK' 2.添加依赖库 SystemConfiguration.framework, ...
- 微信支付宝服务器分布,支付宝微信扫码支付中间件「第二届立创商城电子制作节30强作品」...
原标题:支付宝微信扫码支付中间件「第二届立创商城电子制作节30强作品」 本作品为第二届立创商城电子制作节30强入围作品,作者立创社区ID:云逸Baby:转载请注明出处,未经允许不得用作商业用途.作品原 ...
- 自动售货机微信支付 服务器,售货机微信支付原理和技术难点
原标题:售货机微信支付原理和技术难点 首先,了解一下售货机投币支付的工作原理.顾客投币后,售货机上的投币器会识别顾客的投币金额,并通讯售货机主板.然后顾客在售货机上选择商品,主板确认顾客投币金额可以购 ...
- 微信无法连接支付服务器,App接入微信H5支付常见错误及原因
在App上接入微信H5支付一般都会遇到一些错误.本文讨论了这些错误的解决方案和背后的原因,希望能让读者能少踩些坑. 错误可以分为两类:一是H5支付域名设置错误,二是URL Scheme跳转App错误. ...
- 微信支付服务器商模式,微信支付分正式支持服务商模式!
支付之家网(ZFZJ.CN)7月21日,微信支付推出<微信支付成长计划-智慧经营系列课堂>,同时对外透露,微信支付智慧经营产品支付分正式宣布支持服务商模式. 首期"政策与产品能力 ...
- 苹果怎么取消微信订阅服务器,教程:取消微信免密支付授权功能设置
随着移动支付的飞速发展,第三方支付平台也越来越多,特别是微信支付宝的普及,给大家带来了极大的便利.之前我们出门必备的银行卡.现金等已经被一部手机取代了.回想一下,小编已经记不清自己上次带钱包出门是什么 ...
最新文章
- C#多态性-抽象类对象引用子类实例
- java 反射 单列_轻松掌握Java单例模式
- cookie+memcached实现单点登陆
- vscode在ubuntu下安装插件,同时配置python虚拟环境、ctrl+鼠标滚轮放大代码窗口设置
- 本机用域名不能访问_域名注册申请网站域名注意事项
- 东芝移动硬盘驱动_传输数据不用等,高速移动硬盘数据线畅享快传体验
- Java必备——MySql 三大知识点
- tpadmin的坑收集 nginx下配置tp5失败
- ESP32 Uart串口控制器
- 石家庄地铁查询(双人项目)
- 华为物联网操作系统 LiteOS
- 流星加速器木马分析与处置方案
- 如何使用QQ群日历和群活动进行会议室安排
- python导入py文件报错
- Android Studio编写一个手写字体识别程序
- VBS脚本实现宽带上网加网页认证上网双验证
- 【Java核心技术卷】深入理解Java近似数(近似存储)与有效数字、精确度、最大有效位数的概念
- hrbust 1558 小背包(简单01背包)水坑
- 根据地区名称获得经纬度
- 2021.10.12-13科研日志