cld.go 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. /*
  2. * @description:计量支付接口相关操作
  3. * @Author: CP
  4. * @Date: 2020-09-03 16:57:56
  5. * @FilePath: \construction_management\lib\cld.go
  6. */
  7. package lib
  8. import (
  9. "encoding/json"
  10. "errors"
  11. "io/ioutil"
  12. "net/http"
  13. "net/url"
  14. "strings"
  15. "go.mod/web/viewmodels"
  16. )
  17. type Cld struct {
  18. AuthUrl string
  19. Token string
  20. }
  21. type Result struct {
  22. // viewmodels.StaffCld []string
  23. Code int `form:"code" json:"code" `
  24. Data viewmodels.ResultCld `form:"data" json:"data" `
  25. Msg string `form:"msg" json:"msg" `
  26. }
  27. //创建项目用户service
  28. func NewCld() *Cld {
  29. return &Cld{
  30. AuthUrl: "http://cld.smartcost.com.cn/cm/auth",
  31. // AuthUrl: "http://cld.com/cm/auth",
  32. Token: "sc@ConS!tru@ct*88",
  33. }
  34. }
  35. // 验证CLD账号的登陆密码
  36. func (c *Cld) LoginValid(loginData viewmodels.StaffCld) (*Result, error) {
  37. // TODO 生成令牌和提交时间
  38. //const [encryptToken, postTime] = this.generateCLDToken();
  39. client := &http.Client{}
  40. // 构成数据
  41. data := url.Values{}
  42. data.Set("staffName", loginData.StaffName)
  43. data.Set("password", loginData.Password)
  44. parameter := strings.NewReader(data.Encode())
  45. reqest, err := http.NewRequest("POST", c.AuthUrl, parameter)
  46. if err != nil {
  47. return nil, errors.New("CLD网络出现问题")
  48. }
  49. reqest.Header.Add("Content-Type", "application/x-www-form-urlencoded")
  50. // 发送请求
  51. response, err := client.Do(reqest)
  52. if err != nil {
  53. return nil, errors.New("CLD网络出现问题")
  54. }
  55. if response.StatusCode != 200 {
  56. return nil, errors.New("请求CLD发送错误")
  57. }
  58. body, _ := ioutil.ReadAll(response.Body)
  59. // fmt.Println(string(body))
  60. result := Result{}
  61. err = json.Unmarshal(body, &result)
  62. if err != nil {
  63. return nil, errors.New("解析数据错误")
  64. }
  65. return &result, nil
  66. // fmt.Println("response Body:", string(body))
  67. // TODO 有接口在调试
  68. /*
  69. req := HttpRequest.NewRequest()
  70. res, _ := req.Post(j.AuthUrl, map[string]interface{}{
  71. "code": loginData.Code,
  72. "account": loginData.Account,
  73. "password": loginData.Password,
  74. "posttime": "",
  75. "token": "",
  76. })
  77. _, err := res.Body()
  78. if err != nil {
  79. return errors.New("账号或密码不正确")
  80. }
  81. */
  82. //return string(body)
  83. }