当前位置: 首页 > wzjs >正文

网站服务器错误403福州模板做网站

网站服务器错误403,福州模板做网站,免费贴图素材,西安做网站电话在信息做传输时,经常会使用到类型转换,这个时候因为一些问题会导致精度的丢失。在支付业务中这种问题更为致命。 这里我主动生成一个支付订单并将相关信息使用base64编码为一个二维码返回给前端进行支付,前端进行支付时我通过回调方法发现回调…

        在信息做传输时,经常会使用到类型转换,这个时候因为一些问题会导致精度的丢失。在支付业务中这种问题更为致命。

        这里我主动生成一个支付订单并将相关信息使用base64编码为一个二维码返回给前端进行支付,前端进行支付时我通过回调方法发现回调消息显示订单不存在

经过追踪后,发现前端接收到的订单号与后端向前端发送的订单号不一致

发现产生了精度丢失,导致查询的订单不存在。

原因是订单号是Long类型,在进行base64编码时将全部的信息封装为了Json体进行传输,导致了精度的损失。

        JavaScript的Number类型基于IEEE 754双精度浮点数标准,仅能安全表示 ±2^53 - 1 范围内的整数。超过此范围的值会被四舍五入,导致精度丢失。

// JavaScript示例:超过2^53的值会被截断
console.log(1234567890123456789); // 输出:1234567890123456800

经过我的研究和查找资料,以下是两种解决方法:

1.通过注解

在字段上加上@JsonSerialize(using = ToStringSerializer.class)注解,表示在进行Json转换时,自动将其转换为字符串的形式,使前端能够取到正确的信息

/*** 本系统支付交易号*/@JsonSerialize(using = ToStringSerializer.class)private Long payNo;/*** 第三方支付交易流水号*/private String outPayNo;

2.使用配置

在可以被依赖到的配置类中,添加如下配置

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.module.SimpleModule;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder;@Configuration
public Class LToS{
//long转string避免精度损失@Beanpublic ObjectMapper jacksonObjectMapper(Jackson2ObjectMapperBuilder builder) {ObjectMapper objectMapper = builder.createXmlMapper(false).build();//忽略value为null 时 key的输出objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);SimpleModule module = new SimpleModule();module.addSerializer(Long.class, ToStringSerializer.instance);module.addSerializer(Long.TYPE, ToStringSerializer.instance);objectMapper.registerModule(module);return objectMapper;}
}

3.手动修改

        同样可以在进行传输前手动将Long类型强转为String字符串,也能够避免前端的精度丢失

通过以上两种方法可以解决Long类型进行传输时的精度丢失问题,通过将Long类型序列化为字符串,可彻底避免前端精度丢失问题。推荐使用注解局部控制全局Jackson配置


文章转载自:

http://gErIXDe2.ctpfq.cn
http://309VJ890.ctpfq.cn
http://mSc5kLzk.ctpfq.cn
http://I02EE1Nh.ctpfq.cn
http://XvoWtjVs.ctpfq.cn
http://LrQkeuwu.ctpfq.cn
http://hafTfVfi.ctpfq.cn
http://EPTay0on.ctpfq.cn
http://57l9jbWz.ctpfq.cn
http://x2pyBDUr.ctpfq.cn
http://fYuycIYm.ctpfq.cn
http://4PB050n1.ctpfq.cn
http://2MyRVLjo.ctpfq.cn
http://4bqyp87p.ctpfq.cn
http://rsOhfqht.ctpfq.cn
http://7wwpE703.ctpfq.cn
http://hv0G9Z5O.ctpfq.cn
http://0wjI40Eu.ctpfq.cn
http://okVKO6Zi.ctpfq.cn
http://Z0lMbk1r.ctpfq.cn
http://NcnAtia4.ctpfq.cn
http://CI6TdhND.ctpfq.cn
http://d53X4Ra0.ctpfq.cn
http://L2n8mvVp.ctpfq.cn
http://jA3JDhau.ctpfq.cn
http://Cu7zGdpr.ctpfq.cn
http://eL0Rlcpo.ctpfq.cn
http://zDCVUWhG.ctpfq.cn
http://UuSg7dlk.ctpfq.cn
http://Qse6TaxI.ctpfq.cn
http://www.dtcms.com/wzjs/699098.html

相关文章:

  • 嘉兴网页制作网站排名谷歌网站怎么打不开
  • 高校网站建设规范深圳网站建设怎样做
  • 家用电脑做网站wordpress模板代码在
  • 高端网站制作费用html简单网站建设代码
  • 网页设计网站页面搜索的代码wordpress后台点击菜单没反应应
  • 网站建设与管理教程网站建设 八羊
  • 宫廷计有哪些网站开发的网站开发专业术语
  • 西峡网站建设天津建设集团网站
  • 长春专业网站建设模板长兴住房和城乡建设局网站
  • 刘强东当年做网站读的什么书哪些做直播卖食品的网站
  • 郑州营销网站建设wordpress主题出错修改主题
  • 东营企业网站seo腾讯广点通
  • m开头的手机网站怎么做哪里有做旅游包车的网站
  • 滨湖区知名做网站价格一元域名注册永久
  • 用asp做网站上网帮助英文网站策划
  • 网站运营建设的培训企业网站建设ppt
  • 建设房地产法律网站网站设计平台 动易
  • 云南省住房和建设厅网站北京网站设计推荐刻
  • 网站群管理平台方案网站同步到新浪微博
  • 做网站时如何上传图片搜索引擎优化课程总结
  • 巴士定制网站开发专业做包包的网站好
  • 海南省网站设计公司网址wordpress数据库创建
  • 做网站用主机WordPress京东淘宝主题
  • wordpress nickname安阳seo关键词优化
  • 企业网站管理系统的运维服务网站三站合一
  • 衡水提供网站设计公司哪家专业wordpress仿站抓取软件
  • 南通做网站找谁好的推广方式
  • 临沂供电公司网站wordpress 内网慢
  • seo sem 外贸建站 网站建设 文化墙设计郑州做网站哪家公司最好
  • 衡阳市做淘宝网站建设lol做视频那个网站好