Ver Fonte

no message

xingzai há 8 meses atrás
pai
commit
b2da3ab2c6
3 ficheiros alterados com 40 adições e 20 exclusões
  1. 30 16
      controllers/wechat.go
  2. 6 0
      models/order/order_payment.go
  3. 4 4
      services/order.go

+ 30 - 16
controllers/wechat.go

@@ -455,6 +455,7 @@ func (this *WechatCommonController) WxpayNotify() {
 		this.ServeJSON()
 	}()
 	body := this.Ctx.Input.RequestBody
+	resp := new(order.WechatPayNotifyUrlJson)
 	//utils.FileLog.Info("wechat notify:" + string(body))
 	item := new(models.CygxShanghaiCompanyLog)
 	item.CreateTime = time.Now()
@@ -462,10 +463,18 @@ func (this *WechatCommonController) WxpayNotify() {
 	item.Result = string(body)
 	go models.AddCygxShanghaiCompanyLog(item)
 	itemNotify := services.WxDecodeNotify(body)
+	if itemNotify == nil {
+		resp.Code = "FAIL"
+		resp.Message = "失败"
+		br.Ret = 400
+		return
+	}
+
 	if itemNotify.OutTradeNo != "" {
-		go services.HandleOrderHandle(itemNotify)
+		go services.HandleOrderByWechatPay(itemNotify)
 	}
-	br.Data = itemNotify
+	resp.Code = "SUCCESS"
+	br.Data = resp
 	br.Ret = 200
 	br.Success = true
 }
@@ -481,31 +490,36 @@ func (this *WechatCommonController) WxpayRefundsNotify() {
 		this.ServeJSON()
 	}()
 	body := this.Ctx.Input.RequestBody
+	resp := new(order.WechatPayNotifyUrlJson)
 	//utils.FileLog.Info("wechat notify:" + string(body))
 	item := new(models.CygxShanghaiCompanyLog)
 	item.CreateTime = time.Now()
 	//item.Body = jsonCompany
 	item.Result = string(body)
-	//fmt.Println(item.Result)
-	//return
+
 	itemNotify := services.WxDecodeNotify(body)
-	if itemNotify.OutTradeNo != "" {
-		go services.HandleOrderRefundHandle(itemNotify)
-	}
 
-	outTradeNo := itemNotify.OutTradeNo
-	orderDetail, e := order.GetCygxOrderDetailByOutTradeNo(outTradeNo)
-	if e != nil {
+	if itemNotify == nil {
+		resp.Code = "FAIL"
+		resp.Message = "失败"
+		br.Ret = 400
 		return
 	}
 
-	//go AddCygxOrderPayment(itemCallback) // 记录支付交易信息
-
-	//修改过状态的不再二次处理
-	if orderDetail.OrderStatus != 3 {
-		go models.AddCygxShanghaiCompanyLog(item)
+	if itemNotify.OutTradeNo != "" {
+		go services.HandleOrderRefundByWechatPay(itemNotify)
+		outTradeNo := itemNotify.OutTradeNo
+		orderDetail, err := order.GetCygxOrderDetailByOutTradeNo(outTradeNo)
+		if err != nil {
+			return
+		}
+		//修改过状态的不再二次处理
+		if orderDetail.OrderStatus != 3 {
+			go models.AddCygxShanghaiCompanyLog(item)
+		}
 	}
-	br.Data = itemNotify
+
+	br.Data = resp
 	br.Ret = 200
 	br.Success = true
 }

+ 6 - 0
models/order/order_payment.go

@@ -17,6 +17,12 @@ type CygxOrderPayment struct {
 	PaymentType    int       `comment:"支付类型。取值范围:1微信支付,2支付宝支付。"`
 }
 
+// 微信支付回调返回通知信息
+type WechatPayNotifyUrlJson struct {
+	Code    string `json:"code"`
+	Message string `json:"message"`
+}
+
 // 添加
 func AddCygxOrderPayment(item *CygxOrderPayment) (err error) {
 	o := orm.NewOrm()

+ 4 - 4
services/order.go

@@ -148,12 +148,12 @@ func GetHaverEquallyOrderByUser10MinByActivty(userId, sourceId int) (orderCode s
 }
 
 // 处理支付订单回调
-func HandleOrderHandle(itemCallback *WechatPayCallback) {
+func HandleOrderByWechatPay(itemCallback *WechatPayCallback) {
 	var err error
 	defer func() {
 		if err != nil {
 			fmt.Println(err)
-			go utils.SendAlarmMsg(fmt.Sprint("处理订单回调信息失败 HandleOrderHandle, err:", err.Error()), 2)
+			go utils.SendAlarmMsg(fmt.Sprint("处理订单回调信息失败 HandleOrderByWechatPay, err:", err.Error()), 2)
 		}
 	}()
 	outTradeNo := itemCallback.OutTradeNo
@@ -272,13 +272,13 @@ func AddCygxOrderPayment(itemCallback *WechatPayCallback) {
 }
 
 // 处理退款订单回调
-func HandleOrderRefundHandle(itemCallback *WechatPayCallback) {
+func HandleOrderRefundByWechatPay(itemCallback *WechatPayCallback) {
 
 	var err error
 	defer func() {
 		if err != nil {
 			fmt.Println(err)
-			go utils.SendAlarmMsg(fmt.Sprint("处理退款订单回调信息失败 HandleOrderRefundHandle, err:", err.Error()), 2)
+			go utils.SendAlarmMsg(fmt.Sprint("处理退款订单回调信息失败 HandleOrderRefundByWechatPay, err:", err.Error()), 2)
 		}
 	}()
 	outTradeNo := itemCallback.OutTradeNo