Quellcode durchsuchen

build many wx pay function

abiao vor 5 Jahren
Ursprung
Commit
b7adfa833c

+ 4 - 3
go/gopath/src/fohow.com/apps/controllers/pay_controller/pay_balance_controller.go

@@ -2,6 +2,7 @@ package pay_controller
 
 import (
 	"fmt"
+	"fohow.com/apps/models/pay_model"
 
 	"github.com/astaxie/beego"
 
@@ -36,13 +37,13 @@ func (self *PayController) wxPayBalance(orderId string) {
 		self.ReturnError(403, apps.NotUnPay, "", nil)
 	}
 	totalPrice := balanceOrder.PaiedPrice
-
+	//获取paycode
+	payCode := pay_model.GetPayConfigByDepart(wxUser.Depart, true)
 	beego.BeeLogger.Debug("pay.total_price(%d)", totalPrice)
 	//获取预支付信息/v1/pay/:target:string/async/:payway:string
 	notifyUrl := fmt.Sprintf("%s/v1/pay/%s/async/%s", beego.AppConfig.String("ApiHost"), BALANCE_TARGET, balance_model.PAY_WAY_TYPE_SERVICE_WXPAY) // balance "service_wxpay"
 	body := "FOHOW玖玖-购买提货券"
-	//payData := wx_mp.GetPayDataLimitPay(wxUser.Openid, balanceOrder.OrderId, totalPrice, body, notifyUrl, self.Ctx.Input.IP())
-	payData := wx_mp.GetPayDataLimitPay(wxUser.Openid, balanceOrder.OrderId, totalPrice, body, notifyUrl, self.Ctx.Input.IP())
+	payData := wx_mp.GetPayData(wxUser.Openid, balanceOrder.OrderId, totalPrice, body, notifyUrl, self.Ctx.Input.IP(), payCode)
 	//返回数据
 	type PayData struct {
 		PayData map[string]string `json:"pay_data"`

+ 3 - 1
go/gopath/src/fohow.com/apps/controllers/pay_controller/pay_cashcz_controller.go

@@ -4,6 +4,7 @@ import (
 	"fmt"
 	"fohow.com/apps"
 	"fohow.com/apps/models/balance_model"
+	"fohow.com/apps/models/pay_model"
 	"fohow.com/libs/wx_mp"
 	"github.com/astaxie/beego"
 )
@@ -37,7 +38,8 @@ func (self *PayController) wxPayCashcz(orderId string) {
 	//获取预支付信息/v1/pay/:target:string/async/:payway:string
 	notifyUrl := fmt.Sprintf("%s/v1/pay/%s/async/%s", beego.AppConfig.String("ApiHost"), CASH_TARGET, balance_model.PAY_WAY_TYPE_RECHARGE_WXPAY) // rechargeCashOrder "recharge_wxpay"
 	body := "FOHOW玖玖-余额充值"
-	payData := wx_mp.GetPayDataLimitPay(wxUser.Openid, reCashOrder.OrderId, reCashOrder.TotalPrice, body, notifyUrl, self.Ctx.Input.IP())
+	payCode := pay_model.GetPayConfigByDepart(wxUser.Depart, true)
+	payData := wx_mp.GetPayData(wxUser.Openid, reCashOrder.OrderId, reCashOrder.TotalPrice, body, notifyUrl, self.Ctx.Input.IP(), payCode)
 
 	//返回数据
 	type PayData struct {

+ 10 - 5
go/gopath/src/fohow.com/apps/controllers/pay_controller/pay_exchange_controller.go

@@ -177,7 +177,9 @@ func (self *PayController) payExchange(oId, payWay, tradPwd, returnUrl, source s
 				order.TotalPrice += freight
 				notifyUrl := fmt.Sprintf("%s/v1/pay/%s/async/%s", beego.AppConfig.String("ApiHost"), EXCHANGE_TARGET, pay_model.PAYWAY_WEIXINPAY)
 				body := fmt.Sprintf("FOHOW玖玖-购买商品")
-				payData := wx_mp.GetPayData(wxUser.Openid, order.OrderId, order.PaiedPrice, body, notifyUrl, self.Ctx.Input.IP())
+				//获取paycode
+				payCode := pay_model.GetPayConfigByDepart(wxUser.Depart, true)
+				payData := wx_mp.GetPayData(wxUser.Openid, order.OrderId, order.PaiedPrice, body, notifyUrl, self.Ctx.Input.IP(), payCode)
 
 				//返回数据
 				type PayData struct {
@@ -194,8 +196,8 @@ func (self *PayController) payExchange(oId, payWay, tradPwd, returnUrl, source s
 				if wxGzh == nil {
 					self.ReturnError(403, apps.NoExist, "", nil)
 				}
-				//payData := wx_mp.GetPayData(wxGzh.GzhOpenId, order.OrderId , order.TotalPrice, body,notifyUrl, self.Ctx.Input.IP())
-				payData := wx_mp.GetGzhPayData(wxGzh.GzhOpenId, order.OrderId, order.PaiedPrice, body, notifyUrl, self.Ctx.Input.IP())
+				payCode := pay_model.GetPayConfigByDepart(wxUser.Depart, true)
+				payData := wx_mp.GetPayData(wxGzh.GzhOpenId, order.OrderId, order.PaiedPrice, body, notifyUrl, self.Ctx.Input.IP(), payCode)
 
 				//返回数据
 				type PayData struct {
@@ -213,7 +215,8 @@ func (self *PayController) payExchange(oId, payWay, tradPwd, returnUrl, source s
 
 			notifyUrl := fmt.Sprintf("%s/v1/pay/%s/async/%s", beego.AppConfig.String("ApiHost"), EXCHANGE_TARGET, pay_model.PAYWAY_WEIXINPAY)
 			body := fmt.Sprintf("FOHOW玖玖-购买商品")
-			payData := wx_mp.GetPayData(wxUser.Openid, order.OrderId, order.PaiedPrice, body, notifyUrl, self.Ctx.Input.IP())
+			payCode := pay_model.GetPayConfigByDepart(wxUser.Depart, true)
+			payData := wx_mp.GetPayData(wxUser.Openid, order.OrderId, order.PaiedPrice, body, notifyUrl, self.Ctx.Input.IP(), payCode)
 
 			//返回数据
 			type PayData struct {
@@ -230,8 +233,10 @@ func (self *PayController) payExchange(oId, payWay, tradPwd, returnUrl, source s
 			if wxGzh == nil {
 				self.ReturnError(403, apps.NoExist, "", nil)
 			}
+			payCode := pay_model.GetPayConfigByDepart(wxUser.Depart, true)
+
 			//payData := wx_mp.GetPayData(wxGzh.GzhOpenId, order.OrderId , order.TotalPrice, body,notifyUrl, self.Ctx.Input.IP())
-			payData := wx_mp.GetGzhPayData(wxGzh.GzhOpenId, order.OrderId, order.PaiedPrice, body, notifyUrl, self.Ctx.Input.IP())
+			payData := wx_mp.GetPayData(wxGzh.GzhOpenId, order.OrderId, order.PaiedPrice, body, notifyUrl, self.Ctx.Input.IP(), payCode)
 
 			//返回数据
 			type PayData struct {

+ 5 - 4
go/gopath/src/fohow.com/apps/models/pay_model/init.go

@@ -1,14 +1,15 @@
 package pay_model
 
 import (
-// "time"
+	// "time"
 
-// "github.com/astaxie/beego"
-// "github.com/astaxie/beego/orm"
+	// "github.com/astaxie/beego"
+	// "github.com/astaxie/beego/orm"
+	"github.com/astaxie/beego/orm"
 )
 
 func init() {
-	// orm.RegisterModel(new(Order), new(OrderItem), new(OrderItemAttr), new(OrderRefund))
+	orm.RegisterModel(new(PayConfig))
 }
 
 const (

+ 57 - 0
go/gopath/src/fohow.com/apps/models/pay_model/pay_config.go

@@ -0,0 +1,57 @@
+package pay_model
+
+import (
+	"fmt"
+	"fohow.com/cache"
+	"github.com/astaxie/beego"
+	"github.com/astaxie/beego/orm"
+	"time"
+)
+
+const (
+	pay_configs_tablename = "pay_configs"
+)
+
+type PayConfig struct {
+	Id        int64     `orm:"column(id);pk"                                        json:"id"` // int(11)
+	PayCode   string    `orm:"column(pay_code)"                                    json:"-"`
+	Depart    int64     `orm:"column(depart)"                                      json:"-"`                     // int(11)
+	CreatedAt time.Time `orm:"column(created_at);null;auto_now_add;type(datetime)"  json:"created_at,omitempty"` // datetime
+	UpdatedAt time.Time `orm:"column(updated_at);null;auto_now;type(datetime)"      json:"updated_at,omitempty"` // datetime
+}
+
+func (self *PayConfig) TableName() string {
+	return pay_configs_tablename
+}
+
+func (self *PayConfig) Save() error {
+	if _, err := orm.NewOrm().Update(self); err != nil {
+		beego.BeeLogger.Error("Save PayConfig id=[%d] .err=[%s]", self.Id, err)
+		return err
+	}
+	return nil
+}
+
+//根据部门获取收款商户
+func GetPayConfigByDepart(depart int64, useCache bool) string {
+	payCode := "fohow"
+	k := fmt.Sprintf("pay_model.GetPayConfigByDepart.depart(%d)", depart)
+	if useCache {
+		if s, ok := cache.Cache.Get(k).(*PayConfig); ok {
+			return s.PayCode
+		}
+	}
+
+	item := new(PayConfig)
+	o := orm.NewOrm()
+	err := o.QueryTable(item).Filter("depart", depart).OrderBy("-id").Limit(1).One(item)
+	if err != nil {
+		beego.BeeLogger.Info("pay_model.GetPayConfigByDepart.depart(%d) err[%s]", depart, err)
+		return payCode
+	}
+
+	if item != nil {
+		cache.Cache.Put(k, item, 5*time.Minute)
+	}
+	return item.PayCode
+}