商业网站的后缀一般为企业邮箱可以是个人qq邮箱吗

news/2025/9/23 8:08:31/文章来源:
商业网站的后缀一般为,企业邮箱可以是个人qq邮箱吗,泉州自助建站系统,环球建筑网校在这次对接支付接口的时候#xff0c;有如下场景#xff1a;用户还款的时候#xff0c;APP端只要请求了支付接口后#xff0c;正常情况下#xff0c;支付接口会同步返回结果状态#xff0c;并且异步通知是否成功#xff0c;支付状态以异步通知为准。这样的场景会出现一个…  在这次对接支付接口的时候有如下场景用户还款的时候APP端只要请求了支付接口后正常情况下支付接口会同步返回结果状态并且异步通知是否成功支付状态以异步通知为准。这样的场景会出现一个问题如果APP端请求了支付接口异步通知迟迟未返回这样一来用户还款状态是无法更改还款的逻辑处理实在异步通知里处理因为一切以异步通知为准并且对于用户来说他已经还款了,异步回调没来可能支付成功可能支付失败我们不知道对于用户来说他已经支付还款了按逻辑这一期还款他无需也不能做其他操作了所以在回调通知来之前这一期数据在APP端是需要做一个限制不能让用户操作在这里加了一个“还款中”状态标记请求支付接口之后回调通知来之前的状态正常情况下这段时间很短短到让用户无法察觉。   加“还款中”的状态是可行的后台服务端来更新还款记录的状态由APP端请求APP端在请求支付接口后支付接口同步返回成功后再请求后台的接口更新还款记录的状态。这里有个问题请求支付接口会有一个异步通知返回我们在异步通知里进行相应的逻辑处理包括更新还款记录的状态为“已还”但是APP端同步请求成功后也会请求后台更新这条还款记录为“还款中”操作同一条数据我们一开始的做法是更新还款中的时候判断是否是“未还”状态但是发现如果两个更新操作的方法“同时”处理即异步通知还未更新为“已还”更新为“还款中”的方法进去了检索到这条记录仍是“未还”同样会处理成“还款中”。这样一来有可能支付成功了还款记录的状态还是“还款中”的情况所以我们要解决并发的问题人为控制如果回调通知已经来了就没必要在请求后台改成“还款中”。   这里用到的方法有点类似于“文件锁”我们通过生成特定文件来标记是否异步通知成功直接更新为“已还”如果异步通知成功则不需要更新为“还款中”如果先改成“还款中”再改成“已还”也没有问题如果两个方法同时进行则根据生成的文件来标记一个方法是否提交完成这里用到的是Spring的事务控制另一个事务提交后再执行当前这个方法主要做法为在异步回调通知里的方法notifyUrl()开始的时候创建一个文件A结束时删除这个文件在更改成“还款中”的方法updateRpmting()开始时候也创建一个文件B这里要判断A是否存在如果A存在则当前线程延时60ms等待notifyUrl()方法执行完毕这时候还款记录的状态已经改成“已还”不会再继续执行updateRpmting()方法改成“还款中”当然在创建文件A的时候也会判断B是否存在同样处理。这里生成文件的方法需要用java的synchronized来锁住确保同一时间只有一次调用生成一个文件。 RechargeUtil.javaGlobals.UNDER_LINE是定义的静态变量表示下划线 “_”   //创建一个唯一文件public static boolean creatOnlyFile(String rpmtIds,String myType, String otherType){// 创建一个files目录下面日期为子目录的rpmtId.txt文件String myFileNamefiles/ DateUtils.date2Str(DateUtils.yyyyMMdd)/ DigestUtils.md5Hex(rpmtIds) Globals.UNDER_LINE myType .txt;String otherFileNamefiles/ DateUtils.date2Str(DateUtils.yyyyMMdd)/ DigestUtils.md5Hex(rpmtIds) Globals.UNDER_LINE otherType .txt;System.out.println(文件地址为: myFileName);File myFilenew File(myFileName);if(!myFile.getParentFile().exists()){myFile.getParentFile().mkdirs();}File otherFilenew File(otherFileName);try {return createSynchronizedFile(myFile, otherFile);} catch (IOException e) {System.out.println(创建文件失败);e.printStackTrace();}return false;}//同一时间创建一个唯一文件public synchronized static boolean createSynchronizedFile(File myFile, File otherFile) throws IOException {if(!otherFile.exists()){myFile.createNewFile();return true;}return false;}  //删除存在的锁文件  public static boolean deleteOnlyFile(String rpmtIds,String myType){       File myFilenew File(files/ DateUtils.date2Str(DateUtils.yyyyMMdd)/ DigestUtils.md5Hex(rpmtIds) Globals.UNDER_LINE myType .txt);       if(myFile.exists()){         return myFile.delete();       }       return true;    }   异步回调通知里调用创建文件的方法 public void notifyUrl(PayRpmtEntity payRpmt, String noAgree ,JSONObject resultMap) throws Exception{//1.根据“还款-支付记录表”获取rpmtIds,循环修改还款计划状态String rpmtIds payRpmt.getRpmtIds();//创建一个唯一文件int size 0;while (size 30 !RechargeUtil.creatOnlyFile(rpmtIds,01, 02)) {Thread.sleep(100);size;}if (size 30) {log.info(****************************同步回调处理中****************************);resultMap.put(ret_code, 1005);resultMap.put(ret_msg, 支付处理失败);return ;}// TODO 逻辑处理     // 删除锁文件 RechargeUtil.deleteOnlyFile(rpmtIds, 01); }  更改成“还款中”的时候 /*** 将还款计划该成还款中* Title: updateRpmt * param rpmtIdsStr* throws Exception */public void updateRpmting(String[] rpmtIdsStr,String rpmtIds) throws Exception{//创建一个唯一文件int size 0;while (size 30 !RechargeUtil.creatOnlyFile(rpmtIds,02, 01)) {Thread.sleep(100);size;}if (size 30) {log.info(****************************状态处理中****************************);return ;}// TODO 逻辑处理// 删除锁文件RechargeUtil.deleteOnlyFile(rpmtIds, 02);}  转载于:https://www.cnblogs.com/mark8080/p/6201763.html

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

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

