经过7天的时间,一个用go语言开发的简单http服务接口程序,终于搞定了。本文章记录中间过程,即作为笔记,将知识点记录下来,也希望能为同样状况的CS程序开发人员提供一点经验吧。

先说功能需求,我们的ERP程序时PB开发的,客户使用第三方的微信小程序,需要与ERP对接会员信息,与他们对接肯定是走http方式的,而且ERP是主数据源,要做HTTP的服务端,实现的接口只有两个。如果开放数据库用存储过程作为接口,一个小时也许就搞定。不过数据库开放太不安全,也想通过这个实际项目来练习联系。

对方提供的技术标准文档:

  1. 接口规范
  1. 通信方式
  1. 接口通讯协议统一使用HTTP协议
  2. 字符集使用UTF-8
  3. 接口方法统一使用POST
  4. 返回格式JSON
  5. CRM方接口请求地址:http://xxx.xxx.xxx/xxx(由CRM方定义后提供给华阳)

 

 

  1. 接口参数和格式
  2. 响应格式

序号

参数

参考值

备注

1

appKey

1234567890

应用key(由华阳分配)

2

jsonData

{}

发送的具体的数据,json格式字符串

3

method

queryMember

接口方法

4

timestamp

2012-01-20 08:50:15

发起请求的时间戳

5

sign

7E65B60DCFA42B043FCF57169867082C

签名,签名算法为参数1~4按字母排序升序顺序将参数和值连起来,然后再加上商家密钥,再MD5

格式示例:

http://xxx.xxx.com?method=queryMember&appKey=appkey&jsonData={}×tamp=2012-01-20 08:50:15&sign=7E65B60DCFA42B043FCF57169867082C

 

序号

标签

格式

说明

1

state

1表示成功,0其它失败

返回的状态

2

msg

成功

响应信息描述

3

code

null

预留备用

4

jsonData

{}

返回的json格式数据字符串

格式示例:

{“state”:1, “msg”:”成功”,”jsonData”:”{}”,code:null}

 

 

 

 

  1. 时间戳验证

时间戳取系统当前时间,超过2分钟的消息为无效请求。

  1. 签名验证

接收请求方进行签名认证,算法为请求参数按字母排序升序将参数和值连起来,然后再加上密钥,最后再MD5加密。

例如:

method=queryMember,

appkey=1234567890,

timestamp=2012-01-20 08:50:15,

jsonData={},

即签名算法:

md5(appkey1234567890jsonData{}methodqueryMembertimestamp2012-01-20 08:50:15)。

 

再说一下选择GO的原因,最看重部署方便,给客户发送一个压缩包,解压,启动exe就完事。不像.NET需要安装IIS,配置各种各样的属性,而Java是一点不懂。再一点,GO是新语言,掌握它,增加一项技能,对以后工作也有好处。

4月3号,开始动手做这个项目。去年学过一段时间的GO,几个月不接触,已经忘记的差不多了,很生疏了。之前看书多,动手操作少,印象不深。这也是这次写文章的原因,通过项目,将学习的东西记录下来,以防遗忘。3号一天的时间,基本是通过学习视频来重温beego。有两个视频:

1、https://tv.sohu.com/v/cGwvOTUwNzY3NC8xMDU2OTE0NDguc2h0bWw=.html,2、https://ke.qq.com/course/340643,第二个视频更专业些。第一个看完2节,第二个看完6节,掌握个大概,就上路开发了。

电脑的GO环境还在,IDE用的liteide,框架选择的beego,书籍看的《GO Web编程》电子版。GO环境的安装、配置,GO语言开发工具的下载安装,大家百度吧,具体的过程记不清了。

4月11日后记,为了使用andlabs/ui GUI库,升级了go版本,liteide不能编译了,重新配置的系统变量,下载了MinGW-W64 GCC,相当于重新配置了go的环境;GCC也可能是GUI库要求的。

liteide也需要升级新版本,否则没有代码提示。

go语言安装包,现在可以直接在中文官网下载,地址:https://golang.google.cn/

MinGW-W64 GCC编译器,下载的x86_64-posix-seh版本,地址:https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/mingw-builds/8.1.0/threads-posix/

liteide,下载的liteidex36.windows-qt5.9.5.zip 版本,下载地址:https://sourceforge.net/projects/liteide/files/