icbc.go 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. package bankapi
  2. import (
  3. "dashoo.cn/backend/api/business/paymentinfo"
  4. "dashoo.cn/backend/api/models"
  5. "encoding/json"
  6. "fmt"
  7. "io/ioutil"
  8. "strconv"
  9. "time"
  10. "dashoo.cn/backend/api/business/bankapi"
  11. // "fmt"
  12. . "dashoo.cn/backend/api/controllers"
  13. "dashoo.cn/utils"
  14. )
  15. // 提供给银行接口的用户名 和 密码:icbc2019, Icbc@2019##
  16. // Operations about Users
  17. type ICBCController struct {
  18. BaseController
  19. }
  20. // @Title 获取银行支付所需账单信息
  21. // @Description post bills by token
  22. // @Success 200 {object} BILLs
  23. // @router /bill-list [post]
  24. func (this *ICBCController) GetBillList() {
  25. var icbcBillQueryParam bankapi.ICBCBillQueryParam
  26. json.Unmarshal(this.Ctx.Input.RequestBody, &icbcBillQueryParam)
  27. svc := bankapi.GetICBCService(utils.DBE)
  28. var datainfo DataInfo
  29. ret := svc.GetBillList(icbcBillQueryParam.CommercialNo)
  30. json.Unmarshal(ret, &datainfo)
  31. this.Data["json"] = &datainfo
  32. this.ServeJSON()
  33. }
  34. // @Title 支付成功回调
  35. // @Description post bills by token
  36. // @Success 200 {object} BILLs
  37. // @router /update-bill-list [post]
  38. func (this *ICBCController) UpdateBillList() {
  39. var billParamsICBC bankapi.BillReceiveMoneyParamsICBC
  40. var billParams bankapi.BillReceiveMoneyParams
  41. fmt.Println("RequestBody:= " + string(this.Ctx.Input.RequestBody))
  42. json.Unmarshal(this.Ctx.Input.RequestBody, &billParamsICBC)
  43. billParams.BankName = billParamsICBC.BankName
  44. billParams.BankSerialNum = billParamsICBC.BankSerialNum
  45. billParams.Ids = billParamsICBC.Ids
  46. billParams.PayMode = billParamsICBC.PayMode
  47. billParams.ReceiveAmount,_ = strconv.ParseFloat(billParamsICBC.ReceiveAmount, 64)
  48. billParams.PayDate, _= time.Parse("2006-01-02", billParamsICBC.PayDate)
  49. svc := bankapi.GetICBCService(utils.DBE)
  50. var errinfo ErrorInfo
  51. ret := svc.ReceiveMoneyBillList(billParams)
  52. json.Unmarshal(ret, &errinfo)
  53. this.Data["json"] = &errinfo
  54. this.ServeJSON()
  55. }
  56. // @Title 对账后有未更改状态的,对账异常后再次回调
  57. // @Description post bills by token
  58. // @Success 200 {object} BILLs
  59. // @router /update-bill-again [post]
  60. func (this *ICBCController) UpdateBillListAgain() {
  61. var billParams bankapi.BillReceiveMoneyAgainParams
  62. json.Unmarshal(this.Ctx.Input.RequestBody, &billParams)
  63. svc := bankapi.GetICBCService(utils.DBE)
  64. var errinfo ErrorInfo
  65. ret := svc.ReceiveMoneyAgain(billParams)
  66. json.Unmarshal(ret, &errinfo)
  67. this.Data["json"] = &errinfo
  68. this.ServeJSON()
  69. }
  70. // @Title 对账
  71. // @Description 对账
  72. // @Success 200 {object} controllers.Request
  73. // @router /check-money-list [post]
  74. func (this *ICBCController) CheckMoneyList() {
  75. svc := bankapi.GetICBCService(utils.DBE)
  76. var checkMoneyParams bankapi.BillCheckMoneyParams
  77. var checkMoneyParamsICBC bankapi.BillCheckMoneyParamsICBC
  78. var jsonBlob = this.Ctx.Input.RequestBody
  79. json.Unmarshal(jsonBlob, &checkMoneyParamsICBC)
  80. checkMoneyParams.EndTime, _ = time.Parse("2006-01-02", checkMoneyParamsICBC.EndTime)
  81. checkMoneyParams.StartTime, _ = time.Parse("2006-01-02", checkMoneyParamsICBC.StartTime)
  82. var datainfo DataInfo
  83. ret := svc.CheckMoneyBillList(checkMoneyParams)
  84. json.Unmarshal(ret, &datainfo)
  85. this.Data["json"] = &datainfo
  86. this.ServeJSON()
  87. }
  88. // @Title 获取token
  89. // @Description 获取token
  90. // @Success 200 {object} string
  91. // @router /get-icbc-gfgl2019-token [post]
  92. func (this *ICBCController) GetAuthToken() {
  93. var userToken models.UserToken
  94. var user4CreateToken models.User4CreateToken
  95. var jsonBlob = this.Ctx.Input.RequestBody
  96. json.Unmarshal(jsonBlob, &user4CreateToken)
  97. //先登录
  98. tokenParams, _ := json.Marshal(user4CreateToken)
  99. strTokenParams := string(tokenParams)
  100. svc := bankapi.GetICBCService(utils.DBE)
  101. retToken := svc.Post("/auth", strTokenParams, "")
  102. p, _ := ioutil.ReadAll(retToken.Body)
  103. json.Unmarshal(p, &userToken)
  104. if userToken.Token == "" {
  105. this.Data["json"] = ""
  106. this.ServeJSON()
  107. } else {
  108. userToken, _ := models.CreateToken(user4CreateToken.Username)
  109. this.Data["json"] = userToken
  110. this.ServeJSON()
  111. }
  112. }
  113. // @Title 对账
  114. // @Description 对账
  115. // @Success 200 {object} controllers.Request
  116. // @router /check-bill-list [post]
  117. func (this *ICBCController) CheckBillList() {
  118. var VerifyBillItem []bankapi.OilVerifyBillICBC
  119. fmt.Println("RequestBody:= " + string(this.Ctx.Input.RequestBody))
  120. json.Unmarshal(this.Ctx.Input.RequestBody, &VerifyBillItem)
  121. var Oilverifybill = make([]paymentinfo.OilVerifyBill, len(VerifyBillItem))
  122. for idx,item := range VerifyBillItem {
  123. Oilverifybill[idx].BillIds = item.BillIds
  124. Oilverifybill[idx].BankSerialNum = item.BankSerialNum
  125. Oilverifybill[idx].ReceiveAmount,_ = strconv.ParseFloat(item.ReceiveAmount, 64)
  126. loc,_ := time.LoadLocation("Local")
  127. Oilverifybill[idx].PayDate,_ = time.ParseInLocation("2006-01-02 15:04:05", item.PayDate, loc)
  128. Oilverifybill[idx].VerifyDate,_ = time.ParseInLocation("2006-01-02 15:04:05", item.VerifyDate, loc)
  129. }
  130. svc := bankapi.GetICBCService(utils.DBE)
  131. var errinfo ErrorInfo
  132. ret := svc.ReceiveVerifyBillList(Oilverifybill)
  133. json.Unmarshal(ret, &errinfo)
  134. this.Data["json"] = &errinfo
  135. this.ServeJSON()
  136. }