|
@@ -62,7 +62,7 @@ func (p *DataExportPayAction) WxSacnPay_CreateOrder() {
|
|
|
oldOrder := public.Mysql.FindOne("dataexport_order", map[string]interface{}{
|
|
|
"user_id": userId,
|
|
|
"filter_id": id,
|
|
|
- }, "id,order_status,order_code,order_money,user_mail,user_phone,data_spec,prepay_time,prepay_id", "")
|
|
|
+ }, "id,order_status,order_code,order_money,user_mail,user_phone,data_spec,prepay_time,prepay_id,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{}{
|
|
@@ -103,6 +103,13 @@ func (p *DataExportPayAction) WxSacnPay_CreateOrder() {
|
|
|
"prepayId": "prepay_id=" + util.ObjToString((*oldOrder)["prepay_id"]),
|
|
|
}
|
|
|
} else {
|
|
|
+ //在此关闭之前的订单
|
|
|
+ if !CloseDataExportOrder(util.ObjToString((*oldOrder)["pay_way"]), util.ObjToString((*oldOrder)["out_trade_no"]), util.ObjToString((*oldOrder)["prepay_time"])) {
|
|
|
+ p.ServeJson(map[string]interface{}{
|
|
|
+ "status": "n",
|
|
|
+ })
|
|
|
+ return
|
|
|
+ }
|
|
|
//价格变动需重新生预支付订单 更新原来得库的信息
|
|
|
data_count := public.GetDataExportSearchCountUseId(id)
|
|
|
if data_count > public.ExConf.MsgMaxCount {
|
|
@@ -150,12 +157,11 @@ func (p *DataExportPayAction) WxSacnPay_CreateOrder() {
|
|
|
"out_trade_no": tradeno,
|
|
|
})
|
|
|
(*oldOrder)["order_money"] = order_money
|
|
|
-
|
|
|
}
|
|
|
p.ServeJson(map[string]interface{}{
|
|
|
"status": "y",
|
|
|
"code": util.ObjToString((*oldOrder)["order_code"]),
|
|
|
- "token": public.GetWaitPayToken(util.Int64All((*oldOrder)["id"]), util.IntAll((*oldOrder)["order_money"]), util.ObjToString((*oldOrder)["order_code"]), "微信", userId),
|
|
|
+ "token": public.GetWaitPayToken(util.Int64All((*oldOrder)["id"]), util.IntAll((*oldOrder)["order_money"]), util.ObjToString((*oldOrder)["order_code"]), pay_way, userId),
|
|
|
"res": res,
|
|
|
})
|
|
|
return
|
|
@@ -276,6 +282,7 @@ func (p *DataExportPayAction) WxSacnPay_CreateOrder() {
|
|
|
func (p *DataExportPayAction) SacnPay_WaitPay() error {
|
|
|
defer util.Catch()
|
|
|
openid, _ := p.GetSession("s_m_openid").(string)
|
|
|
+ userId, _ := p.GetSession("userId").(string)
|
|
|
code := p.GetString("code")
|
|
|
token := p.GetString("token")
|
|
|
surplus, money, qrcode, pay_way := func() (int64, int, string, string) {
|
|
@@ -295,7 +302,7 @@ func (p *DataExportPayAction) SacnPay_WaitPay() error {
|
|
|
orderMoney := util.IntAll((*data)["order_money"])
|
|
|
//orderMoney = 1
|
|
|
pay_way := util.ObjToString((*data)["pay_way"])
|
|
|
- realToken := public.GetWaitPayToken(orderid, orderMoney, code, pay_way, openid)
|
|
|
+ realToken := public.GetWaitPayToken(orderid, orderMoney, code, pay_way, userId)
|
|
|
if realToken != token {
|
|
|
log.Println("token错误!", openid, realToken, token)
|
|
|
return 0, 0, "", ""
|
|
@@ -307,7 +314,7 @@ func (p *DataExportPayAction) SacnPay_WaitPay() error {
|
|
|
log.Println("二维码已失效,重新生成预订单!", openid)
|
|
|
surplus_second = 0
|
|
|
now := time.Now()
|
|
|
- if pay_way == "微信" {
|
|
|
+ if pay_way == "wx_pc" {
|
|
|
tradeno, ret := public.WxStruct.CreatePrepayOrder(config.Sysconfig["weixinrpc"].(string), "b", p.IP(), openid, "", orderMoney)
|
|
|
if ret != nil {
|
|
|
if public.Mysql.Update("dataexport_order", map[string]interface{}{
|
|
@@ -322,7 +329,7 @@ func (p *DataExportPayAction) SacnPay_WaitPay() error {
|
|
|
codeUrl = util.ObjToString((*ret)["codeurl"])
|
|
|
}
|
|
|
}
|
|
|
- } else if pay_way == "支付宝" {
|
|
|
+ } else if pay_way == "ali_pc" {
|
|
|
payOutTime := now.Add(time.Hour * 2)
|
|
|
if qr_url, tradeno, err := Alipay.GetPayUrl(util.Float64All(orderMoney), util.FormatDate(&payOutTime, util.Date_Full_Layout)); err == nil {
|
|
|
if public.Mysql.Update("dataexport_order", map[string]interface{}{
|
|
@@ -342,7 +349,7 @@ func (p *DataExportPayAction) SacnPay_WaitPay() error {
|
|
|
}
|
|
|
return surplus_second, orderMoney, codeUrl, pay_way
|
|
|
}()
|
|
|
- if pay_way == "微信" {
|
|
|
+ if pay_way == "wx_pc" {
|
|
|
r, _ := qr.Encode(qrcode, qr.M)
|
|
|
pngdat := r.PNG()
|
|
|
qrcode = base64.StdEncoding.EncodeToString(pngdat)
|
|
@@ -388,7 +395,7 @@ func (p *DataExportPayAction) SacnPay_CreateOrder() {
|
|
|
oldOrder := public.Mysql.FindOne("dataexport_order", map[string]interface{}{
|
|
|
"user_id": userId,
|
|
|
"filter_id": id,
|
|
|
- }, "id,order_status,order_code,order_money,user_mail,user_phone,data_spec,prepay_time,prepay_id", "")
|
|
|
+ }, "id,order_status,order_code,order_money,user_mail,user_phone,data_spec,prepay_time,prepay_id,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{}{
|
|
@@ -458,7 +465,7 @@ func (p *DataExportPayAction) SacnPay_CreateOrder() {
|
|
|
p.ServeJson(map[string]interface{}{
|
|
|
"status": "y",
|
|
|
"code": util.ObjToString((*oldOrder)["order_code"]),
|
|
|
- "token": public.GetWaitPayToken(util.Int64All((*oldOrder)["id"]), util.IntAll((*oldOrder)["order_money"]), util.ObjToString((*oldOrder)["order_code"]), "微信", userId),
|
|
|
+ "token": public.GetWaitPayToken(util.Int64All((*oldOrder)["id"]), util.IntAll((*oldOrder)["order_money"]), util.ObjToString((*oldOrder)["order_code"]), pay_way, userId),
|
|
|
})
|
|
|
return
|
|
|
}
|
|
@@ -586,12 +593,13 @@ func (p *DataExportPayAction) SacnPay_CreateOrder() {
|
|
|
"filter_keys": filter_keys,
|
|
|
"filter_id": id,
|
|
|
"pay_way": pay_way,
|
|
|
+ "user_id": userId, //20190719 移动端数据导出 生订单添加用户id
|
|
|
})
|
|
|
if orderid > 0 {
|
|
|
p.SetSession("DataExportVerifyPhone_val", user_phone)
|
|
|
result["status"] = "y"
|
|
|
result["code"] = ordercode
|
|
|
- result["token"] = public.GetWaitPayToken(orderid, order_money, ordercode, pay_way, openId)
|
|
|
+ result["token"] = public.GetWaitPayToken(orderid, order_money, ordercode, pay_way, userId)
|
|
|
}
|
|
|
} else {
|
|
|
log.Println("生成支付宝预支付交易单失败")
|
|
@@ -646,7 +654,7 @@ func (p *DataExportPayAction) GetOrderPayMsg() {
|
|
|
if util.IntAll((*queryOrder)["order_status"]) != 0 {
|
|
|
return "", "订单状态异常", false
|
|
|
}
|
|
|
- //在此关闭没有超时之前的订单
|
|
|
+ //在此关闭没有超时之前的订单 在pc端支付微信端订单,pay_way是wx_js 先进行关闭,再重新创建订单的时候,pay_way需要修改成wx_pc。
|
|
|
if !CloseDataExportOrder(util.ObjToString((*queryOrder)["pay_way"]), util.ObjToString((*queryOrder)["out_trade_no"]), util.ObjToString((*queryOrder)["prepay_time"])) {
|
|
|
return "", "订单关闭异常", false
|
|
|
}
|
|
@@ -656,7 +664,8 @@ func (p *DataExportPayAction) GetOrderPayMsg() {
|
|
|
codeUrl := ""
|
|
|
now := time.Now()
|
|
|
prepay_time = util.FormatDate(&now, util.Date_Full_Layout)
|
|
|
- if pay_way == "wx_pc" {
|
|
|
+ if pay_way == "wx_pc" || pay_way == "wx_js" {
|
|
|
+ pay_way = "wx_pc" //pc端重生支付码 更新数据库
|
|
|
tradeno, ret := public.WxStruct.CreatePrepayOrder(config.Sysconfig["weixinrpc"].(string), "b", p.IP(), openid, "", orderMoney)
|
|
|
if ret != nil && (*ret)["status"] == "1" {
|
|
|
if public.Mysql.Update("dataexport_order", map[string]interface{}{
|
|
@@ -723,7 +732,7 @@ func CloseDataExportOrder(payWay, tradeno, prepayTime string) (status bool) {
|
|
|
if payWay == "ali_pc" {
|
|
|
status = Alipay.CloseOrder(tradeno)
|
|
|
}
|
|
|
- if payWay == "wx_pc" {
|
|
|
+ if payWay == "wx_pc" || payWay == "wx_js" {
|
|
|
status = public.WxStruct.CloseOrder(config.Sysconfig["weixinrpc"].(string), tradeno)
|
|
|
}
|
|
|
if !status {
|