<template name="payment-box">
  <view :class="['shareMsk', showBoxView ? '' : 'hide']" style="z-index: 999">
    <view
      :class="[
        'sharebox',
        showBoxView ? 'bounceInUp animated' : 'bounceOutDown animated',
      ]"
      style="height: auto"
    >
      <view class="uni-padding-wrap" style="z-index: 200">
        <view style="background: #fff; padding: 50rpx 0">
          <view class="uni-hello-text uni-center">{{ __("支付金额") }}</view>
          <view class="uni-h1 uni-center uni-common-mt"
            ><text class="rmbLogo">{{ __("￥") }}</text
            >{{ paymentDataDefault.orderSelMoneyAmount }}</view
          >
        </view>

        <view class="uni-list">
          <!-- <label
            class="uni-list-cell uni-list-cell-pd"
            v-if="
              defaultUserMoney &&
              paymentDataDefault.user_money &&
              blanceChannel.money
            "
          >
            <view>
              {{
                sprintf(__("账户余额 (￥%s)"), paymentDataDefault.user_money)
              }}
            </view>
            <view>
              <switch @change="switchMoney" />
            </view>
          </label> -->
          <!-- <label
            class="uni-list-cell uni-list-cell-pd"
            v-if="
              defaultUserMoney &&
              paymentDataDefault.user_points &&
              blanceChannel.points
            "
          >
            <view>
              {{
                sprintf(__("账户积分 (￥%s)"), paymentDataDefault.user_points)
              }}
            </view>
            <view>
              <switch @change="switchPoints" />
            </view>
          </label> -->

          <label
            class="uni-list-cell uni-list-cell-pd"
            v-if="
              defaultUserMoney &&
              paymentDataDefault.user_recharge_card &&
              blanceChannel.recharge_card
            "
          >
            <view>
              {{
                sprintf(
                  __("充值余额 (￥%s)"),
                  paymentDataDefault.user_recharge_card
                )
              }}
            </view>
            <view>
              <switch @change="switchRechargeCard" />
            </view>
          </label>

          <label
            class="uni-list-cell uni-list-cell-pd"
            v-if="
              defaultUserMoney && paymentDataDefault.user_sp && blanceChannel.sp
            "
          >
            <view>
              {{ sprintf(__("现金券 (￥%s)"), paymentDataDefault.user_sp) }}
            </view>
            <view>
              <switch @change="switchSp" />
            </view>
          </label>

          <label
            v-if="
              defaultUserMoney &&
              (userMoney || userPoints || userSp || userRechargeCard)
            "
            class="uni-list-cell uni-list-cell-pd"
            style="line-height: 50px; height: 50px; padding: 0rpx 30rpx"
          >
            <view>
              <input
                class="uni-input"
                password
                type="text"
                :placeholder="__('请输入支付密码')"
                name="password"
                :value="password"
                @input="passwordChange"
                style="width: 100%"
              />
            </view>
          </label>

          <!-- #ifdef MP-WEIXIN || MP-TOUTIAO -->
          <radio-group @change="paymentChange">
            <label
              class="uni-list-cell uni-list-cell-pd"
              v-for="(item, index) in providerList"
              v-if="$.inArray(h5WeChatMPpayList, item.id)"
              :key="index"
            >
              <view style="line-height: 35px; height: 35px">
                <image
                  :src="
                    '/static/images/pay_type/' +
                    (item.id == 'wxpay' ? 'wx_native' : item.id) +
                    '.png'
                  "
                  mode="heightFix"
                  style="height: 35px"
                ></image>
              </view>
              <view>
                <radio :value="index + ''" :checked="index == paymentIndex" />
              </view>
            </label>
          </radio-group>
          <!-- #endif -->

          <!-- #ifdef APP-PLUS -->
          <radio-group @change="paymentChange">
            <label
              class="uni-list-cell uni-list-cell-pd"
              v-for="(item, index) in providerList"
              :key="index"
            >
              <view style="line-height: 35px; height: 35px">
                <image
                  :src="
                    '/static/images/pay_type/' +
                    (item.id == 'wxpay' ? 'wx_native' : item.id) +
                    '.png'
                  "
                  mode="heightFix"
                  style="height: 35px"
                ></image>
              </view>
              <view>
                <radio
                  :value="index + ''"
                  :checked="index == paymentIndex ? true : false"
                />
              </view>
            </label>
          </radio-group>
          <!-- #endif -->

          <!-- #ifdef H5 -->
          <radio-group @change="paymentChange" v-if="isWeixin">
            <label
              class="uni-list-cell uni-list-cell-pd"
              v-for="(item, index) in providerList"
              v-if="$.inArray(h5WeChatpayList, item.id)"
              :key="index"
            >
              <view style="line-height: 35px; height: 35px">
                <image
                  :src="
                    '/static/images/pay_type/' +
                    (item.id == 'wxpay' ? 'wx_native' : item.id) +
                    '.png'
                  "
                  mode="heightFix"
                  style="height: 35px"
                ></image>
              </view>
              <view>
                <radio :value="index + ''" :checked="index == paymentIndex" />
              </view>
            </label>
          </radio-group>
          <radio-group @change="paymentChange" v-else>
            <label
              class="uni-list-cell uni-list-cell-pd"
              v-for="(item, index) in providerList"
              :key="index"
            >
              <view style="line-height: 35px; height: 35px">
                <image
                  :src="
                    '/static/images/pay_type/' +
                    (item.id == 'wxpay' ? 'wx_native' : item.id) +
                    '.png'
                  "
                  mode="heightFix"
                  style="height: 35px"
                ></image>
              </view>
              <view>
                <radio :value="index + ''" :checked="index == paymentIndex" />
              </view>
            </label>
          </radio-group>
          <!-- #endif -->
        </view>

        <view class="uni-btn-v uni-common-mt">
          <button type="primary" @tap="confirmPayment" :loading="loading">
            {{ __("确定支付") }}
          </button>
        </view>
      </view>
      <view
        class="uni-icon uni-icon-closeempty m-panel-sp-icon"
        color="#888"
        @click="cancel"
      ></view>
    </view>
  </view>
