今天测试移动给的SIM卡接口,昨天就发现给的接口url有问题,说是用WebService,但我愣是没有看到asmx的url接口路径啊(我是用.net开发的),结果自己测试了一下,果然有问题,就开始联系移动的对接人,嗯,好吧,果然是接口文档没有给全。随后给了接口文档,但是!!!没有demo,好不容易有个代码了是为了演示数字签名如何生成的,算法是HmacSHA256,还特么是java写的的,而且还是直接调用包来处理的!!!特么坑死了,一开始自己上网找了C#的HmacSHA256实现,FCL里面有这个类库,但是没有一开始自己没有好好看生成数字签名的过程,导致随后的装逼失败。就找对接人要了一份C#的代码,更坑!!!他给我的C#代码是好几个类组合的,直接一股脑给我了,而且里面的函数都重定义了,一堆错,还好我C#基础可以,自己挨个分析,找错。最后解决了。不过因为两个小问题,卡了半天,其一就是json,我给移动的接口url post的参数是json格式的,我一开始觉得参数少,就没有在意,直接就是手动写了json,谁知道就出错在这里!拼接的json串中间有空格!导致,移动给我的response一直都是: 数字签名有问题,给我气的,我嫌用第三方json麻烦,还要自己弄个类,之后经理跟我说,匿名类啊,哎呀,对啊。忘了它,最后使用匿名类,传入第三方json解决问题。其二就是浏览器了,我一开始直接把移动给的url用浏览器方法,谁知道弹出下载框,注意我用的是QQ浏览器,同事也试了,他可以接到返回值,他用的是谷歌,后来我换了浏览器就可以啦,因此,在这里建议,开发的话,还是多用几个浏览器,最好谷歌。
剩下的就是数字签名了,但也没有什么,最终重要的就是: 密钥appKey每两位长度转为10进制,然后再转为字节数组,整个数组为加密密钥

其实,我看数字签名的生成过程是崩溃的,还好这步,对接人给我的C#代码里面有,我就直接用了。给个代码吧:

class DESEncrypt{public static int decode(String paramString, MemoryStream paramOutputStream){byte[] encodingTable = { 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 97, 98, 99, 100, 101, 102 };//byte[] decodingTable = new byte['?'];byte[] decodingTable = new byte[256];for (int i = 0; i < encodingTable.Length; i++){decodingTable[encodingTable[i]] = (byte)i;}decodingTable[65] = decodingTable[97];decodingTable[66] = decodingTable[98];decodingTable[67] = decodingTable[99];decodingTable[68] = decodingTable[100];decodingTable[69] = decodingTable[101];decodingTable[70] = decodingTable[102];int k = 0;int m = 0;for (m = paramString.Length; (m > 0) && (ignore(char.Parse(paramString.Substring(m - 1, 1)))); m--) ;int n = 0;while (n < m){while ((n < m) && (ignore(char.Parse(paramString.Substring(n, 1)))))n++;int i = decodingTable[char.Parse(paramString.Substring(n++, 1))];while ((n < m) && (ignore(char.Parse(paramString.Substring(n, 1)))))n++;int j = decodingTable[char.Parse(paramString.Substring(n++, 1))];paramOutputStream.WriteByte((byte)(i << 4 | j));k++;}return k;}public static bool ignore(char paramChar){return (paramChar == '\n') || (paramChar == '\r') || (paramChar == '\t') || (paramChar == ' ');}}

转载于:https://www.cnblogs.com/zhiyong-ITNote/p/8127447.html

项目开发中,我们总能遇到的那么些坑,不仅是代码上的,还有第三方接口的...相关推荐

  1. 面试中常问的你在项目开发中遇到过哪些问题怎么回答?

    一.你在项目开发中遇到过哪些问题? 此问题的回答一般从三个方向入手,一是技术问题,二是解决方案问题,三是甲方或团队配合问题,针对这三个方面的问题回答示例. 一.技术方面: 开发项目过程中遇到问题是难免 ...

  2. React项目开发中的数据管理

    原文链接:https://blog.csdn.net/hl582567508/article/details/76982756 redux中文文档:http://cn.redux.js.org/ Re ...

  3. 项目开发中常用JS表单取值方法

