pay.js 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  1. define(['$', 'template', 'api', 'native', 'config', 'user'], function ($, template, api, native, config, user) {
  2. var backHash; // 回退页面
  3. var orderID; // 订单ID
  4. var orderType; // 订单类型
  5. var orderCoupon = 0; // 使用代金券支付的金额
  6. var orderBalance = 0; // 使用余额支付的金额
  7. var orderPayValue = 0; // 使用微信支付的金额
  8. var isRecharge = false; // 是否是充值
  9. function back() {
  10. $(document).trigger('spa:navigate', {
  11. hash: backHash,
  12. pushData: {
  13. dontNeedReload: true,
  14. animate: 'slideOutDown' //强制设置动画为落下
  15. }
  16. });
  17. }
  18. return {
  19. title: '壹管家上门服务',
  20. body: '',
  21. init: function (pageData, dtd) {
  22. var $view = this;
  23. var $doc = $(document);
  24. // 充值的回调
  25. function payResult(res) {
  26. $doc.trigger('spa:closeloader');
  27. if (res.success) {
  28. var orderInfo = user.getOrderInfo(orderID);
  29. var params = {
  30. orderInfo: orderInfo,
  31. charge: res.data,
  32. isSpecial: res.data.body == "双11虹口区日常保洁特价体验"
  33. };
  34. native.pay(params, function (resA) {
  35. if (resA.success) {
  36. if (res.data.body == "双11虹口区日常保洁特价体验"){
  37. /*$doc.trigger('spa:openpanel', ['simpleAlert', {
  38. message: "活动产品支付成功了"
  39. }]);*/
  40. $doc.trigger('spa:navigate', {
  41. hash: 'bargain'
  42. });
  43. }else {
  44. $doc.trigger('spa:navigate', {
  45. hash: 'paySuccess'
  46. });
  47. }
  48. } else {
  49. $doc.trigger('spa:openpanel', ['simpleAlert', {
  50. message: resA.message
  51. }]);
  52. }
  53. });
  54. } else {
  55. $doc.trigger('spa:openpanel', ['simpleAlert', {
  56. message: res.message
  57. }]);
  58. }
  59. }
  60. $.newTouch('.pay-option', function (event) {
  61. event.preventDefault();
  62. var payChannel = $(this).data('value');
  63. $('.btn-pay', $view).attr('data-pay-channel', payChannel);
  64. $(this).addClass('checked').parent().siblings().find('a').removeClass('checked');
  65. }, $view);
  66. $.newTouch('.btn-pay', function (event) {
  67. event.preventDefault();
  68. var payChannel = $(this).attr('data-pay-channel');
  69. if (config.isWX) {
  70. payChannel = 'wx_pub';
  71. }
  72. if (!payChannel) return;
  73. $doc.trigger('spa:openloader');
  74. var params = {
  75. user_id: user.id,
  76. order_id: orderID,
  77. pay_channel: payChannel
  78. };
  79. if (isRecharge){
  80. api.payRecharge(params, function (res) {
  81. payResult(res)
  82. });
  83. }else {
  84. api.getPayCharge(params, function (res) {
  85. payResult(res)
  86. });
  87. }
  88. }, $view);
  89. //返回
  90. $.newTouch('.cancel-button', function (event) {
  91. event.preventDefault();
  92. back.call(this, event);
  93. }, $view);
  94. $view.on('tapBackButton', function (event) {
  95. event.preventDefault();
  96. back.call(this, event);
  97. });
  98. /*$view.on('swipeRight', function (event) {
  99. event.preventDefault();
  100. back.call(this, event);
  101. });*/
  102. dtd.resolve();
  103. },
  104. beforeopen: function (pageData, dtd) {
  105. var $view = this;
  106. var pushData = pageData.pushData;
  107. orderID = pushData.orderID;
  108. backHash = pushData.backHash ? pushData.backHash : '';
  109. isRecharge = pushData.isRecharge;
  110. // 在用户的所有订单中找出这个订单
  111. var orders = user.orders[1].data;
  112. for (var i = 0, len = orders.length; i < len; i++) {
  113. if (orders[i].id == orderID) {
  114. var selectOrder = orders[i];
  115. orderType = selectOrder.products[0].product.name;
  116. if (selectOrder.coupons && selectOrder.coupons.length){
  117. for (i in selectOrder.coupons){
  118. orderCoupon += parseInt(selectOrder.coupons[i].coupon.value);
  119. }
  120. }
  121. if (selectOrder.pay_price && selectOrder.pay_price != 0){
  122. orderBalance = selectOrder.final_price - selectOrder.pay_price;
  123. }
  124. if (selectOrder.pay_price && selectOrder.pay_price != 0){
  125. orderPayValue = selectOrder.pay_price;
  126. }else {
  127. orderPayValue = selectOrder.final_price;
  128. }
  129. }
  130. }
  131. var tpl = template('pay/index', {
  132. showNavBar: !config.isWX && !config.isChubao,
  133. wxPub: true,
  134. orderType: orderType,
  135. isRecharge: isRecharge,
  136. isShow: !isRecharge,
  137. orderCoupon: orderCoupon,
  138. orderBalance: orderBalance,
  139. orderPayValue: orderPayValue
  140. });
  141. $('.spa-page-body', $view).html(tpl);
  142. dtd.resolve();
  143. // if (config.isAndroid || config.isIOS) {
  144. // native.isWxAppInstalled(function(res){
  145. // var showWX = true;
  146. // if (res.success && !res.isInstalled) {
  147. // showWX = false;
  148. // }
  149. // if (config.appVersion < '2.2') {
  150. // //微信支付2.2版本以下有问题 隐藏按钮
  151. // showWX = false;
  152. // }
  153. // var tpl = template('pay/index', {
  154. // showWX: showWX,
  155. // showNavBar: !config.isWX && !config.isChubao,
  156. // orderType: orderType,
  157. // orderprice: orderprice
  158. // });
  159. // $('.spa-page-body', $view).html(tpl);
  160. //
  161. // dtd.resolve();
  162. // })
  163. // } else if (config.isChubao) {
  164. // var tpl = template('pay/index', {
  165. // showNavBar: !config.isWX && !config.isChubao,
  166. // orderType: orderType,
  167. // orderprice: orderprice,
  168. // chubao: true
  169. // });
  170. // $('.spa-page-body', $view).html(tpl);
  171. // dtd.resolve();
  172. // } else {
  173. //
  174. // }
  175. }
  176. }
  177. })