</template>


<script>
import { mapState, mapMutations } from "vuex";

// #ifdef H5

import wPay from "../helpers/pPay";

// #endif

export default {
  name: "payment-box",
  props: {
    order_id: {
      type: String,
      default: "",
    },
    kind: {
      type: String,
      default: "order", //favorable
    },
    defaultUserMoney: {
      type: Boolean,
      default: true,
    },
    paymentDataDefault: {
      type: Object,
      default() {
        return {
          order_id: "",
          orderSelMoneyAmount: 0,
          user_money: 0,
          user_points: 0,
          user_recharge_card: 0,
          user_sp: 0,
          //openid: app.globalData.userInfo.openId,
          //typ: 'json',
          //payment_channel_code: 'wx_native',
          //prepay_flag: 1
        };
      },
    },
  },
  data() {
    return {
      loading: false,
      // h5payList:['paypal', 'redsys', 'payu', 'ccav','alipay'],
      h5payList: ["paypal", "redsys", "payu", "ccav"],
      h5WeChatpayList: ["wxpay"],
      h5WeChatMPpayList: ["wxpay"],
      providerList: [
        {
          name: "支付宝",
          id: "alipay",
          loading: false,
        },
        {
          name: "微信",
          id: "wxpay",
          loading: false,
        },
        {
          name: "Paypal",
          id: "paypal",
          loading: false,
        },
        {
          name: "Redsys",
          id: "redsys",
          loading: false,
        },
        {
          name: "Payu",
          id: "payu",
          loading: false,
        },
        {
          name: "Ccav",
          id: "ccav",
          loading: false,
        },
        {
          name: "Cash on delivery",
          id: "offline",
          loading: false,
        } /*,{
									name: '百度',
									id: 'baidu',
									loading: false
								}*/,
      ],
      blanceChannel: {
        money: false,
        points: false,
        recharge_card: false,
        sp: false,
      },
      showBoxView: false,
      userMoney: false,
      userPoints: false,
      userRechargeCard: false,
      userSp: false,
      password: "", //支付密码
      paymentIndex: 1,
      isWeixin: false,
    };
  },
  computed: mapState([
    "Config",
    "StateCode",
    "notice",
    "plantformInfo",
    "shopInfo",
    "userInfo",
    "hasLogin",
  ]),
  created: function () {
    let that = this;
    // #ifdef APP-PLUS
    uni.getProvider({
      service: "payment",
      success: (e) => {
        //console.log("payment success", e);
        this.providerList = e.provider.map((value) => {
          switch (value) {
            case "alipay":
              return {
                name: "支付宝",
                id: value,
                loading: false,
              };
            case "wxpay":
              return {
                name: "微信",
                id: value,
                loading: false,
              }; /*
							case 'baidu':
								return {
									name: '百度',
									id: value,
									loading: false
								}*/
          }
        });

        this.providerList.push({
          name: "Paypal",
          id: "paypal",
          loading: false,
        });

        this.providerList.push({
          name: "Redsys",
          id: "redsys",
          loading: false,
        });

        this.providerList.push({
          name: "Payu",
          id: "payu",
          loading: false,
        });

        this.providerList.push({
          name: "Ccav",
          id: "ccav",
          loading: false,
        });

        this.providerList.push({
          name: "Cash on delivery",
          id: "offline",
          loading: false,
        });
      },
      fail: (e) => {
        //console.log("获取登录通道失败：", e);
      },
    });
    // #endif

    // #ifdef H5
    if (that.$.isWeixin()) {
      this.setData({ isWeixin: true });
    } else {
    }
    // #endif

    //处理有效的支付方式
    setTimeout(() => {
      this.getPlantformInfo((plantformInfo) => {
        if (typeof plantformInfo.payment_channel_code_row != "undefined") {
          var tk = this.providerList.length;

          while (tk--) {
            let tmp_code = this.providerList[tk].id;

            //如果启用了支付方式
            if (
              that.$.inArray(plantformInfo.payment_channel_code_row, tmp_code)
            ) {
            } else {
              //删除
              this.providerList.splice(tk, 1);
            }
          }

          //判断余额支付途径blanceChannel

          let tmpList = ["money", "points", "recharge_card", "sp"];

          for (var tk in tmpList) {
            //如果启用了支付方式
            if (
              that.$.inArray(
                plantformInfo.payment_channel_code_row,
                tmpList[tk]
              )
            ) {
              this.blanceChannel[tmpList[tk]] = true;
            } else {
              //删除
              this.blanceChannel[tmpList[tk]] = false;
            }
          }

          //this.$forceUpdate();
        }
      });
    }, 200);
  },
  methods: {
    ...mapMutations([
      "login",
      "logout",
      "getPlantformInfo",
      "forceUserInfo",
      "getUserInfo",
    ]),
    confirmPayment(e) {
      let that = this;
      if (
        (this.userMoney ||
          this.userPoints ||
          this.userSp ||
          this.userRechargeCard) &&
        !this.password
      ) {
        that.$.showModal({
          content: that.__("请输入余额支付密码！"),
          showCancel: false,
        });

        return;
      }
      // #ifdef APP-PLUS
      if (
        that.$.inArray(this.h5payList, this.providerList[this.paymentIndex].id)
      ) {
        this.h5OldPay(this.providerList[this.paymentIndex], this.paymentIndex);
      } else {
        this.requestPayment(
          this.providerList[this.paymentIndex],
          this.paymentIndex
        );
      }
      // #endif

      // #ifdef MP-WEIXIN
      wx.login({
        success: (res) => {
          // 登录注册接口
          if (res.code) {
            // 调用服务端登录接口，发送 res.code 到服务器端换取 openId, sessionKey, unionId并存入数据库中
            let params = { code: res.code };

            that.$.request({
              url: that.cf.URL.get_miniapp_open_id,
              data: params,
              success: (data, status, msg, code) => {
                that.weixinPay(data.openid);
              },
              fail: (err, status) => {
                ////console.info(err);
                ////console.info(status);
              },
            });
          } else {
            that.$.showModal({
              content: that.__("授权失败"),
              showCancel: false,
            });
          }
        },
      });
      // #endif

      // #ifdef H5
      if (that.$.isWeixin()) {
        this.mpPay();
      } else {
        if (this.providerList[this.paymentIndex].id == "wxpay") {
          //this.h5OldPay(this.providerList[this.paymentIndex], this.paymentIndex)
          this.h5Pay(this.providerList[this.paymentIndex], this.paymentIndex);
        } else if (
          that.$.inArray(
            this.h5payList,
            this.providerList[this.paymentIndex].id
          )
        ) {
          this.h5OldPay(
            this.providerList[this.paymentIndex],
            this.paymentIndex
          );
        } else {
          this.h5Pay(this.providerList[this.paymentIndex], this.paymentIndex);
        }
      }
      // #endif

      // #ifdef MP-BAIDU
      this.baiduPay();
      // #endif
    },
    switchMoney(e) {
      // #ifdef MP_BAIDU
      this.userMoney = e.detail.checked;
      // #endif

      // #ifndef MP_BAIDU
      this.userMoney = e.detail.value;
      // #endif
    },

    switchPoints(e) {
      // #ifdef MP_BAIDU
      this.userPoints = e.detail.checked;
      // #endif

      // #ifndef MP_BAIDU
      this.userPoints = e.detail.value;
      // #endif
    },

    switchRechargeCard(e) {
      // #ifdef MP_BAIDU
      this.userRechargeCard = e.detail.checked;
      // #endif

      // #ifndef MP_BAIDU
      this.userRechargeCard = e.detail.value;
      // #endif
    },

    switchSp(e) {
      // #ifdef MP_BAIDU
      this.userSp = e.detail.checked;
      // #endif

      // #ifndef MP_BAIDU
      this.userSp = e.detail.value;
      // #endif
    },

    passwordChange(e) {
      this.password = e.target.value;
    },

    paymentChange(e) {
      //console.log("type:" + e.detail.value);
      let payment_index = parseInt(e.detail.value);
      this.paymentIndex = payment_index;
    },
    async weixinPay(openid) {
      let that = this;
      //console.log("发起支付");
      this.loading = true;

      let result = await this.getOrderInfo("wxpay", openid);
      let orderInfo = result.data;

      if (result.status !== 200) {
        if (result.code == 101) {
          that.$.showModal({
            title: that.__("提示"),
            content: that.__("未设置支付密码，去设置？"),
            success: (res) => {
              if (res.confirm) {
                let redirect_url = "/member/member/paypwd";
                that.$.gopage(redirect_url);
              } else if (res.cancel) {
              }
            },
          });
        } else {
          that.$.showModal({
            content: result.msg || that.__("获得订单信息失败"),
            showCancel: false,
          });
        }

        this.loading = false;
        return;
      } else {
      }

      if (orderInfo.paid) {
        this.loading = false;

        setTimeout(() => {
          this.$emit("onPaid", orderInfo);
        }, 1000);
      } else {
        let paymentData = orderInfo.data;
        that.$.requestPayment({
          timeStamp: paymentData.timeStamp + "",
          nonceStr: paymentData.nonceStr,
          package: paymentData.package,
          signType: paymentData.signType,
          paySign: paymentData.paySign,
          success: (res) => {
            setTimeout(() => {
              this.$emit("onPaid", orderInfo);
            }, 1000);
          },
          fail: (res) => {
            that.$.showModal({
              content: that.__("支付失败"),
              showCancel: false,
            });

            this.$emit("onFail");
          },
          complete: () => {
            this.loading = false;
          },
        });
      }
    },
    async baiduPay() {
      let that = this;
      //console.log("发起支付");
      this.loading = true;

      let result = await this.getOrderInfo("baidu");
      let orderInfo = result.data;

      if (result.status !== 200) {
        //console.log("获得订单信息失败", orderInfo);
        if (result.code == 101) {
          that.$.showModal({
            title: that.__("提示"),
            content: that.__("未设置支付密码，去设置？"),
            success: (res) => {
              if (res.confirm) {
                let redirect_url = "/member/member/paypwd";
                that.$.gopage(redirect_url);
              } else if (res.cancel) {
              }
            },
          });
        } else {
          that.$.showModal({
            content: result.msg || that.__("获得订单信息失败"),
            showCancel: false,
          });
        }

        this.loading = false;
        return;
      } else {
      }

      if (orderInfo.paid) {
        this.loading = false;
        setTimeout(() => {
          this.$emit("onPaid", orderInfo);
        }, 1000);
      } else {
        let paymentData = orderInfo.data;
        that.$.requestPayment({
          timeStamp: paymentData.timeStamp,
          nonceStr: paymentData.nonceStr,
          package: paymentData.package,
          signType: "MD5",
          paySign: paymentData.paySign,
          success: (res) => {
            setTimeout(() => {
              this.$emit("onPaid", orderInfo);
            }, 1000);
          },
          fail: (res) => {
            ////console.info(res.errMsg);
            that.$.showModal({
              content: that.__("支付失败"),
              showCancel: false,
            });

            this.$emit("onFail");
          },
          complete: () => {
            this.loading = false;
          },
        });
      }
    },

    async requestPayment(e, index) {
      let that = this;

      this.loading = true;
      this.providerList[index].loading = true;
      let result = await this.getOrderInfo(e.id);
      let orderInfo = result.data;

      if (result.status !== 200) {
        //console.log("获得订单信息失败", orderInfo);
        if (result.code == 101) {
          that.$.showModal({
            title: that.__("提示"),
            content: that.__("未设置支付密码，去设置？"),
            success: (res) => {
              if (res.confirm) {
                let redirect_url = "/member/member/paypwd";
                that.$.gopage(redirect_url);
              } else if (res.cancel) {
              }
            },
          });
        } else {
          that.$.showModal({
            content: result.msg || that.__("获得订单信息失败"),
            showCancel: false,
          });
        }

        this.loading = false;
        return;
      } else {
      }

      if (orderInfo.paid) {
        this.loading = false;

        setTimeout(() => {
          this.$emit("onPaid", orderInfo);
        }, 1000);
      } else {
        let pay_params = Object.assign({}, orderInfo.data);
        delete pay_params["order_id"];

        pay_params["partnerid"] = pay_params["partnerid"] + "";
        pay_params["timestamp"] = pay_params["timestamp"] + "";

        that.$.requestPayment({
          provider: e.id,
          orderInfo: e.id == "alipay" ? orderInfo.data : pay_params,
          success: (e) => {
            //console.log("success", e);
            //进入订单页面

            setTimeout(() => {
              this.$emit("onPaid", orderInfo);
            }, 1000);
          },
          fail: (e) => {
            //console.log("fail", e);
            that.$.showModal({
              content: that.__("支付失败"),
              showCancel: false,
            });

            this.$emit("onFail");
          },
          complete: () => {
            this.loading = false;
            this.providerList[index].loading = false;
          },
        });
      }
    },
    async h5OldPay(e, index) {
      let that = this;
      //console.log("发起支付");
      this.loading = true;
      this.providerList[index].loading = true;

      //页面直接跳转支付模式
      var id = uni.getStorageSync("uid");
      var key = uni.getStorageSync("ukey");

      let appid = "";
      let payment_channel_code = e.id;

      if (e.id == "wxpay") {
        payment_channel_code = "wx_native";
      }

      var pm_money = 0;
      var pm_recharge_card = 0;
      var pm_points = 0;
      var pm_credit = 0;

      var password = this.password;
      var pay_sn = this.order_id;

      if (this.userMoney) {
        pm_money = this.paymentDataDefault.orderSelMoneyAmount;
      }

      let params = {
        perm_id: id,
        perm_key: key,

        pay_sn: pay_sn,
        password: password,
        pm_recharge_card: pm_recharge_card,
        pm_money: pm_money,
        pm_points: pm_points,
        pm_credit: pm_credit,
        payment_channel_code: payment_channel_code,
        mp_flag: 0,
        old_mp_flag: 1,
        appid: appid,
        typ: "e",
      };

      // #ifdef H5
      /*
       */
      // #endif

      //let url = that.$.createUrl(that.cf.URL.pay.pay, {key:key,pay_sn:pay_sn,password:password,pm_recharge_card:pm_recharge_card,pm_money:pm_money,pm_points:pm_points,pm_credit:pm_credit,payment_channel_code:payment_channel_code, mp_flag:isWeixin()?1:0, old_mp_flag:1});
      let url = that.$.createUrl(that.cf.URL.pay.pay, params);

      // #ifdef APP-PLUS
      that.$.gotopage("/pagesub/webpage/webpage?u=" + encodeURIComponent(url));

      /*
				that.$.showModal({
					title: that.__('提示'),
					content: that.__('是否支付完成？'),
					success: res => {
						if (res.confirm) {
							let redirect_url = '/member/order/detail?on=' + that.order_id;
						that.$.gopage(redirect_url);

						} else if (res.cancel) {
							let redirect_url = '/member/order/detail?on=' + that.order_id;
						that.$.gopage(redirect_url);
						}

					}
				});
				*/
      // #endif

      // #ifdef H5
      that.$.showModal({
        title: that.__("提示"),
        content: that.__("是否支付完成？"),
        success: (res) => {
          if (res.confirm) {
            let redirect_url =
              that.cf.SiteUrl + "/h5/member/order/detail?on=" + that.order_id;

            if (that.kind == "order") {
            } else if (that.kind == "favorable") {
              redirect_url =
                that.cf.SiteUrl +
                "/h5/chain/chain/favorabledetail?order_id=" +
                that.order_id;
            } else {
            }

            window.location.href = redirect_url;
          } else if (res.cancel) {
            let redirect_url =
              that.cf.SiteUrl + "/h5/member/order/detail?on=" + that.order_id;
            if (that.kind == "order") {
            } else if (that.kind == "favorable") {
              redirect_url =
                that.cf.SiteUrl +
                "/h5/chain/chain/favorabledetail?order_id=" +
                that.order_id;
            } else {
            }

            window.location.href = redirect_url;
          }
        },
      });

      window.location.href = url;
      // #endif
    },
    async h5Pay(e, index) {
      let that = this;
      //console.log("发起支付");
      this.loading = true;
      this.providerList[index].loading = true;

      let result = await this.getOrderInfo(e.id);
      let orderInfo = result.data;

      if (result.status !== 200) {
        //console.log("获得订单信息失败", orderInfo);
        if (result.code == 101) {
          that.$.showModal({
            title: that.__("提示"),
            content: that.__("未设置支付密码，去设置？"),
            success: (res) => {
              if (res.confirm) {
                let redirect_url = "/member/member/paypwd";
                that.$.gopage(redirect_url);
              } else if (res.cancel) {
              }
            },
          });
        } else {
          that.$.showModal({
            content: result.msg || that.__("获得订单信息失败"),
            showCancel: false,
          });
        }

        this.loading = false;
        return;
      } else {
      }

      if (orderInfo.paid) {
        this.loading = false;

        setTimeout(() => {
          this.$emit("onPaid", orderInfo);
        }, 1000);
      } else {
        that.$.showModal({
          title: that.__("提示"),
          content: that.__("是否支付完成？"),
          success: (res) => {
            if (res.confirm) {
              setTimeout(() => {
                this.$emit("onPaid", orderInfo);
              }, 1000);
            } else if (res.cancel) {
              this.$emit("onFail");
            }
          },
        });

        if (e.id == "alipay") {
          window.location.href = orderInfo.mweb_url;
          //window.open(orderInfo.data.mweb_url);
        } else {
          let redirect_url =
            that.cf.SiteUrl +
            "/h5/member/order/detail?init_pay_flag=1&on=" +
            that.order_id;
          if (that.kind == "order") {
          } else if (that.kind == "favorable") {
            redirect_url =
              that.cf.SiteUrl +
              "/h5/chain/chain/favorabledetail?init_pay_flag=1&order_id=" +
              that.order_id;
          } else {
          }

          //页面已经跳转走了
          window.location.href =
            orderInfo.mweb_url +
            "&redirect_url=" +
            encodeURIComponent(redirect_url);

          //window.open(orderInfo.data.mweb_url);
          //that.$.gopage("/pagesub/webpage/webpage?u=" + encodeURIComponent(orderInfo.data.mweb_url) + "&tn=" + '在线支付' + "&tc=" + '#f30213' + "&tb=" + 'white')
        }
        /*
					wPay({
						appId:orderInfo.data.appId,
						timeStamp:orderInfo.data.timeStamp,
						nonceStr:orderInfo.data.nonceStr,
						signature:orderInfo.data.signType,
						package:orderInfo.data.package,
						paySign:orderInfo.data.paySign
					},res=>{
						//console.log('调用成功!');
						//进入订单页面

						//console.log("success", res);
						this.$emit('onPaid', orderInfo);

					},fail=>{
						//console.log('调用失败!');
						that.$.showModal({
							content: "支付失败,原因为: " + fail,
							showCancel: false
						})

						this.$emit('onFail');
					})
                    */
      }

      this.loading = false;
    },
    async mpPay() {
      let that = this;
      //console.log("发起支付");
      this.loading = true;
      let result = await this.getOrderInfo("wxpay");
      let orderInfo = result.data;
      if (result.status !== 200) {
        ////console.log("获得订单信息失败", orderInfo);
        if (result.code == 101) {
          that.$.showModal({
            title: that.__("提示"),
            content: that.__("未设置支付密码，去设置？"),
            success: (res) => {
              if (res.confirm) {
                let redirect_url = "/member/member/paypwd";
                that.$.gopage(redirect_url);
              } else if (res.cancel) {
              }
            },
          });
        } else {
          that.$.showModal({
            content: result.msg || that.__("获得订单信息失败"),
            showCancel: false,
          });
        }

        this.loading = false;
        return;
      } else {
      }

      if (orderInfo.paid) {
        this.loading = false;

        setTimeout(() => {
          this.$emit("onPaid", orderInfo);
        }, 1000);
      } else {
        wPay(
          {
            appId: orderInfo.data.appId,
            timeStamp: orderInfo.data.timeStamp,
            nonceStr: orderInfo.data.nonceStr,
            signature: orderInfo.data.signType,
            package: orderInfo.data.package,
            paySign: orderInfo.data.paySign,
          },
          (res) => {
            //console.log('调用成功!');
            //进入订单页面

            //console.log("success", res);
            setTimeout(() => {
              this.$emit("onPaid", orderInfo);
            }, 1000);
          },
          (fail) => {
            //console.log('调用失败!');
            //console.info(fail)
            that.$.showModal({
              content: that.__("支付失败"),
              showCancel: false,
            });

            this.$emit("onFail");
          }
        );
      }
    },
    getOrderInfo(payment_channel_code, openid) {
      let that = this;
      if (payment_channel_code == "wxpay") {
        payment_channel_code = "wx_native";
      }

      let appid = "";
      // #ifdef APP-PLUS
      appid = plus.runtime.appid;
      // #endif

      var pm_money = 0;
      var pm_recharge_card = 0;
      var pm_points = 0;
      var pm_sp = 0;
      var pm_credit = 0;

      var password = this.password;
      var pay_sn = this.order_id;

      if (this.userMoney) {
        pm_money = this.paymentDataDefault.orderSelMoneyAmount;
      }

      if (this.userPoints) {
        pm_points = this.paymentDataDefault.user_points;
      }

      if (this.userSp) {
        pm_sp = this.paymentDataDefault.user_sp;
      }

      if (this.userRechargeCard) {
        pm_recharge_card = this.paymentDataDefault.user_recharge_card;
      }

      let params = {
        pay_sn: pay_sn,
        password: password,
        pm_recharge_card: pm_recharge_card,
        pm_money: pm_money,
        pm_points: pm_points,
        pm_sp: pm_sp,
        pm_credit: pm_credit,
        payment_channel_code: payment_channel_code,
        appid: appid,
        typ: "json",
      };

      // #ifdef APP-PLUS
      params["prepayapp_flag"] = 1;
      // #endif

      // #ifdef MP-WEIXIN
      params["prepay_flag"] = 1;
      params["openid"] = openid;
      // #endif

      // #ifdef H5

      if (that.$.isWeixin()) {
        params["mp_flag"] = 1;
        //params['openid'] = 'ouUkf1br8vToo1Vcv6HFH7KIo6cc';
      } else {
        //H5支付 微信
        params["return_flag"] = 1;
      }
      // #endif

      //service="mobile.securitypay.pay"&partner="2088801273866834"&_input_charset="UTF-8"&out_trade_no="20181129031841"&subject="DCloud项目捐赠"&payment_type="1"&seller_id="payservice@dcloud.io"&total_fee="3000"&body="DCloud致力于打造HTML5最好的移动开发工具，包括终端的Runtime、云端的服务和IDE，同时提供各项配套的开发者服务。"&it_b_pay="1d"&notify_url="http%3A%2F%2Fdemo.dcloud.net.cn%2Fpayment%2Falipay%2Fnotify.php"&show_url="http%3A%2F%2Fwww.dcloud.io%2Fhelloh5%2F"&sign="Ojlg1pvDmeQmxKN6qFbaD5tZcczgYzk6cX%2BegyrZZEOaBL80SgqUfWzKEikTE8XPQJdxnnU2xagm6SDAZvwOey4qa3G8CiqOgqzUO8KqeI0wTeR9mFnSSpp4ryYUAZtAS0SrWQGyII495QrSIx8KUXDwpZxH%2B0vsUwhSyDkn3kE%3D"&sign_type="RSA"

      //let url = 'https://demo.dcloud.net.cn/payment/?payid=' + payment_channel_code + '&appid=' + appid + '&total=' + this.paymentDataDefault.orderSelMoneyAmount;

      //https://test.lancerdt.com/account.php?mdu=pay&ctl=Index&met=pay&typ=e&pay_sn=DD-20181129-0018&pm_money=3000&payment_channel_code=alipay&typ=json&prepayapp_flag=1

      let url = that.cf.URL.pay.pay;

      //{"appid":"wx39a789a2c2e9d1ac","mch_id":"1520245101","nonce_str":"2mFpZIFD9VzIUAmo","prepay_id":"wx1318442576437937eafeb42c3513644326","result_code":"SUCCESS","return_code":"SUCCESS","return_msg":"OK","sign":"F83A49271D28A1AD69539FAF3673683B","trade_type":"APP"}
      //{"appid":"wx0411fa6a39d61297","noncestr":"t95SPe2hPH55FfDX","package":"Sign=WXPay","partnerid":"1230636401","prepayid":"wx29184042096932459d81b5751913682286","timestamp":1543488042,"sign":"F6F25E7BADD5C59EF267928EE3456FE6"}
      return new Promise((res) => {
        that.$.request({
          url: url,
          data: params,
          success: (data, status, msg, code) => {
            res({ data: data, status: status, msg: msg, code: code });
          },
          fail: (err, status) => {
            //console.info(err);
            //console.info(status);
            res({ data: err, status: status });
          },
        });
      });
    },
    cancel() {
      this.setData({
        showBoxView: false,
      });
      //this.$emit('onCancel');
    },
    show() {
      let that = this;

      setTimeout(() => {
        this.setData({
          showBoxView: true,
        });

        //完成支付事件
        if (that.paymentDataDefault.orderSelMoneyAmount <= 0) {
          let orderInfo = {};

          setTimeout(() => {
            that.$emit("onPaid", orderInfo);
          }, 1000);
        }
      }, 10);
    },
  },
};
</script>

<style>
.m-panel-sp-icon {
  position: absolute;
  right: 20rpx;
  top: 10rpx;
}

.rmbLogo {
  font-size: 40rpx;
}
</style>
