|
@@ -9,6 +9,7 @@ import (
|
|
"Cold_Api/models/Company"
|
|
"Cold_Api/models/Company"
|
|
"Cold_Api/models/System"
|
|
"Cold_Api/models/System"
|
|
"Cold_Api/models/Warning"
|
|
"Cold_Api/models/Warning"
|
|
|
|
+ "encoding/json"
|
|
"fmt"
|
|
"fmt"
|
|
"github.com/beego/beego/v2/adapter/orm"
|
|
"github.com/beego/beego/v2/adapter/orm"
|
|
beego "github.com/beego/beego/v2/server/web"
|
|
beego "github.com/beego/beego/v2/server/web"
|
|
@@ -1600,3 +1601,135 @@ func (c *UserController) CompanyBill_Excel() {
|
|
return
|
|
return
|
|
|
|
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+// 获取微信支付二维码
|
|
|
|
+func (c *UserController) WxPay_QRCode() {
|
|
|
|
+ if c.Admin_r.T_pid == 0 {
|
|
|
|
+ c.Data["json"] = lib.JSONS{Code: 202, Msg: "非公司用户不能充值"}
|
|
|
|
+ c.ServeJSON()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ Total, _ := c.GetFloat("Total")
|
|
|
|
+ Title := "冷链3.0-" + c.Admin_r.T_user
|
|
|
|
+ res, err := lib.PayTransactionNative(Title, Total)
|
|
|
|
+ if err != nil {
|
|
|
|
+ c.Data["json"] = lib.JSONS{Code: 202, Msg: err.Error()}
|
|
|
|
+ c.ServeJSON()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if res.Code != 200 {
|
|
|
|
+ c.Data["json"] = lib.JSONS{Code: 202, Msg: res.Message}
|
|
|
|
+ c.ServeJSON()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ var_ := Company.CompanyPayOrder{
|
|
|
|
+ T_pid: c.Admin_r.T_pid,
|
|
|
|
+ T_type: "微信",
|
|
|
|
+ T_title: Title,
|
|
|
|
+ T_total: Total,
|
|
|
|
+ T_order_no: res.OrderNo,
|
|
|
|
+ T_remark: c.Admin_r.T_uuid,
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ _, err = Company.Add_CompanyPayOrder(var_)
|
|
|
|
+ if err != nil {
|
|
|
|
+ c.Data["json"] = lib.JSONS{Code: 202, Msg: "添加订单失败!"}
|
|
|
|
+ c.ServeJSON()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: res}
|
|
|
|
+ c.ServeJSON()
|
|
|
|
+ return
|
|
|
|
+
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+// 微信支付回调
|
|
|
|
+func (c *UserController) WxPay_Notify() {
|
|
|
|
+
|
|
|
|
+ type RequestBody struct {
|
|
|
|
+ TradeNo string
|
|
|
|
+ Status string
|
|
|
|
+ }
|
|
|
|
+ type JSON struct {
|
|
|
|
+ Code int
|
|
|
|
+ Message string
|
|
|
|
+ }
|
|
|
|
+ buf := make([]byte, 1024)
|
|
|
|
+ n, _ := c.Ctx.Request.Body.Read(buf)
|
|
|
|
+ logs.Info("Body================ ", string(buf[0:n]))
|
|
|
|
+
|
|
|
|
+ //解密
|
|
|
|
+ adc_str, _ := lib.AesDeCrypt(buf[0:n], []byte(conf.Weixin_PwdKey))
|
|
|
|
+ //adc_str, _ := lib.AesDeCrypt(buf[0:n], []byte(conf.Weixin_PwdKey))
|
|
|
|
+
|
|
|
|
+ var body RequestBody
|
|
|
|
+ logs.Info("data================ ", string(adc_str))
|
|
|
|
+ err := json.Unmarshal(adc_str, &body)
|
|
|
|
+ if err != nil {
|
|
|
|
+ c.Data["json"] = JSON{Code: 202, Message: "json.Unmarshal is err:" + err.Error()}
|
|
|
|
+ c.ServeJSON()
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ payOrder, err := Company.Get_CompanyPayOrder_ByT_order_no(body.TradeNo)
|
|
|
|
+ if err != nil {
|
|
|
|
+ c.Data["json"] = JSON{Code: 202, Message: "查询失败!"}
|
|
|
|
+ c.ServeJSON()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ //交易状态
|
|
|
|
+ //SUCCESS:支付成功
|
|
|
|
+ //REFUND:转入退款
|
|
|
|
+ //NOTPAY:未支付
|
|
|
|
+ //CLOSED:已关闭
|
|
|
|
+ //REVOKED:已撤销(付款码支付)
|
|
|
|
+ //USERPAYING:用户支付中(付款码支付)
|
|
|
|
+ //PAYERROR:支付失败(其他原因,如银行返回失败)
|
|
|
|
+ payOrder.T_status = body.Status
|
|
|
|
+ err = Company.Update_CompanyPayOrder(payOrder, "T_status")
|
|
|
|
+ if err != nil {
|
|
|
|
+ c.Data["json"] = JSON{Code: 202, Message: "更新状态失败!"}
|
|
|
|
+ c.ServeJSON()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ // 添加充值记录
|
|
|
|
+ // 余额加上充值金额
|
|
|
|
+ if body.Status == "SUCCESS" {
|
|
|
|
+ Company_r, err := Account.Read_Company_ById(payOrder.T_pid)
|
|
|
|
+ if err != nil {
|
|
|
|
+ c.Data["json"] = lib.JSONS{Code: 202, Msg: "Id Err!"}
|
|
|
|
+ c.ServeJSON()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ T_money64, _ := decimal.NewFromFloat(float64(Company_r.T_money) + payOrder.T_total).Round(2).Float64()
|
|
|
|
+ Company_r.T_money = float32(T_money64)
|
|
|
|
+
|
|
|
|
+ is := Account.Update_Company(Company_r, "T_money")
|
|
|
|
+ if !is {
|
|
|
|
+ c.Data["json"] = lib.JSONS{Code: 202, Msg: "充值失败!"}
|
|
|
|
+ c.ServeJSON()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ c.Data["json"] = JSON{Code: 200, Message: "成功"}
|
|
|
|
+ c.ServeJSON()
|
|
|
|
+ return
|
|
|
|
+
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+// 获取微信支付订单状态
|
|
|
|
+func (c *UserController) WxPay_GetOrderState() {
|
|
|
|
+ OrderNo := c.GetString("OrderNo")
|
|
|
|
+ payOrder, err := Company.Get_CompanyPayOrder_ByT_order_no(OrderNo)
|
|
|
|
+ if err != nil {
|
|
|
|
+ c.Data["json"] = lib.JSONS{Code: 202, Msg: "查询失败!"}
|
|
|
|
+ c.ServeJSON()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ c.Data["json"] = lib.JSONS{Code: 200, Msg: "成功", Data: payOrder}
|
|
|
|
+ c.ServeJSON()
|
|
|
|
+ return
|
|
|
|
+}
|