common.go 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. package service
  2. import (
  3. "ElectronicInvoice/internal/consts"
  4. "context"
  5. "fmt"
  6. "github.com/gogf/gf/v2/frame/g"
  7. "github.com/gogf/gf/v2/net/gclient"
  8. "github.com/gogf/gf/v2/util/gconv"
  9. "strings"
  10. )
  11. func getDefaultFormHeader() map[string]string {
  12. return g.MapStrStr{"Content-Type": "application/x-www-form-urlencoded"}
  13. }
  14. func getFormHeaderWithToken() map[string]string {
  15. return g.MapStrStr{
  16. "Content-Type": "application/x-www-form-urlencoded",
  17. "API-AuthToken": JyElectronicTripartite.token,
  18. }
  19. }
  20. func getJsonHeaderWithToken() map[string]string {
  21. return g.MapStrStr{
  22. "Content-Type": "application/json",
  23. "API-AuthToken": JyElectronicTripartite.token,
  24. }
  25. }
  26. func CommonDoPost(url string, header map[string]string, param map[string]interface{}, success func(interface{}) error) (err error) {
  27. var (
  28. res *gclient.Response
  29. ctx = context.Background()
  30. )
  31. type CommonRes struct {
  32. Code int `json:"code"`
  33. Msg string `json:"msg"`
  34. Data interface{} `json:"data"`
  35. }
  36. res, err = g.Client().Header(header).
  37. Post(ctx, fmt.Sprintf("%s%s", consts.ServiceAddress, url), param)
  38. if err != nil {
  39. return
  40. }
  41. defer res.Close()
  42. respByte := res.ReadAll()
  43. //打印请求三方开票系统日志
  44. if g.Cfg().MustGet(ctx, "reqDebug", false).Bool() {
  45. g.Log().Infof(ctx, "%s\nrequest: %s\nheader: %+v\nparam: %+v\nresp: %s", strings.Repeat("=", 50), url, header, param, string(respByte))
  46. }
  47. var commonRes CommonRes
  48. if err := gconv.Struct(respByte, &commonRes); err != nil {
  49. return err
  50. }
  51. if commonRes.Code == 200 {
  52. if success != nil {
  53. return success(commonRes.Data)
  54. }
  55. return nil
  56. }
  57. return fmt.Errorf("CommonDoPost:%s \nErrorCode:%d Msg:%s", url, commonRes.Code, commonRes.Msg)
  58. }