invoice.go 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. package service
  2. import (
  3. "context"
  4. "github.com/gogf/gf/v2/errors/gerror"
  5. "github.com/gogf/gf/v2/frame/g"
  6. "github.com/gogf/gf/v2/util/gconv"
  7. )
  8. type (
  9. makeInvoiceAllParam struct {
  10. TaxNum string `json:"taxNum"` //企业税号*
  11. Tel string `json:"tel"` //登录电子税局手机号或身份证号*
  12. Data []makeInvoiceData `json:"data"`
  13. }
  14. makeInvoiceData struct {
  15. Type string `json:"type"` //票类* 1 增值税专用发票;2 普通发票
  16. Gmfmc string `json:"gmfmc"` //购买方名称*
  17. Gmfnsrsbh string `json:"gmfnsrsbh"` //购买方纳税人识别号*
  18. Id string `json:"id"` //发票流水号* 合作商开具的发票流水号,涉及到回调通知
  19. Gmfdz string `json:"gmfdz"` //购买方地址
  20. Lxdh string `json:"lxdh"` //购买方联系方式
  21. Yhyywdmc string `json:"yhyywdmc"` //购买方开户行
  22. Yhzh string `json:"yhzh"` //购买方银行账号
  23. InvoiceArr []makeInvoiceItems `json:"invoiceArr"`
  24. }
  25. makeInvoiceItems struct {
  26. Xmmc string `json:"xmmc"` //项目名称*
  27. Je string `json:"je"` //开票金额*
  28. WhStatus int `json:"wh_status"` //该开票项是否已调用接口进行维护: 1 已维护;0 未维护
  29. Xhgg string `json:"xhgg"` //型号规格
  30. Dw string `json:"dw"` //单位
  31. Sl string `json:"sl"` //数量
  32. Tsaxrate string `json:"taxrate"` //税率
  33. }
  34. )
  35. func MakeInvoice() (err error) {
  36. var (
  37. ctx = context.Background()
  38. param = makeInvoiceAllParam{
  39. TaxNum: g.Cfg().MustGet(ctx, "company.taxNum").String(),
  40. Tel: g.Cfg().MustGet(ctx, "company.tel").String(),
  41. Data: []makeInvoiceData{{
  42. Type: "2",
  43. Gmfmc: "北京拓普丰联信息科技股份有限公司",
  44. Gmfnsrsbh: "91110105756025873C",
  45. Id: "123321",
  46. Gmfdz: "北京市朝阳区安定路5号院13号楼B座12层1201室",
  47. Lxdh: "010-58772571",
  48. Yhyywdmc: "郑州交通银行总行",
  49. Yhzh: "6320123123000121",
  50. InvoiceArr: []makeInvoiceItems{{
  51. Xmmc: "0fccdac71c36a8552ba662e7a2f42726",
  52. WhStatus: 1,
  53. Je: "2",
  54. //Xhgg: "",
  55. //Dw: "",
  56. //Sl: "1",
  57. //Tsaxrate: "6",
  58. }},
  59. }},
  60. }
  61. )
  62. err = CommonDoPost("/index_index/makeInvoiceC",
  63. getJsonHeaderWithToken(),
  64. gconv.Map(gconv.String(param)),
  65. nil)
  66. if err != nil {
  67. err = gerror.Wrap(err, "开票接口异常")
  68. return
  69. }
  70. return nil
  71. }