浏览代码

no message

xingzai 11 月之前
父节点
当前提交
01b7463c52

+ 1 - 0
controllers/order.go

@@ -67,6 +67,7 @@ func (this *OrderController) AddByArticle() {
 	title = articleDetail.Title
 	item := new(order.CygxOrder)
 	item.OrderCode = utils.GetOrdernum()
+	item.OutTradeNo = item.OrderCode
 	item.GoodsName = goodsDetail.GoodsName
 	item.GoodsId = goodsId
 	item.GoodsMoney = goodsDetail.Price

+ 1 - 1
controllers/wechat.go

@@ -494,7 +494,7 @@ func (this *WechatCommonController) WxpayRefundsNotify() {
 	}
 
 	outTradeNo := itemNotify.OutTradeNo
-	orderDetail, e := order.GetCygxOrderDetailByOrderCode(outTradeNo)
+	orderDetail, e := order.GetCygxOrderDetailByOutTradeNo(outTradeNo)
 	if e != nil {
 		return
 	}

+ 10 - 0
models/order/order.go

@@ -37,6 +37,7 @@ type CygxOrderCancelReq struct {
 type CygxOrder struct {
 	OrderId          int       `orm:"column(order_id);pk";comment:"订单id"`
 	OrderCode        string    `comment:"订单编号"`
+	OutTradeNo       string    `comment:"【商户订单号】 商户系统内部订单号"`
 	OutTradeCode     string    `comment:"外部交易号"`
 	PaymentType      int       `comment:"支付类型。取值范围:1微信支付,2支付宝支付。"`
 	TradeType        string    `comment:"交易类型,枚举值:JSAPI:公众号支付 、 NATIVE:扫码支付 、 App:App支付 、 MICROPAY:付款码支付 、 MWEB:H5支付 、 FACEPAY:刷脸支付"`
@@ -260,6 +261,7 @@ func UpdateCygxOrder(item *CygxOrder, oldOrderCode string) (err error) {
 	updateParams["SourceId"] = item.SourceId
 	updateParams["Source"] = item.Source
 	updateParams["SourceTitle"] = item.SourceTitle
+	updateParams["OutTradeNo"] = item.OutTradeNo
 	updateParams["ModifyTime"] = item.ModifyTime
 	ptrStructOrTableName := "cygx_order"
 	whereParam := map[string]interface{}{"order_code": oldOrderCode}
@@ -293,6 +295,14 @@ func GetCygxOrderDetailByOrderCode(orderCode string) (item *CygxOrder, err error
 	return
 }
 
+// 根据订单编号获取订单详情
+func GetCygxOrderDetailByOutTradeNo(outTradeNo string) (item *CygxOrder, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT * FROM cygx_order WHERE out_trade_no = ? `
+	err = o.Raw(sql, outTradeNo).QueryRow(&item)
+	return
+}
+
 // 获取数量
 func GetCygxOrderCount(condition string, pars []interface{}) (count int, err error) {
 	o := orm.NewOrm()

+ 5 - 5
models/order/order_user_card.go

@@ -229,11 +229,11 @@ func RemoveCygxOrderUserCard(item *CygxOrderUserCard, itemOrder *CygxOrder) (err
 		return
 	}
 
-	sql := ` DELETE FROM cygx_order_user_card  WHERE mobile=? ` // 删除原有的持卡信息
-	_, err = o.Raw(sql, item.Mobile).Exec()
-	if err != nil {
-		return
-	}
+	//sql := ` DELETE FROM cygx_order_user_card  WHERE mobile=? ` // 删除原有的持卡信息  (退款之后不删除相关权益权限)
+	//_, err = o.Raw(sql, item.Mobile).Exec()
+	//if err != nil {
+	//	return
+	//}
 
 	itemLog := new(CygxOrderUserCardLog)
 	itemLog.OrderCode = item.OrderCode

+ 5 - 5
models/order/order_virtual_asset.go

@@ -161,11 +161,11 @@ func RemoveCygxOrderVirtualAsset(item *CygxOrderVirtualAsset, itemOrder *CygxOrd
 		return
 	}
 
-	sql := ` DELETE FROM cygx_order_virtual_asset  WHERE order_code =? ` // 删除原有的持卡信息
-	_, err = o.Raw(sql, item.OrderCode).Exec()
-	if err != nil {
-		return
-	}
+	//sql := ` DELETE FROM cygx_order_virtual_asset  WHERE order_code =? ` // 删除原有的持卡信息 (退款之后不删除相关权益权限)
+	//_, err = o.Raw(sql, item.OrderCode).Exec()
+	//if err != nil {
+	//	return
+	//}
 
 	return
 }

+ 8 - 8
services/order.go

@@ -144,7 +144,7 @@ func HandleOrderHandle(itemCallback *WechatPayCallback) {
 		}
 	}()
 	outTradeNo := itemCallback.OutTradeNo
-	orderDetail, e := order.GetCygxOrderDetailByOrderCode(outTradeNo)
+	orderDetail, e := order.GetCygxOrderDetailByOutTradeNo(outTradeNo)
 	if e != nil {
 		err = errors.New("GetCygxOrderDetailByOrderCode, Err: " + e.Error())
 		return
@@ -159,13 +159,13 @@ func HandleOrderHandle(itemCallback *WechatPayCallback) {
 
 	if itemCallback.TradeState != "SUCCESS" { // 回调显示支付不成功,模版消息推送
 		if e != nil {
-			err = errors.New("支付失败,  OrderCode: " + outTradeNo)
+			err = errors.New("支付失败,  OutTradeNo: " + outTradeNo)
 			return
 		}
 	}
 
 	itemOrder := new(order.CygxOrder)
-	itemOrder.OrderCode = itemCallback.OutTradeNo
+	itemOrder.OrderCode = orderDetail.OrderCode
 	itemOrder.PayTime = itemCallback.SuccessTime
 	itemOrder.PayMoney = float64(float64(itemCallback.Amount.PayerTotal) / 100) // 金额分转换处理
 	itemOrder.OrderStatus = 2
@@ -267,7 +267,7 @@ func HandleOrderRefundHandle(itemCallback *WechatPayCallback) {
 		}
 	}()
 	outTradeNo := itemCallback.OutTradeNo
-	orderDetail, e := order.GetCygxOrderDetailByOrderCode(outTradeNo)
+	orderDetail, e := order.GetCygxOrderDetailByOutTradeNo(outTradeNo)
 	if e != nil {
 		err = errors.New("GetCygxOrderDetailByOrderCode, Err: " + e.Error())
 		return
@@ -281,7 +281,7 @@ func HandleOrderRefundHandle(itemCallback *WechatPayCallback) {
 	}
 
 	itemOrder := new(order.CygxOrder)
-	itemOrder.OrderCode = itemCallback.OutTradeNo
+	itemOrder.OrderCode = orderDetail.OrderCode
 	itemOrder.RefundTime = itemCallback.SuccessTime
 	itemOrder.RefundMoney = float64(float64(itemCallback.Amount.PayerTotal) / 100) // 金额分转换处理
 	itemOrder.OrderStatus = 3
@@ -333,9 +333,9 @@ func HandleOrderRefundHandle(itemCallback *WechatPayCallback) {
 		}
 	}
 
-	if orderDetail.Source == utils.CYGX_OBJ_ACTIVITY {
-		go CancelActivitySignupByWechatPay(orderDetail.SourceId, orderDetail.UserId) //微信退款成功自动取消报名
-	}
+	//if orderDetail.Source == utils.CYGX_OBJ_ACTIVITY {
+	//	go CancelActivitySignupByWechatPay(orderDetail.SourceId, orderDetail.UserId) //微信退款成功自动取消报名
+	//}
 	return
 }
 

+ 6 - 1
services/wx_pay.go

@@ -71,9 +71,10 @@ func ExampleJsapiApiServicePrepay(orderDetail *order.CygxOrder, unionId string)
 			Appid:       core.String(utils.WxAppId),
 			Mchid:       core.String(Mchid),
 			Description: core.String(orderDetail.SourceTitle),
-			OutTradeNo:  core.String(orderDetail.OrderCode),
+			OutTradeNo:  core.String(orderDetail.OutTradeNo),
 			Attach:      core.String(""),
 			NotifyUrl:   core.String(utils.WxPayJsapiNotifyUrl),
+			TimeExpire:  core.Time(time.Now()),
 			Amount: &jsapi.Amount{
 				Total: core.Int64(int64(orderDetail.OrderMoney * 100)), // 分
 			},
@@ -82,6 +83,10 @@ func ExampleJsapiApiServicePrepay(orderDetail *order.CygxOrder, unionId string)
 			},
 		},
 	)
+	if err != nil {
+		log.Printf("PrepayWithRequestPayment err:%s", err)
+		return
+	}
 	JsapiApiResp.PrepayId = *resp.PrepayId
 	JsapiApiResp.Appid = *resp.Appid
 	JsapiApiResp.TimeStamp = *resp.TimeStamp