|
@@ -46,6 +46,7 @@ func (p *DataExportPayAction) SacnPay_WaitPay() error {
|
|
|
}
|
|
|
orderid := util.Int64All((*data)["id"])
|
|
|
orderMoney := util.IntAll((*data)["order_money"])
|
|
|
+ orderMoney = 1
|
|
|
pay_way := util.ObjToString((*data)["pay_way"])
|
|
|
realToken := public.GetWaitPayToken(orderid, orderMoney, code, pay_way, openid)
|
|
|
if realToken != token {
|
|
@@ -142,7 +143,7 @@ func (p *DataExportPayAction) SacnPay_CreateOrder() {
|
|
|
oldOrder := public.Mysql.FindOne("dataexport_order", map[string]interface{}{
|
|
|
"user_openid": openId,
|
|
|
"filter_id": id,
|
|
|
- }, "id,order_status,order_code,order_money,user_mail,user_phone,data_spec,prepay_time,pay_way", "")
|
|
|
+ }, "id,order_status,order_code,order_money,user_mail,user_phone,data_spec,prepay_time,pay_way,out_trade_no", "")
|
|
|
if oldOrder != nil {
|
|
|
if user_mail != "" && user_mail != util.ObjToString((*oldOrder)["user_mail"]) {
|
|
|
public.Mysql.Update("dataexport_order", map[string]interface{}{
|
|
@@ -168,8 +169,15 @@ func (p *DataExportPayAction) SacnPay_CreateOrder() {
|
|
|
})
|
|
|
return
|
|
|
}
|
|
|
- //价格支付方式变动需要重新生成订单二维码
|
|
|
+ //价格支付方式变动需要重新生成订单二维码(关闭之前的订单)
|
|
|
if (data_spec != "" && data_spec != util.ObjToString((*oldOrder)["data_spec"])) || pay_way != util.ObjToString((*oldOrder)["pay_way"]) {
|
|
|
+ //在此关闭之前的订单
|
|
|
+ if !closeDataExportOrder(util.ObjToString((*oldOrder)["pay_way"]), util.ObjToString((*oldOrder)["out_trade_no"])) {
|
|
|
+ p.ServeJson(map[string]interface{}{
|
|
|
+ "status": "n",
|
|
|
+ })
|
|
|
+ return
|
|
|
+ }
|
|
|
data_count := public.GetDataExportSearchCountUseId(id)
|
|
|
if data_count > public.ExConf.MsgMaxCount {
|
|
|
data_count = public.ExConf.MsgMaxCount
|
|
@@ -230,8 +238,8 @@ func (p *DataExportPayAction) SacnPay_CreateOrder() {
|
|
|
}
|
|
|
order_money := int(order_money_ * 100)
|
|
|
original_price := int(original_price_ * 100)
|
|
|
- //order_money = 1
|
|
|
- //original_price = 1
|
|
|
+ order_money = 1
|
|
|
+ original_price = 1
|
|
|
filter_keys, filter_publishtime, filter := "", "", ""
|
|
|
//
|
|
|
isPass := func() bool {
|
|
@@ -382,7 +390,7 @@ func (p *DataExportPayAction) GetOrderPayMsg() {
|
|
|
queryOrder := public.Mysql.FindOne("dataexport_order", map[string]interface{}{
|
|
|
"user_openid": openid,
|
|
|
"order_code": code,
|
|
|
- }, "id,order_status,order_money", "")
|
|
|
+ }, "id,order_status,order_money,out_trade_no,pay_way", "")
|
|
|
|
|
|
if queryOrder == nil {
|
|
|
return "", "订单异常", false
|
|
@@ -390,6 +398,10 @@ func (p *DataExportPayAction) GetOrderPayMsg() {
|
|
|
if util.IntAll((*queryOrder)["order_status"]) != 0 {
|
|
|
return "", "订单状态异常", false
|
|
|
}
|
|
|
+ //在此关闭之前的订单
|
|
|
+ if !closeDataExportOrder(util.ObjToString((*queryOrder)["pay_way"]), util.ObjToString((*queryOrder)["out_trade_no"])) {
|
|
|
+ return "", "订单关闭异常", false
|
|
|
+ }
|
|
|
//修改支付方式
|
|
|
orderid := util.Int64All((*queryOrder)["id"])
|
|
|
orderMoney := util.IntAll((*queryOrder)["order_money"])
|
|
@@ -447,3 +459,17 @@ func (p *DataExportPayAction) GetOrderPayMsg() {
|
|
|
})
|
|
|
|
|
|
}
|
|
|
+func closeDataExportOrder(payWay, tradeno string) (status bool) {
|
|
|
+ log.Printf("%s取消订单,订单号%s\n", payWay, tradeno)
|
|
|
+
|
|
|
+ if payWay == "支付宝" {
|
|
|
+ status = Alipay.CloseOrder(tradeno)
|
|
|
+ }
|
|
|
+ if payWay == "微信" {
|
|
|
+ status = public.WxStruct.CloseOrder(config.Sysconfig["weixinrpc"].(string), tradeno)
|
|
|
+ }
|
|
|
+ if !status {
|
|
|
+ log.Printf("%s订单关闭失败:%s\n", payWay, tradeno)
|
|
|
+ }
|
|
|
+ return status
|
|
|
+}
|