cardNoPay.js 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. const app = getApp()
  2. const api = require('../../../../../request/api');
  3. const http = require('../../../../../request/http');
  4. const utils = require('../../../../../utils/util.js');
  5. const storeKeys = require('../../../../../utils/storageKeys.js');
  6. Page({
  7. data: {
  8. isLoading:true,
  9. isIphoneX: app.globalData.isIphoneX,
  10. orderId: "", //订单id
  11. countdownTime:'30分00秒',
  12. timer:null,
  13. },
  14. onLoad: function (options) {
  15. if (options) {
  16. this.data.orderId = options.orderId || "";
  17. }
  18. this.getOrderDetails()
  19. },
  20. //获取礼品卡订单详情
  21. getOrderDetails() {
  22. wx.showLoading({
  23. title: "加载中",
  24. mask: true
  25. });
  26. http.request({
  27. url: api.URL + "/api/order.RiceCardOrder/detail&order_id=" + this.data.orderId,
  28. token: utils.getStorageSync(storeKeys.TOKEN),
  29. method: 'GET',
  30. success: (res) => {
  31. wx.hideLoading();
  32. let detail = res.data.data.detail || {};
  33. console.log(res)
  34. if(detail.pay_status==0 && detail.order_status==10 && detail.djs_time>0){
  35. this.countdown(detail.djs_time)
  36. }
  37. this.setData({
  38. detail,
  39. isLoading: false
  40. });
  41. },
  42. error: (res) => {}
  43. })
  44. },
  45. countdown(times){
  46. this.data.timer = setInterval(()=> {
  47. let minute = 0, second = 0;
  48. if (times > 0) {
  49. minute = Math.floor(times / 60);
  50. second = Math.floor(times - minute*60);
  51. } else {
  52. clearInterval(this.data.timer);
  53. utils.toast("订单已关闭")
  54. wx.navigateBack({
  55. delta: 1
  56. })
  57. }
  58. if(minute<10){
  59. minute = '0' + minute
  60. }
  61. if(second<10){
  62. second = '0' + second
  63. }
  64. times--;
  65. this.setData({
  66. countdownTime: minute + '分' + second + '秒'
  67. })
  68. }, 1000);
  69. },
  70. commit: utils.throttle(function (e) {
  71. wx.showLoading({
  72. title: "加载中"
  73. });
  74. let data = {
  75. lob_type: "rice_card", //礼品卡固定为 rice_card
  76. order_id: this.data.orderId //礼品卡id
  77. }
  78. http.request({
  79. url: api.URL + '/api/pay/repay',
  80. method: 'POST',
  81. token: utils.getStorageSync(storeKeys.TOKEN),
  82. data: data,
  83. success: (res) => {
  84. wx.hideLoading();
  85. console.log(res)
  86. if (res.data.data.pay_type == 20) {
  87. this.wxPayment(res.data.data.payment);
  88. }
  89. },
  90. error: (res) => {},
  91. })
  92. }, 800),
  93. //调起微信支付
  94. wxPayment(data) {
  95. let _this = this;
  96. wx.requestPayment({
  97. nonceStr: data.nonceStr,
  98. package: 'prepay_id=' + data.prepay_id,
  99. paySign: data.paySign,
  100. signType: "MD5",
  101. timeStamp: data.timeStamp,
  102. success(res) {
  103. console.log(res)
  104. if (res.errMsg == "requestPayment:ok") {
  105. utils.toast('支付成功');
  106. wx.redirectTo({
  107. url: "/pages/index/pages/riceCard/cardPaySuccess/cardPaySuccess?orderId=" + _this.data.orderId
  108. })
  109. }
  110. },
  111. fail(res) {
  112. if (res.errMsg == "requestPayment:fail cancel") {
  113. utils.toast('已取消支付');
  114. _this.getOrderDetails()
  115. }
  116. }
  117. })
  118. },
  119. onHide: function () {
  120. clearInterval(this.data.timer);
  121. this.data.timer = null
  122. },
  123. onUnload: function () {
  124. clearInterval(this.data.timer);
  125. this.data.timer = null
  126. },
  127. })