相关文章

磁贴式网站模板手机网站建设规划图

预训练GPU内存分析: GPU占用内存 模型权重 梯度 优化器内存(动量估计和梯度方差) 中间激活值*batchsize GPU初始化内存 训练流程 (选基座 —> 扩词表 —> 采样&切分数据 —> 设置学习参数 —> 训练 —>…

化妆品行业网站开发一个人做网站的难度

通过netstat 能够看到filebeat确实是有向kafka传输数据, filebeat 日志显示 那就需要修改 /etc/hosts文件 将kafka主机的名字和ip写入filebeat主机的hosts文件中。 转载于:https://www.cnblogs.com/liuYGoo/p/11226272.html

设计网站收费在线长图生成器

大家都知道java中有很多的基础知识,需要大家花费一定的时间去消化。关于java中ConcurrentHashMap的扩容机制不知道大家是否了解过,其实内容也是很好理解的,一起来看看吧。首先,我们需要知道的是:1. 计算每个线程可以处…

网站前后台建设难吗英国房产网站大全

数据异常是指数据不符合预期或不符合常识的情况。数据异常可能会导致数据分析结果不准确,甚至是错误,因此在进行数据分析之前需要对数据进行清洗和验证。 常见的数据异常包括缺失值、重复值、异常值等。 缺失值是指数据中存在未知值或未定义的值&#…

第四章 Arm C1-Premium 核心电源管理工艺解析

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

永州建设网站专业开发手机网站建设

这里介绍Linux CentOS系统直接Yum 安装 Jenkins,不同系统之间类似,操作命令差异,如:Ubuntu用apt; 0、安装 Jenkins Jenkins是一个基于Java语言开发的持续构建工具平台,主要用于持续、自动的构建/测试你的软…

g3云推广会员登录百度移动排名优化软件

一、CSS 背景概述背景属性的作用- 背景样式可以控制 HTML 元素的背景颜色、背景图像等 - 背景色- 设置单一的颜色作为背景- 背景图像- 以图片作为背景- 可以设置图像的位置、平铺、尺寸等二、CSS 背景属性背景色 background-color - 属性用于为元素设置背景色- 接受任何合法的颜…

南京网站房地产wordpress短代码按钮

WIN server 2003 下无法安装adobe cs3 当试变了网上的方法还是无法解决时,终极解决方法首先在微软下载一个工具ApplicationVerifier 下载地址在:http://www.microsoft.com/downloads/details.aspx?FamilyIDbd02c19c-1250-433c-8c1b-2619bd93b3a2&Di…

手机网站建立免费平台postgresql做网站用什么环境

参考资料:小林coding、阿秀 缺页中断 在 CPU 里访问一条 Load M 指令,然后 CPU 会去找 M 所对应的页表项。如果该页表项的状态位是「有效的」,那 CPU 就可以直接去访问物理内存了,如果状态位是「无效的」,则 CPU 则会…

网站优化建设扬州如何用手机免费开网店

在nginx中,将静态资源设为internal;然后将前端的静态资源地址改为指向后端,在后端的响应头部中写上静态资源地址。 近期客户对我们项目做安全性测评,暴露出一些安全性问题,其中一个是有些静态页面(*.html&…

网站建设申请报告怎么写网站建设推广优化

yaml语法 格式 它的基本语法规则如下 大小写敏感 使用缩进表示层级关系 缩进时不允许使用Tab键,只允许使用空格。 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可 YAML 支持的数据结构有三种 1、对象:键值对的集合,又称为映…

怎样把网站做成软件wordpress 分享主题

引言 私域NuGet包的重要性:代码复用和团队协同。通过将公共组件、库或工具打包成NuGet包,并在私域中共享,团队成员可以更方便地引用和使用这些资源。其次私域NuGet包有助于依赖管理。通过私域NuGet包,团队可以集中管理这些依赖&a…

易居做网站速成网站

方法一、重启库   库重启时,Smon进程会完成临时段释放,TEMP表空间的清理操作,不过很多的时侯我们的库是不允许down的,所以这种方法缺少了一点的应用机会,不过这种方法还是很好用的。   法二、Metalink给出的一个方法   修改一下TEMP表空…

免费品牌网站制作常见的网站开发语言

NumPy - 数据类型NumPy 支持比 Python 更多种类的数值类型。 下表显示了 NumPy 中定义的不同标量数据类型。序号数据类型及描述1.bool_存储为一个字节的布尔值(真或假)2.int_默认整数,相当于 C 的long,通常为int32或int643.intc相当于 C 的int&#xff0…

怎么做提取微信62的网站电子版简历免费模板

本文实例为大家分享了java实现通讯录管理系统的具体代码,供大家参考,具体内容如下完成项目的流程:1.根据需求,确定大体方向2.功能模块分析3.界面实现4.功能模块设计5.coding6.代码测试下面是源代码:import java.awt.Co…

能否提供代码 网站建设长沙装修公司联系电话

前面通过几篇的文章详细的介绍了 Window 窗口的添加过程,这里我们简单看一下,AMS 如何实现 Window 窗口的更新和移除流程。 一、窗口更新 这里我们从 Session 开始分析。 1、Session 源码位置:/frameworks/base/services/core/java/com/android/server/wm/Session.java …

litserve openapi schema 处理简单说明

litserve openapi schema 处理简单说明litserve 在处理openai schema 的时候实际上还是利用了fastapi 的能力,只是litserve 抽象了api 开发的处理,对于openapi request 以及response 的类型基于了动态获取(通过pyth…

自己做的网站显示不全服务器地址怎么查

一、介绍 在流媒体协议中,常用的流媒体协议主要有 HTTP协议,RTSP协议和RTMP协议。 在国内视频网站多采用HTTPMP4或者HTTPFLV协议传输视频,而国外使用RTMP,RTSP等专门的流媒体格式。 二、协议介绍 1、HTTP协议: HTTP的视频协议…

阜蒙县建设小学校官方网站网站开发肇庆培训

2578. 最小和分割 - 力扣(LeetCode) 给你一个正整数 num ,请你将它分割成两个非负整数 num1 和 num2 ,满足: num1 和 num2 直接连起来,得到 num 各数位的一个排列。 换句话说,num1 和 num2 中…

网站外链内链怎么做短视频公司网站建设方案

在新手引导每一步中实现可以遮掉其他部分而显示当前需要点击的部分,只需要在每一步引导的时候设置对应的镂空区域的RectTransform.效果如下图: 代码: public class SelfMaskSet : MaskableGraphic, ICanvasRaycastFilter {[SerializeField]p…