订单rpc
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

54 lines
1.0 KiB

  1. package order
  2. const DES_KEY = "ordernew"
  3. func rpc_server_conn(url ...string) (*OrderServiceClient, error) {
  4. var order_rpc_url string = "127.0.0.1:7973"
  5. if len(url) > 0 && url[0] != "" {
  6. order_rpc_url = url[0]
  7. }
  8. conn, _, err := DialOrderService("tcp", order_rpc_url)
  9. if err != nil {
  10. return nil, err
  11. }
  12. return conn, nil
  13. }
  14. /**
  15. * 处理返回结果
  16. */
  17. func HandleResponse(res *CreateResponse) (string, error) {
  18. res_data := res.GetData()
  19. if res_data == "" {
  20. return nil, errors.New("未收到收据")
  21. }
  22. time_int64, err := strconv.ParseInt(res.GetTime(), 10, 64)
  23. if err != nil {
  24. return nil, err
  25. }
  26. now_int64 := time.Now().Unix()
  27. if now_int64-time_int64 > 10 || time_int64-now_int64 > 10 {
  28. //时间误差前后10秒,返回
  29. return nil, errors.New("返回时间错误")
  30. }
  31. check_sign := CheckSign(res.GetSign(), res_data, res.GetTime())
  32. if !check_sign {
  33. return nil, errors.New("返回数据签名错误")
  34. }
  35. //解密
  36. res_data_de := crypter.DesDe(res_data, "ordernew")
  37. return res_data_de
  38. }