diff --git a/api/handler/payment_handler.go b/api/handler/payment_handler.go index f17b7411..1bb47708 100644 --- a/api/handler/payment_handler.go +++ b/api/handler/payment_handler.go @@ -338,19 +338,14 @@ func (h *PaymentHandler) Mobile(c *gin.Context) { payWay = PayWayJs notifyURL = h.App.Config.JPayConfig.NotifyURL returnURL = h.App.Config.JPayConfig.ReturnURL - params := payment.JPayReq{ - TotalFee: int(math.Ceil(amount * 100)), - OutTradeNo: orderNo, - Subject: product.Name, - NotifyURL: notifyURL, - ReturnURL: returnURL, - } - r := h.js.PayH5(params) - if !r.IsOK() { - resp.ERROR(c, "error with generating Pay URL: "+r.ReturnMsg) - return - } - payURL = r.H5URL + totalFee := decimal.NewFromFloat(product.Price).Sub(decimal.NewFromFloat(product.Discount)).Mul(decimal.NewFromInt(100)).IntPart() + params := url.Values{} + params.Add("total_fee", fmt.Sprintf("%d", totalFee)) + params.Add("out_trade_no", orderNo) + params.Add("body", product.Name) + params.Add("notify_url", notifyURL) + params.Add("auto", "0") + payURL = h.js.PayH5(params) case "alipay": payWay = PayWayAlipay notifyURL = h.App.Config.AlipayConfig.NotifyURL diff --git a/api/service/payment/payjs_service.go b/api/service/payment/payjs_service.go index 72af9099..13774173 100644 --- a/api/service/payment/payjs_service.go +++ b/api/service/payment/payjs_service.go @@ -40,7 +40,6 @@ type JPayReps struct { TotalFee string `json:"total_fee"` CodeUrl string `json:"code_url,omitempty"` Qrcode string `json:"qrcode,omitempty"` - H5URL string `json:"h5_url,omitempty"` } func (r JPayReps) IsOK() bool { @@ -80,37 +79,10 @@ func (js *PayJS) Pay(param JPayReq) JPayReps { return data } -func (js *PayJS) PayH5(param JPayReq) JPayReps { - param.NotifyURL = js.config.NotifyURL - var p = url.Values{} - encode := utils.JsonEncode(param) - m := make(map[string]interface{}) - _ = utils.JsonDecode(encode, &m) - for k, v := range m { - p.Add(k, fmt.Sprintf("%v", v)) - } +func (js *PayJS) PayH5(p url.Values) string { p.Add("mchid", js.config.AppId) - p.Add("sign", js.sign(p)) - - cli := http.Client{} - apiURL := fmt.Sprintf("%s/api/h5", js.config.ApiURL) - r, err := cli.PostForm(apiURL, p) - if err != nil { - return JPayReps{ReturnMsg: err.Error()} - } - defer r.Body.Close() - bs, err := io.ReadAll(r.Body) - if err != nil { - return JPayReps{ReturnMsg: err.Error()} - } - - var data JPayReps - err = utils.JsonDecode(string(bs), &data) - if err != nil { - return JPayReps{ReturnMsg: err.Error()} - } - return data + return fmt.Sprintf("%s/api/cashier?%s", js.config.ApiURL, p.Encode()) } func (js *PayJS) sign(params url.Values) string { diff --git a/web/src/views/mobile/Profile.vue b/web/src/views/mobile/Profile.vue index 6bbf4091..3a22a2aa 100644 --- a/web/src/views/mobile/Profile.vue +++ b/web/src/views/mobile/Profile.vue @@ -73,13 +73,9 @@ {{ item.days }}天 长期有效 - - {{ item.calls }} - {{ vipMonthCalls }} - - - {{ item.img_calls }} - {{ vipMonthImgCalls }} + + {{ item.power }} + {{ vipMonthPower }} @@ -140,8 +136,7 @@ const fileList = ref([ ]); const products = ref([]) -const vipMonthCalls = ref(0) -const vipMonthImgCalls = ref(0) +const vipMonthPower = ref(0) const payWays = ref({}) const router = useRouter() const loginUser = ref(null) @@ -165,8 +160,7 @@ onMounted(() => { }) httpGet("/api/config/get?key=system").then(res => { - vipMonthCalls.value = res.data['vip_month_calls'] - vipMonthImgCalls.value = res.data['vip_month_img_calls'] + vipMonthPower.value = res.data['vip_month_power'] }).catch(e => { showFailToast("获取系统配置失败:" + e.message) }) @@ -255,6 +249,7 @@ const pay = (payWay, item) => { product_id: item.id, user_id: loginUser.value.id }).then(res => { + // console.log(res.data) location.href = res.data }).catch(e => { showFailToast("生成支付订单失败:" + e.message)