// pages/chargemoney/chargemoney.js
let log = require('../../utils/log.js');
Page({

  /**
   * 页面的初始数据
   */
  data: {
    chargemoney_select: null,
    userInfo: {},
    isLogin: false
  },
  bindMoneyTap(e) {
    let chargemoney_select = e.currentTarget.id;
    this.setData({
      chargemoney_select
    });
  },
  saveMoney(e) {
    //console.log(e);
    let chargemoney_select = e.detail.value;
    this.setData({
      chargemoney_select
    });
  },
  beginChargemoney(e){

    let that = this
    wx.showModal({
      title: '',
      content: '每日退款最大额度为500元,您是否确认本次充值为' + this.data.chargemoney_select + '元?',
      confirmColor:'#00AADD',
      success(res) {
       if (res.confirm) {
        that.beginChargemoneySuccess(e);
       } else if (res.cancel) {
        wx.showToast({
          title: '充值已取消',
          icon: 'error',
          duration: 2000
         })
       }
      }
     })
  },
  beginChargemoneySuccess(e) {




    //console.log(this.data.chargemoney_select);
    log.info('[充值]', '[开始充值流程]');
    let that = this;

    if(that.data.userInfo==null ||that.data.userInfo=={} || that.data.userInfo.userId==null ){
      return 
    }

    if (this.data.chargemoney_select) {
      wx.showLoading({
        title: '充值中...',
        mask: true
      });
      log.info('[充值]', '[开始微信充值]', '[wx.login请求]');
      wx.login({
        success(res) {
          console.log(res);
          log.info('[充值]', '[开始微信充值]', '[wx.login响应]', res);
          if (res.code) {
            // 发起网络请求
            log.info('[充值]', '[服务端微信充值]', '[请求]', {
              //outTradeNo: new Date().getTime(), //订单号
              totalFee: that.data.chargemoney_select, //钱
              //totalFee:0.01,
              code: res.code,
              userId: that.data.userInfo.userId
            });
            wx.request({
              url: getApp().globalData.postHeadAgreement +'/restapi/wechatpay/dopaychargmoney',
              data: {
                //outTradeNo: new Date().getTime(), //订单号
                totalFee: that.data.chargemoney_select, //钱
                //totalFee:0.01,
                code: res.code,
                userId: that.data.userInfo.userId
              },
              header: {
                'content-type': 'application/x-www-form-urlencoded;charset=utf-8',
              },
              method: 'POST',
              success(res1) {
                log.info('[充值]', '[服务端微信充值]', '[响应]', res1.data);
                console.log(res1);
                if(res1.data.errCodeDes==2 && res1.data.bindingPhone==0 ){
                  wx.hideLoading();
                  wx.showModal({
                    title: '提示',
                    content: '您未绑定手机号,请重新登录后自动刷新绑定信息',
                    confirmText: '去登录',
                    showCancel:false,
                    confirmColor:'#00AADD',
                    success: function (res1) {
                      if (res1.confirm) {
                        wx.removeStorageSync('userInfo');
                        wx.removeStorageSync('isLogin');
                        let url = '/pages/login/phone_login/phone_login';
                        wx.redirectTo({
                          url
                        })
                      }
                    }
                  });
                  return;
                } else if(res1.data.processResult == 1){
                  wx.hideLoading();
                  wx.showModal({
                    content: res1.data.errCodeDes,
                    showCancel:false,
                    confirmColor:'#00AADD',
                  });
                  return;
                }
                log.info('[充值]', '[微信支付]', '[请求]', {
                  timeStamp: res1.data.timeStamp,
                  nonceStr: res1.data.nonceStr,
                  package: res1.data.package,
                  signType: res1.data.signType,
                  paySign: res1.data.paySign
                });
                wx.requestPayment({
                  timeStamp: res1.data.timeStamp,
                  nonceStr: res1.data.nonceStr,
                  package: res1.data.package,
                  signType: res1.data.signType,
                  paySign: res1.data.paySign,
                  success(res2) {
                    console.log(res2);
                    log.info('[充值]', '[微信支付]', '[响应]', res2);
                    log.info('[充值]', '[微信支付回调]', '[请求]', {
                      userId: that.data.userInfo.userId,
                      rechargeMoney: that.data.chargemoney_select
                      //rechargeMoney: 0.01,
                    });
                    wx.request({
                      url: getApp().globalData.postHeadAgreement +'/restapi/pileLog/wechatrechargeback',
                      data: {
                        userId: that.data.userInfo.userId,
                        rechargeMoney: that.data.chargemoney_select
                        //rechargeMoney: 0.01,
                      },
                      method: 'POST',
                      success(res3) {
                        wx.hideLoading();
                        let {
                          data
                        } = res3;
                        log.info('[充值]', '[微信支付回调]', '[响应]', data);
                        if (data && data.code == 200) {
                          wx.showModal({
                            showCancel: false,
                            content: '微信扣款成功,平台入账稍有延迟,请您确认余额更新后再启动充电。',
                            confirmColor:'#00AADD',
                          });
                          let url = `/pages/chargemoneyresult/chargemoneyresult?timeStamp=${res1.data.timeStamp}&money=${that.data.chargemoney_select}`;
                          wx.redirectTo({
                            url
                          })
                          log.info('[充值]', '[微信支付回调]', '[成功]');
                        } else {
                          wx.showModal({
                            showCancel: false,
                            content: '充值失败',
                            confirmColor:'#00AADD',
                          });
                          log.info('[充值]', '[微信支付回调]', '[失败data null||data.code<>200]', data);
                        }
                      }
                    });
                  },
                  fail(res3) {
                    wx.hideLoading();
                    console.log(res3);
                    log.info('[充值]', '[微信支付]', '[fail]', res3);
                  }
                });
              }
            });
          } else {
            wx.hideLoading();
            console.log('登录失败!' + res.errMsg)
            log.info('[充值]', '[开始微信充值]', '[wx.login响应失败code null]', res);
          }
        }
      })


    }
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function(options) {
    log.info('[充值]', '[页面加载完成]');
    let userInfo = wx.getStorageSync('userInfo');
    let isLogin = wx.getStorageSync('isLogin');
    // 页面显示
    if (userInfo && isLogin) {
      if(userInfo.bindingPhone==0){
        wx.showModal({
          title: '提示',
          content: '当前账户未绑定手机号,请您进行手机号绑定操作',
          showCancel:false,
          confirmText: '去绑定',
          confirmColor:'#00AADD',
          success: function (res1) {
              let url = `/pages/bindPhone/bindPhone`;
              wx.navigateTo({
                url
              });
          }
        })
        return;
      }
      //console.log(userInfo);
      //userInfo.flag = true;
      this.setData({
        userInfo: userInfo,
        isLogin: isLogin
      });
    }
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function() {

  }
})