pay.js 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. // pages/pay/pay.js
  2. const app = getApp();
  3. const { axios } = app.globalData;
  4. Page({
  5. /**
  6. * 页面的初始数据
  7. */
  8. data: {
  9. loadding: false,//正在支付中 true
  10. disabled: false,//支付完毕 true
  11. message: '',//订单备注
  12. paytype: "1",// 支付方式
  13. },
  14. // 提交支付
  15. onSubmit () {
  16. let { id: commodity, message: notes, useraddress } = this.data, { id: student } = useraddress, that = this;
  17. if (!student) {
  18. wx.showToast({
  19. title: '请挑选学生',
  20. icon: 'error'
  21. })
  22. return false;
  23. }
  24. let { appid, user } = app.globalData, { openid } = user;
  25. function pay () {
  26. return new Promise(resolve => {
  27. axios({
  28. url: `/order/`,
  29. method: 'post',
  30. data: {
  31. appid, openid, notes, commodity, student
  32. },
  33. success (res) {
  34. that.setData({ loadding: true })
  35. let { data } = res.data;
  36. wx.requestPayment({
  37. timeStamp: data.timeStamp,
  38. nonceStr: data.nonceStr,
  39. package: data.package,
  40. signType: data.signType,
  41. paySign: data.paySign,
  42. success: function (res) {
  43. resolve({ type: 1, value: "支付成功" })
  44. },
  45. fail: function () {
  46. // 取消付款
  47. resolve({ type: 2, value: "支付失败" })
  48. },
  49. })
  50. }
  51. })
  52. })
  53. }
  54. pay().then(
  55. res => {
  56. that.setData({ loadding: false, disabled: true })
  57. wx.navigateTo({
  58. url: '/pages/order/order',
  59. })
  60. }
  61. );
  62. },
  63. // 挑选地址
  64. ChooseAddress () {
  65. wx.navigateTo({
  66. url: `/pages/adddata/adddata?data=${JSON.stringify({ source: 'pay' })}`,
  67. })
  68. },
  69. // 支付方式改变
  70. onChange (e) {
  71. let { detail } = e;
  72. this.setData({ paytype: detail })
  73. },
  74. /**
  75. * 生命周期函数--监听页面加载
  76. */
  77. onLoad: function (options) {
  78. wx.lxd.Ctr({
  79. // nav
  80. title: "支付", //标题
  81. bgc: false,//使用更改后的颜色;配合json使用
  82. })
  83. let { data } = options;
  84. if (!!data) {
  85. data = JSON.parse(data);
  86. this.setData({
  87. ...data
  88. })
  89. }
  90. },
  91. /**
  92. * 生命周期函数--监听页面初次渲染完成
  93. */
  94. onReady: function () {
  95. },
  96. /**
  97. * 生命周期函数--监听页面显示
  98. */
  99. onShow: function () {
  100. let { useraddress } = app.globalData;
  101. if (!useraddress.id) {
  102. useraddress["name"] = "请挑选学生"
  103. }
  104. this.setData({ useraddress })
  105. },
  106. /**
  107. * 生命周期函数--监听页面隐藏
  108. */
  109. onHide: function () {
  110. },
  111. /**
  112. * 生命周期函数--监听页面卸载
  113. */
  114. onUnload: function () {
  115. },
  116. /**
  117. * 页面相关事件处理函数--监听用户下拉动作
  118. */
  119. onPullDownRefresh: function () {
  120. },
  121. /**
  122. * 页面上拉触底事件的处理函数
  123. */
  124. onReachBottom: function () {
  125. },
  126. })