C端小程序
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

224 行
5.9 KiB

  1. var config = require("../../../config/config.js");
  2. var app = getApp();
  3. const Http = require("../../../utils/HttpBasics");
  4. const util = require("../../../utils/util");
  5. Page({
  6. data: {
  7. data: {},
  8. couponId: null,
  9. orderId: "",
  10. day: "",
  11. hour: "",
  12. minute: ""
  13. },
  14. onLoad(options) {
  15. let that = this;
  16. console.log(options.id);
  17. console.log(options.targetAd);
  18. wx.showLoading({
  19. title: "加载中..."
  20. });
  21. if (options.flag) {
  22. this.orderFunc();
  23. } else {
  24. Http.get({
  25. url: config.api.couponDetail,
  26. data: {
  27. couponId: options.id,
  28. targetAd:options.targetAd
  29. }
  30. }).then(res => {
  31. console.log(res);
  32. //当前时间与优惠券下架时间做计算
  33. var startTime = util.fmtDate(res.data.sendEndDate);
  34. console.log(startTime);
  35. var s1 = new Date(startTime.replace(/-/g, "/"));
  36. var s2 = new Date();
  37. var runTime = parseInt((s1.getTime() - s2.getTime()) / 1000);
  38. var year = Math.floor(runTime / 86400 / 365);
  39. var runTime = runTime % (86400 * 365);
  40. var month = Math.floor(runTime / 86400 / 30);
  41. var runTime = runTime % (86400 * 30);
  42. var day = Math.floor(runTime / 86400);
  43. var runTime = runTime % 86400;
  44. var hour = Math.floor(runTime / 3600);
  45. var runTime = runTime % 3600;
  46. var minute = Math.floor(runTime / 60);
  47. var runTime = runTime % 60;
  48. var second = runTime;
  49. console.log(year, month, day, hour, minute, second);
  50. that.setData({
  51. year: year,
  52. month: month,
  53. day: day,
  54. hour: hour,
  55. minute: minute
  56. });
  57. console.log(that.data.day);
  58. wx.hideLoading();
  59. that.setData({
  60. data: res.data,
  61. couponId: options.id
  62. });
  63. });
  64. }
  65. },
  66. /**
  67. * 支付订单更新
  68. */
  69. payOrderUpdate: (orderId, payOrderId, status, reason) => {
  70. // 支付成功
  71. Http.post({
  72. url: config.api.payOrderUpdate,
  73. data: {
  74. payOrderId: payOrderId,
  75. orderId: orderId,
  76. status: status,
  77. reason: reason
  78. }
  79. })
  80. .then(res => {
  81. console.log("payOrderUpdate then", res);
  82. wx.showToast({
  83. title: "购买成功",
  84. duration: 2500
  85. });
  86. })
  87. .catch(err => {
  88. console.log("payOrderUpdate catch", err);
  89. });
  90. },
  91. payment: res => {
  92. var that = this;
  93. var payOrderId = "" + res.data.out_trade_no;
  94. wx.requestPayment({
  95. timeStamp: res.timeStamp,
  96. nonceStr: res.nonceStr,
  97. package: res.package,
  98. signType: "MD5",
  99. paySign: res.paySign,
  100. success: res => {
  101. that.payOrderUpdate(that.data.orderId, payOrderId, 1); // 支付成功
  102. console.log(res);
  103. console.log("支付成功");
  104. wx.showToast({
  105. title: "购买成功",
  106. duration: 2500
  107. });
  108. wx.navigateBack({
  109. delta: 2
  110. });
  111. },
  112. fail: res => {
  113. that.payOrderUpdate(that.data.orderId, payOrderId, 2); // 支付失败
  114. console.log(res);
  115. console.log("支付失败");
  116. return;
  117. },
  118. complete: res => {
  119. console.log(res);
  120. console.log("支付完成");
  121. var url = this.data.url;
  122. console.log("get url", url);
  123. if (res.errMsg == "requestPayment:ok") {
  124. wx.showModal({
  125. title: "提示",
  126. content: "支付成功"
  127. });
  128. if (url) {
  129. setTimeout(function() {
  130. wx.redirectTo({
  131. url: "/pages" + url
  132. });
  133. }, 2000);
  134. } else {
  135. setTimeout(() => {
  136. wx.navigateBack();
  137. }, 2000);
  138. }
  139. } else {
  140. wx.showModal({
  141. title: "错误提示",
  142. content: res.errMsg
  143. });
  144. }
  145. return;
  146. }
  147. });
  148. },
  149. orderFunc() {
  150. var that = this;
  151. wx.showLoading({
  152. title: "加载中..."
  153. });
  154. if (that.data.type == 5) {
  155. // 领取 5.停车券
  156. // TODO 选取用户下的车牌
  157. } else {
  158. Http.post({
  159. url: config.api.checkPhoneStatus,
  160. data: {}
  161. })
  162. .then(res => {
  163. return Http.post({
  164. url: config.api.orderSave,
  165. data: {
  166. couponId: that.data.couponId
  167. }
  168. });
  169. })
  170. .catch(err => {
  171. console.log(err);
  172. if (err.code == 11005) {
  173. // 用户手机未授权
  174. wx.redirectTo({
  175. url: "../../getphoneInfo/index?couponId=" + that.data.couponId
  176. });
  177. }
  178. if (err.code == 11006) {
  179. // 用户手机已加密
  180. wx.redirectTo({
  181. url: "../../phoneinput/phoneinput?couponId=" + that.data.couponId
  182. });
  183. }
  184. })
  185. .then(res => {
  186. if (res != "undefined") {
  187. const orderId = "" + res.data.id;
  188. that.setData({
  189. orderId: orderId
  190. });
  191. if (res.data.payment > 0) {
  192. // 支付金额不为0
  193. Http.post({
  194. url: config.api.payOrderCreate,
  195. data: {
  196. orderId: orderId
  197. }
  198. }).then(res => {
  199. console.log(res);
  200. var payOrderId = "" + res.data.out_trade_no;
  201. wx.hideLoading();
  202. //payment(res);
  203. that.payOrderUpdate(that.data.orderId, payOrderId, 1); // 支付成功
  204. });
  205. } else {
  206. // 免费券
  207. that
  208. .payOrderUpdate(orderId, "0", 1) // 支付成功
  209. .then(res => {
  210. wx.showToast({
  211. title: "支付成功",
  212. duration: 3000
  213. });
  214. });
  215. }
  216. }
  217. })
  218. .catch(err => {
  219. console.log(err);
  220. });
  221. }
  222. }
  223. });