pay.js 6.6 KB
"use strict";
const common_vendor = require("../../common/vendor.js");
const common_assets = require("../../common/assets.js");
const common_hotel = require("../../common/hotel.js");
require("../../common/request.js");
require("../../config.js");
require("../../common/login.js");
require("../../common/api.js");
if (!Array) {
  const _easycom_uni_countdown2 = common_vendor.resolveComponent("uni-countdown");
  const _easycom_uni_popup_dialog2 = common_vendor.resolveComponent("uni-popup-dialog");
  const _easycom_uni_popup2 = common_vendor.resolveComponent("uni-popup");
  (_easycom_uni_countdown2 + _easycom_uni_popup_dialog2 + _easycom_uni_popup2)();
}
const _easycom_uni_countdown = () => "../../uni_modules/uni-countdown/components/uni-countdown/uni-countdown.js";
const _easycom_uni_popup_dialog = () => "../../uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.js";
const _easycom_uni_popup = () => "../../uni_modules/uni-popup/components/uni-popup/uni-popup.js";
if (!Math) {
  (_easycom_uni_countdown + _easycom_uni_popup_dialog + _easycom_uni_popup)();
}
const _sfc_main = {
  __name: "pay",
  setup(__props) {
    const data = common_vendor.reactive({
      money: "",
      orderId: "",
      alertDialog: null,
      alertPayOk: null,
      alertPayWrong: null,
      isClick: false,
      lockPay: false,
      surplus
    });
    const {
      money,
      alertDialog,
      alertPayOk,
      alertPayWrong,
      orderId,
      isClick,
      lockPay,
      surplus
    } = common_vendor.toRefs(data);
    const countdown = common_vendor.ref({
      start: false,
      minute: 15,
      second: 0
    });
    const form = common_vendor.ref({
      payType: "7"
    });
    common_vendor.onLoad((options) => {
      money.value = options.money;
      orderId.value = options.orderId;
      if (options.surplus) {
        surplus.value = options.surplus;
        countdown.value = {
          start: true,
          minute: Number(surplus.value.split(",")[0]),
          second: Number(surplus.value.split(",")[1])
        };
      } else {
        init();
      }
    });
    function init() {
      countdown.value = {
        start: true,
        minute: 15,
        second: 0
      };
    }
    function payChange(evt) {
      form.value.payType = evt.detail.value;
    }
    function timeup() {
      if (countdown.value.start) {
        common_vendor.index.showModal({
          title: "提示",
          content: "订单支付已超时",
          showCancel: false,
          success: function(res) {
            if (res.confirm) {
              common_vendor.index.navigateBack();
            }
          }
        });
      }
    }
    function submit() {
      alertDialog.value.open();
    }
    function dialogConfirm() {
      if (isClick.value == true) {
        return;
      } else {
        isClick.value = true;
        common_vendor.index.showLoading({
          title: "支付中..."
        });
        goPayForOrder();
      }
    }
    function goPayForOrder() {
      common_hotel.payForOrder(orderId.value).then((res) => {
        isClick.value = false;
        if (res.data.weixinData) {
          wePay(res.data.weixinData);
        } else {
          common_vendor.index.hideLoading();
          common_vendor.index.showModal({
            title: "提示",
            content: "暂时无法支付,请稍后重试",
            showCancel: false,
            success: function(res2) {
              common_vendor.index.navigateBack();
            }
          });
        }
      });
    }
    function wePay(configdata) {
      common_vendor.index.requestPayment({
        "provider": "wxpay",
        "appId": configdata.appId,
        "nonceStr": configdata.nonceStr,
        "package": configdata.packageValue,
        // 随机字符串
        "timeStamp": configdata.timeStamp,
        // 时间戳(单位:秒)
        "signType": configdata.signType,
        // 签名,这里用的 MD5/RSA 签名
        "paySign": configdata.paySign,
        success(res) {
          alertPayOk.value.open();
          common_vendor.index.hideLoading();
        },
        fail(e) {
          common_vendor.index.showToast({
            title: "支付取消",
            icon: "none",
            duration: 2e3
          });
        }
      });
    }
    function dialogClose() {
      alertDialog.value.close();
      lockPay.value = false;
    }
    function goBillDetail() {
      let path = `/pages_hotel/hotel/myBills`;
      common_vendor.index.redirectTo({
        url: path
      });
    }
    function goBack() {
      common_vendor.index.navigateBack();
    }
    return (_ctx, _cache) => {
      return common_vendor.e({
        a: common_vendor.t(common_vendor.unref(money)),
        b: common_vendor.o(timeup),
        c: common_vendor.p({
          color: "#999",
          splitorColor: "#999",
          ["show-day"]: false,
          ["show-hour"]: true,
          start: true,
          minute: countdown.value.minute,
          second: countdown.value.second
        }),
        d: common_assets._imports_0,
        e: common_vendor.o(payChange),
        f: !common_vendor.unref(isClick)
      }, !common_vendor.unref(isClick) ? {
        g: common_vendor.o(submit)
      } : {}, {
        h: common_vendor.o(dialogConfirm),
        i: common_vendor.o(dialogClose),
        j: common_vendor.p({
          type: "info",
          cancelText: "取消",
          confirmText: "确定",
          content: "是否确认支付?"
        }),
        k: common_vendor.sr(alertDialog, "915fe373-1", {
          "k": "alertDialog"
        }),
        l: common_vendor.p({
          type: "dialog"
        }),
        m: common_vendor.o(goBillDetail),
        n: common_vendor.o(goBack),
        o: common_vendor.p({
          type: "success",
          confirmText: "查看订单详情",
          cancelText: "继续预订",
          content: "支付成功"
        }),
        p: common_vendor.sr(alertPayOk, "915fe373-3", {
          "k": "alertPayOk"
        }),
        q: common_vendor.p({
          type: "dialog"
        }),
        r: common_vendor.o(goBillDetail),
        s: common_vendor.o(goBillDetail),
        t: common_vendor.p({
          type: "error",
          confirmText: "查看订单详情",
          content: "支付失败"
        }),
        v: common_vendor.sr(alertPayWrong, "915fe373-5", {
          "k": "alertPayWrong"
        }),
        w: common_vendor.p({
          type: "dialog"
        })
      });
    };
  }
};
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-915fe373"], ["__file", "/Users/yangyang/project/j-mini/Venue/pages_hotel/hotel/pay.vue"]]);
wx.createPage(MiniProgramPage);