Browse Source

支付后返回修改条件再支付 支付金额有问题

wangshan 6 years ago
parent
commit
9b729dc877
3 changed files with 92 additions and 14 deletions
  1. 1 1
      src/jfw/front/dataExport.go
  2. 67 9
      src/jfw/pay/weixin.go
  3. 24 4
      src/web/templates/pc/createOrderPage.html

+ 1 - 1
src/jfw/front/dataExport.go

@@ -505,7 +505,7 @@ func (d *DataExport) ToCreateOrderPage(_id string) error {
 	}
 	}
 	//手机号
 	//手机号
 	phone := d.GetSession("DataExportVerifyPhone_val")
 	phone := d.GetSession("DataExportVerifyPhone_val")
-	if phone != nil {
+	if phone != nil && phone != "" {
 		d.T["phone"] = phone
 		d.T["phone"] = phone
 	} else {
 	} else {
 		if isPhone(openid) {
 		if isPhone(openid) {

+ 67 - 9
src/jfw/pay/weixin.go

@@ -301,12 +301,76 @@ func (p *WxPayAction) SacnPay_CreateOrder() {
 		})
 		})
 		return
 		return
 	}
 	}
+	//
+	data_spec := p.GetString("data_spec")
+	if data_spec == "standard" {
+		data_spec = "标准字段包"
+	} else if data_spec == "senior" {
+		data_spec = "高级字段包"
+	}
+	user_mail, _ := p.GetSession("DataExportVerifyEmail_val").(string)
+	user_phone, _ := p.GetSession("DataExportVerifyPhone").(string)
+	if user_phone != "" {
+		p.SetSession("DataExportVerifyPhone_val", user_phone) //提交后下次默认带出手机号
+	} else {
+		user_phone, _ = p.GetSession("DataExportVerifyPhone_val").(string)
+	}
 	//先看有没有创建过预支付订单
 	//先看有没有创建过预支付订单
 	oldOrder := public.Mysql.FindOne("dataexport_order", map[string]interface{}{
 	oldOrder := public.Mysql.FindOne("dataexport_order", map[string]interface{}{
 		"user_openid": openId,
 		"user_openid": openId,
 		"filter_id":   id,
 		"filter_id":   id,
-	}, "id,order_status,order_code,order_money", "")
+	}, "id,order_status,order_code,order_money,user_mail,user_phone,data_spec,prepay_time", "")
 	if oldOrder != nil {
 	if oldOrder != nil {
+		if user_mail != "" && user_mail != util.ObjToString((*oldOrder)["user_mail"]) {
+			public.Mysql.Update("dataexport_order", map[string]interface{}{
+				"user_openid": openId,
+				"filter_id":   id,
+			}, map[string]interface{}{
+				"user_mail": user_mail,
+			})
+		}
+		if user_phone != "" && user_phone != util.ObjToString((*oldOrder)["user_phone"]) {
+			public.Mysql.Update("dataexport_order", map[string]interface{}{
+				"user_openid": openId,
+				"filter_id":   id,
+			}, map[string]interface{}{
+				"user_phone": user_phone,
+			})
+		}
+		if data_spec != "" && data_spec != util.ObjToString((*oldOrder)["data_spec"]) {
+			//
+			data_count := public.GetDataExportSearchCountUseId(id)
+			if data_count > public.ExConf.MsgMaxCount {
+				data_count = public.ExConf.MsgMaxCount
+			}
+			order_money_, original_price_ := float64(0), float64(0)
+			if data_spec == "标准字段包" {
+				original_price_ = float64(data_count) * public.ExConf.UnitPrice_normal
+			} else if data_spec == "高级字段包" {
+				original_price_ = float64(data_count) * public.ExConf.UnitPrice_senior
+			}
+			order_money_ = float64(original_price_) * public.ExConf.Discount
+			if order_money_ < public.ExConf.OrderMinPrice {
+				order_money_ = public.ExConf.OrderMinPrice
+			}
+			if original_price_ < public.ExConf.OrderMinPrice {
+				original_price_ = public.ExConf.OrderMinPrice
+			}
+			order_money := int(order_money_ * 100)
+			original_price := int(original_price_ * 100)
+			prepayTime, _ := time.ParseInLocation(util.Date_Full_Layout, util.ObjToString((*oldOrder)["prepay_time"]), time.Local)
+			surplus_second := prepayTime.Unix() - 7200 //价格变动  支付二维码更新成超时状态--重新生订单二维码
+			public.Mysql.Update("dataexport_order", map[string]interface{}{
+				"user_openid": openId,
+				"filter_id":   id,
+			}, map[string]interface{}{
+				"data_spec":      data_spec,
+				"order_money":    order_money,
+				"original_price": original_price,
+				"prepay_time":    util.FormatDateByInt64(&surplus_second, util.Date_Full_Layout),
+			})
+			(*oldOrder)["order_money"] = order_money
+		}
 		if util.IntAll((*oldOrder)["order_status"]) == 0 {
 		if util.IntAll((*oldOrder)["order_status"]) == 0 {
 			p.ServeJson(map[string]interface{}{
 			p.ServeJson(map[string]interface{}{
 				"status": "y",
 				"status": "y",
@@ -322,11 +386,7 @@ func (p *WxPayAction) SacnPay_CreateOrder() {
 			return
 			return
 		}
 		}
 	}
 	}
-	//
-	user_mail, _ := p.GetSession("DataExportVerifyEmail_val").(string)
-	user_phone, _ := p.GetSession("DataExportVerifyPhone_val").(string)
 	user_mail_status := p.GetSession("EMVerifySucess").(bool)
 	user_mail_status := p.GetSession("EMVerifySucess").(bool)
-	data_spec := p.GetString("data_spec")
 	pay_way := p.GetString("pay_way")
 	pay_way := p.GetString("pay_way")
 	//
 	//
 	data_count := public.GetDataExportSearchCountUseId(id)
 	data_count := public.GetDataExportSearchCountUseId(id)
@@ -334,11 +394,9 @@ func (p *WxPayAction) SacnPay_CreateOrder() {
 		data_count = public.ExConf.MsgMaxCount
 		data_count = public.ExConf.MsgMaxCount
 	}
 	}
 	order_money_, original_price_ := float64(0), float64(0)
 	order_money_, original_price_ := float64(0), float64(0)
-	if data_spec == "standard" {
-		data_spec = "标准字段包"
+	if data_spec == "标准字段包" {
 		original_price_ = float64(data_count) * public.ExConf.UnitPrice_normal
 		original_price_ = float64(data_count) * public.ExConf.UnitPrice_normal
-	} else if data_spec == "senior" {
-		data_spec = "高级字段包"
+	} else if data_spec == "高级字段包" {
 		original_price_ = float64(data_count) * public.ExConf.UnitPrice_senior
 		original_price_ = float64(data_count) * public.ExConf.UnitPrice_senior
 	}
 	}
 	order_money_ = float64(original_price_) * public.ExConf.Discount
 	order_money_ = float64(original_price_) * public.ExConf.Discount

+ 24 - 4
src/web/templates/pc/createOrderPage.html

@@ -47,7 +47,7 @@
         <div class="guige">
         <div class="guige">
             <div class="title">数据规格<i id="exp" class="iconfont icon-bangzhu"></i></div>
             <div class="title">数据规格<i id="exp" class="iconfont icon-bangzhu"></i></div>
             <div class="inner clearfix switch-dataType">
             <div class="inner clearfix switch-dataType">
-                <div class="bz no-select active">
+                <div class="bz no-select">
                     <p>标准字段包</p>
                     <p>标准字段包</p>
                     <p>
                     <p>
                         <del>{{.T.unitPrice_normal}}元/条</del>&nbsp;<span>{{.T.unitPrice_normal_final}}元/条</span></p>
                         <del>{{.T.unitPrice_normal}}元/条</del>&nbsp;<span>{{.T.unitPrice_normal_final}}元/条</span></p>
@@ -169,10 +169,23 @@
 		//数据展示
 		//数据展示
 		var showCount=FormatNum(msgCount);
 		var showCount=FormatNum(msgCount);
 		$(".msgCount").text(showCount);
 		$(".msgCount").text(showCount);
-		
+		if (sessionStorage.getItem("order_spec"+{{.T._id}})!=null){
+			dataType = sessionStorage.getItem("order_spec"+{{.T._id}});
+		}
+		if(dataType==1){
+			$(".switch-dataType .bz").addClass("active")
+			$(".switch-dataType .gj").removeClass("active")
+		}else{
+			$(".switch-dataType .bz").removeClass("active")
+			$(".switch-dataType .gj").addClass("active")
+		}
 		ChangePayMoney();
 		ChangePayMoney();
 
 
-		if(email_lastInput!=""){
+		if (sessionStorage.getItem("order_email"+{{.T._id}})!=null){
+			$(".email_check_ok").show();
+			$(".email_input").val(sessionStorage.getItem("order_email"+{{.T._id}}));
+			finishEmailVerity=true;
+		}else if(email_lastInput!=""){
 			$(".email_check_ok").show();
 			$(".email_check_ok").show();
 			$(".email_input").val(email_lastInput);
 			$(".email_input").val(email_lastInput);
 			finishEmailVerity=true;
 			finishEmailVerity=true;
@@ -180,7 +193,11 @@
 		if(email_lastVerity>0){
 		if(email_lastVerity>0){
 			sendemailTimer(email_lastVerity);
 			sendemailTimer(email_lastVerity);
 		}
 		}
-		if(phone_lastInput!=""){
+		if (sessionStorage.getItem("order_phone"+{{.T._id}})!=null){
+			$(".phone_check_ok").show();
+			$(".phone_input").val(sessionStorage.getItem("order_phone"+{{.T._id}}));
+			finishPhoneVerity=true;
+		}else if(phone_lastInput!=""){
 			$(".phone_check_ok").show();
 			$(".phone_check_ok").show();
 			$(".phone_input").val(phone_lastInput);
 			$(".phone_input").val(phone_lastInput);
 			finishPhoneVerity=true;
 			finishPhoneVerity=true;
@@ -396,6 +413,9 @@
 			
 			
 			$.post("/weixin/sacnPay/createOrder",param,function(data){
 			$.post("/weixin/sacnPay/createOrder",param,function(data){
 				if(data.status=="y"){
 				if(data.status=="y"){
+					sessionStorage.setItem("order_spec"+{{.T._id}}, dataType);
+					sessionStorage.setItem("order_email"+{{.T._id}}, $(".email_input").val().replace(/\s*/g,""));
+					sessionStorage.setItem("order_phone"+{{.T._id}}, $(".phone_input").val().replace(/\s*/g,""));
 					window.location.href="/weixin/sacnPay/waitPay?code="+data.code+"&token="+data.token;
 					window.location.href="/weixin/sacnPay/waitPay?code="+data.code+"&token="+data.token;
 				}else{
 				}else{
 					canpay=true;
 					canpay=true;