    项目开发中常用JS表单取值方法 一.常用表单基本取值方法(form1为表单名称,TextBox1为控件ID,以文本框为例,html控件与web服务器控件是一样的)         1.form1.Te ...

  4. aspnet是前端还是后端_项目开发中无法回避的问题:前端和后端如何合作和并行工作?...

    项目开发中无法回避的问题:前端和后端如何合作和并行工作? 前端,后端要想非常愉快的合作开发和集成,那最开始第1步就是要定义一套共用的数据模型接口.这一步是所有工作可以顺利进行的前提. 数据模型接口之后 ...

  5. ssh项目同时使用mysql跟sqlserver数据库_MSSQL_如何把sqlserver数据迁移到mysql数据库及需要注意事项,在项目开发中,有时由于项目 - phpStudy...

    如何把sqlserver数据迁移到mysql数据库及需要注意事项 在项目开发中,有时由于项目开始时候使用的数据库是SQL Server,后来把存储的数据库调整为MySQL,所以需要把SQL Serve ...

  6. IntelliJ IDEA 项目开发中各个目录的关系

    项目根目录(Project Root):本地硬盘中存放项目内容的根目录 项目名称(Project Name):IDEA 保存的项目名称,默认和项目根目录的名称相同,可以修改.有啥作用?通过 IDEA ...

  7. 项目开发中发布更新文档备注

    项目开发中 经常会遇到 某一个团队成员更新了,配置文件但是没有及时沟通导致项目发布后出现异常的情况. 这时就需要一个项目更新发布的规范说明文件,比如每次更新更改了哪些,进行文档备注. 更新的脚本文件也 ...

  8. Vue项目开发中的点滴积累系列文章

    题记 -- 严于律己,精于行动,点滴积累,着眼未来,你也许不负青春 Vue.js(读音 /vjuː/, 类似于 view) 是一套构建用户界面的渐进式框架 本文章 记录从基础入门到实际项目开发中的点点 ...

  9. 项目开发中对使用的第三方库统一进行管理__添加属性表/页

    最近接手的一个项目开发中用到了很多第三方库,比如boost.gdal.xerces等等这些.从接手项目到现在从中学习到了很多之前从未见识过的东西.项目绝大部分都是前辈们写的,对于里面的对第三方库的管理 ...

  10. 17.项目开发中遇到的问题(this.$parent.$parent子组件调父组件的父组件的方法不可用问题)

    前言: 在今天的项目开发中,遇到了一个问题,就是通过this.$parent.$parent.getHostInf()无法去调用其父组件的父组件的方法(因为此时获取的不是其父组件,而是包含父组件的一个 ...

最新文章

  1. 复杂JSON参数传递后台处理方式
  2. Vim 快捷键整理【转】
  3. 超详细的java生成excel文件并下载
  4. 洛谷P4199 万径人踪灭(manacher+FFT)
  5. Spring Batch 专题
  6. 2.Excel公式函数
  7. 织梦在线报名平台php,DedeCMSv5
  8. 将a数组部分给b数组c语言,C语言第6章1 数组.ppt
  9. artTemplate模板引擎的源码拜读
  10. “看看人家苹果和亚马逊”,嫌薪酬太低,谷歌员工“炮轰”高管
  11. 爆赞!excel导入mysql并生成数据表
  12. 全栈语音交互方案免费开放,这次扔开源炸弹的是Rokid
  13. VXLAN详解(三)
  14. 动态修改App.Config 和web.Config
  15. 计算机笔记--【Redis高级】
  16. DB2数据库如何修改字段名称
  17. 关于轩辕剑3外传 swd3eDvd.exe报错问题
  18. Error relaunching VirtualBox VM process:5错误解决
  19. 小规则让你写出漂亮又高效的程序
  20. 创建工作站vmware workstation时,提示before you can run vmware several modules must be compiled

热门文章

  1. 无符号256位整数运算
  2. 数组中查找某个元素是否存在
  3. 善待离职员工,让他们成为企业的财富
  4. 新年到了,该规划一下来年了
  5. 辨别 Windows CE, Windows XP Embedded 和 Windows Mobile
  6. 在kubernetes集群中部署mysql主从
  7. css中底部sticky footer
  8. C# 托管资源和非托管资源
  9. [华为机试真题][2014]62.去除重复字符并排序
  10. 使用fswatch工具进行golang的热编译