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

龙华网站建设方案表网上开店平台有哪些

龙华网站建设方案表,网上开店平台有哪些,网页设计与制作微课教程第4版李敏,北京市家装公司排行榜文章目录 1 问题背景2 思路3 代码实现 1 问题背景 在发起支付的时候#xff0c;一般都需要对发送的请求参数进行加密或者签名#xff0c;下文简称这个过程为“签名”。行业内比较普遍的签发算法有#xff1a; #xff08;1#xff09;按支付渠道给定的字段排序进行拼接一般都需要对发送的请求参数进行加密或者签名下文简称这个过程为“签名”。行业内比较普遍的签发算法有 1按支付渠道给定的字段排序进行拼接最后再拼一个密钥形成一个待签名的字符串tobeSign然后对这个tobeSign进行MD5编码。比如MD5(商户号子应用ID商户订单号流水号金额币种密钥) 2针对请求参数中的字段仅针对第一层的字段不需要针对字段里面的字段即不需要递归进行字典升序排序用格式keyvalue和连接符拼接最后再拼一个密钥再用MD5编码比如MD5(avalue1bvalue2key密钥) 这次遇到一种比较有趣的签名算法笔者认为是基于第2的变种渠道方要求针对请求参数中的字段如果该字段是对象类型那么该字段里面的字段也要按字典升序排序进行拼接相当于是递归字典升序困难度有一点提升 2 思路 文字描述得有点抽象可以结合第3小节的代码实现来看 遍历每一层字段都用一个容器存起来要按字典升序存。维护一个层序遍历的容器——双向队列。将前面升序的数据入队。遍历队列的每一元素元素从队头出队再遍历元素中的字段是否是对象类型或者数组类型使用一个容器存起来要按字典降序存存完后使用头插法入队。使用头插法倒叙入队每一次从队头遍历那么每一次遍历都是升序遍历。 3 代码实现 解释代码中的BeansUtil.bean2MapIgnoreEmptyStr()是将对象转成一个Map。SymbolConstant.EQUAL的值是一个SymbolConstant.AND的值是一个 public static String buildToBeSignStr(Object payReq) {// 将对象转成一个MapMapString, String map BeansUtil.bean2MapIgnoreEmptyStr(payReq);TreeMapString, String treeMap new TreeMap(map);ListString result new LinkedList();for (Map.EntryString, String entry : treeMap.entrySet()) {// 层序遍历容器DequeMap.EntryString, String bfsHolder new LinkedList();// 结果暂存容器ListString tmpResult new LinkedList();// 入队bfsHolder.offer(entry);while (CollectionUtils.isNotEmpty(bfsHolder)) {Map.EntryString, String pollEntry bfsHolder.poll();String pKey pollEntry.getKey();String pVal pollEntry.getValue();if (StringUtils.isNotBlank(pVal) JSONValidator.from(pVal).validate()) {// 是json串仍需要继续解析log.info(value of key:{} is json str., pKey);// 解析JSON字符串Object parsedObject JSON.parse(pVal);boolean isJSONObject parsedObject instanceof JSONObject;boolean isJSONArray parsedObject instanceof JSONArray;if (isJSONObject || isJSONArray) {MapString, String map1 null;if (isJSONObject) {log.info(JSON字符串是一个对象);JSONObject jsonObject (JSONObject) parsedObject;// 处理对象map1 BeansUtil.buildMapFromJsonStr(pVal);} else if (isJSONArray) {System.out.println(JSON字符串是一个数组);JSONArray jsonArray (JSONArray) parsedObject;// 处理数组for (Object o : jsonArray) {map1 BeansUtil.bean2MapIgnoreEmptyStr(o);}}if (MapUtils.isNotEmpty(map1)) {// 倒叙排序MapString, String treeMap1 new TreeMap(Comparator.reverseOrder());treeMap1.putAll(map1);// 插入到队头Streams.of(treeMap1.entrySet()).forEach(bfsHolder::offerFirst);}} else {tmpResult.add(pKey SymbolConstant.EQUAL pVal);}} else {tmpResult.add(pKey SymbolConstant.EQUAL pVal);}}if (CollectionUtils.isNotEmpty(tmpResult)) {String tmpResultStr String.join(SymbolConstant.AND, tmpResult);result.add(tmpResultStr);}}if (CollectionUtils.isNotEmpty(result)) {return String.join(SymbolConstant.AND, result);}return ;}
http://www.w-s-a.com/news/602254/

相关文章:

  • 学校英语网站栏目名称WordPress禁用邮件注册
  • 手机qq网页版网站沧州手机网站开发
  • 深圳罗湖网站设计公司建设的网站属于无形资产吗
  • 网站开发python西安网站建站品牌
  • 网站开发商标属于哪一类做网站还有钱赚吗
  • 做设计的搜素材上什么网站好设计公司画册设计哪家好
  • 视频网站开发需要什么语言做ui设计一年后年薪多少
  • 网站服务器维护费用统一企业官方网站
  • 网站如何调用手机淘宝做淘宝客呼和浩特网站运营公司
  • 做推广可以上那些网站网页游戏排行榜2014前十名
  • 国外网站备案流程企业网站 流程
  • 重庆网站建设letide童程童美少儿收费价目表
  • 苏州建站仿站东莞排名推广
  • 大中小网站的区分wordpress个人主页主题
  • 商务网站建设的可行性分析包括小程序源码网免费
  • 永州网站建设收费标准重庆网站建设公司夹夹虫专业
  • python做网站多少钱wordpress 2.8
  • 深圳网站平台网站开发工作程序怎么写
  • 自己可以接单做网站吗wordpress 添加自定义按钮
  • 网站首页权重宣传页制作
  • 智能网站建设软件有哪些方面网页的建设
  • 石铜路网站建设生鲜电商网站开发
  • 怎么提高网站加载速度慢网站的轮播怎么做的
  • 网络网站推广优化建筑工程教育网官方网站
  • 旅行社网站策划做网站编辑好还是美工好
  • 珠海做网站找哪家好在线磁力搜索神器
  • 做网站优化有必要wordpress导航栏字体
  • 中山网站建设半江红沈阳免费网站建站模板
  • 工信部网站备案管理系统网站备案负责人 更换
  • 我要做个网站该怎么做怎么做电商平台网站