pay.js 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  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. console.log(res.message);
  27. $doc.trigger('spa:closeloader');
  28. if (res.success) {
  29. var orderInfo = user.getOrderInfo(orderID);
  30. var params = {
  31. orderInfo: orderInfo,
  32. charge: res.data,
  33. isSpecial: res.data.body == "活动产品"
  34. };
  35. native.pay(params, function (resA) {
  36. if (resA.success) {
  37. if (res.data.body == "活动产品"){
  38. /*$doc.trigger('spa:openpanel', ['simpleAlert', {
  39. message: "活动产品支付成功了"
  40. }]);*/
  41. $doc.trigger('spa:navigate', {
  42. hash: 'bargain'
  43. });
  44. }else {
  45. $doc.trigger('spa:navigate', {
  46. hash: 'paySuccess'
  47. });
  48. }
  49. } else {
  50. $doc.trigger('spa:openpanel', ['simpleAlert', {
  51. message: resA.message
  52. }]);
  53. }
  54. });
  55. } else {
  56. $doc.trigger('spa:openpanel', ['simpleAlert', {
  57. message: res.message
  58. }]);
  59. }
  60. }
  61. $.newTouch('.pay-option', function (event) {
  62. event.preventDefault();
  63. var payChannel = $(this).data('value');
  64. $('.btn-pay', $view).attr('data-pay-channel', payChannel);
  65. $(this).addClass('checked').parent().siblings().find('a').removeClass('checked');
  66. }, $view);
  67. $.newTouch('.btn-pay', function (event) {
  68. event.preventDefault();
  69. var payChannel = $(this).attr('data-pay-channel');
  70. if (config.isWX) {
  71. payChannel = 'wx_pub';
  72. }
  73. if (!payChannel) return;
  74. $doc.trigger('spa:openloader');
  75. var params = {
  76. user_id: user.id,
  77. order_id: orderID,
  78. pay_channel: payChannel
  79. };
  80. if (isRecharge){
  81. api.payRecharge(params, function (res) {
  82. payResult(res)
  83. });
  84. }else {
  85. api.getPayCharge(params, function (res) {
  86. payResult(res)
  87. });
  88. }
  89. }, $view);
  90. //返回
  91. $.newTouch('.cancel-button', function (event) {
  92. event.preventDefault();
  93. back.call(this, event);
  94. }, $view);
  95. $view.on('tapBackButton', function (event) {
  96. event.preventDefault();
  97. back.call(this, event);
  98. });
  99. /*$view.on('swipeRight', function (event) {
  100. event.preventDefault();
  101. back.call(this, event);
  102. });*/
  103. dtd.resolve();
  104. },
  105. beforeopen: function (pageData, dtd) {
  106. var $view = this;
  107. var pushData = pageData.pushData;
  108. orderID = pushData.orderID;
  109. backHash = pushData.backHash ? pushData.backHash : '';
  110. isRecharge = pushData.isRecharge;
  111. // 在用户的所有订单中找出这个订单
  112. var orders = user.orders[1].data;
  113. for (var i = 0, len = orders.length; i < len; i++) {
  114. if (orders[i].id == orderID) {
  115. var selectOrder = orders[i];
  116. orderType = selectOrder.products[0].product.name;
  117. if (selectOrder.coupons && selectOrder.coupons.length){
  118. for (i in selectOrder.coupons){
  119. orderCoupon += parseInt(selectOrder.coupons[i].coupon.value);
  120. }
  121. }
  122. if (selectOrder.pay_price && selectOrder.pay_price != 0){
  123. orderBalance = selectOrder.final_price - selectOrder.pay_price;
  124. }
  125. if (selectOrder.pay_price && selectOrder.pay_price != 0){
  126. orderPayValue = selectOrder.pay_price;
  127. }else {
  128. orderPayValue = selectOrder.final_price;
  129. }
  130. }
  131. }
  132. if(orderType=='充值1元'){
  133. orderType="其他数额";
  134. }
  135. var tpl = template('pay/index', {
  136. showNavBar: !config.isWX && !config.isChubao,
  137. wxPub: true,
  138. orderType: orderType,
  139. isRecharge: isRecharge,
  140. isShow: !isRecharge,
  141. orderCoupon: orderCoupon,
  142. orderBalance: orderBalance,
  143. orderPayValue: orderPayValue
  144. });
  145. $('.spa-page-body', $view).html(tpl);
  146. dtd.resolve();
  147. // if (config.isAndroid || config.isIOS) {
  148. // native.isWxAppInstalled(function(res){
  149. // var showWX = true;
  150. // if (res.success && !res.isInstalled) {
  151. // showWX = false;
  152. // }
  153. // if (config.appVersion < '2.2') {
  154. // //微信支付2.2版本以下有问题 隐藏按钮
  155. // showWX = false;
  156. // }
  157. // var tpl = template('pay/index', {
  158. // showWX: showWX,
  159. // showNavBar: !config.isWX && !config.isChubao,
  160. // orderType: orderType,
  161. // orderprice: orderprice
  162. // });
  163. // $('.spa-page-body', $view).html(tpl);
  164. //
  165. // dtd.resolve();
  166. // })
  167. // } else if (config.isChubao) {
  168. // var tpl = template('pay/index', {
  169. // showNavBar: !config.isWX && !config.isChubao,
  170. // orderType: orderType,
  171. // orderprice: orderprice,
  172. // chubao: true
  173. // });
  174. // $('.spa-page-body', $view).html(tpl);
  175. // dtd.resolve();
  176. // } else {
  177. //
  178. // }
  179. }
  180. }
  181. })