appendPay.js 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. define(['$', 'template', 'api', 'native', 'config', 'user'], function ($, template, api, native, config, user) {
  2. function back(backHash) {
  3. $(document).trigger('spa:navigate', {
  4. hash: 'myOrder/1',
  5. pushData: {
  6. dontNeedReload: true,
  7. animate: 'slideOutDown' //强制设置动画为落下
  8. }
  9. });
  10. }
  11. return {
  12. title: '壹管家上门服务',
  13. body: '',
  14. init: function (pageData, dtd) {
  15. var $view = this;
  16. var $doc = $(document);
  17. $.newTouch('.pay-option', function (event) {
  18. event.preventDefault();
  19. var payChannel = $(this).data('value');
  20. $('.btn-pay', $view).attr('data-pay-channel', payChannel);
  21. $(this).addClass('checked').parent().siblings().find('a').removeClass('checked');
  22. }, $view);
  23. $.newTouch('.btn-pay', function (event) {
  24. event.preventDefault();
  25. var orderID = $view.data('orderID');
  26. var appendID = $view.data('appendID');
  27. var payChannel = $(this).attr('data-pay-channel');
  28. if (config.isWX) {
  29. payChannel = 'wx_pub';
  30. }
  31. if (!payChannel) return;
  32. $doc.trigger('spa:openloader');
  33. api.getAppendPayCharge({
  34. user_id: user.id,
  35. order_id: orderID,
  36. pay_channel: payChannel,
  37. append_id: appendID
  38. }, function (res) {
  39. $doc.trigger('spa:closeloader');
  40. if (res.success) {
  41. var orderInfo = user.getOrderInfo(orderID);
  42. var params = {
  43. orderInfo: orderInfo,
  44. charge: res.data
  45. }
  46. native.pay(params, function (resA) {
  47. if (resA.success) {
  48. console.log(resA);
  49. return false;
  50. $doc.trigger('spa:navigate', {
  51. hash: 'paySuccess'
  52. });
  53. } else {
  54. $doc.trigger('spa:openpanel', ['simpleAlert', {
  55. message: resA.message
  56. }]);
  57. }
  58. });
  59. } else {
  60. $doc.trigger('spa:openpanel', ['simpleAlert', {
  61. message: res.message
  62. }]);
  63. }
  64. });
  65. }, $view);
  66. //返回
  67. $.newTouch('.cancel-button', function (event) {
  68. event.preventDefault();
  69. back($view.data('backHash'));
  70. }, $view);
  71. $view.on('tapBackButton', function(event) {
  72. event.preventDefault();
  73. back($view.data('backHash'));
  74. });
  75. dtd.resolve();
  76. },
  77. beforeopen: function(pageData, dtd){
  78. var $view = this;
  79. var pushData = pageData.pushData;
  80. var orderID = pushData.orderID;
  81. var appendID = pushData.appendID;
  82. $view.data('appendID', appendID);
  83. $view.data('orderID', orderID);
  84. var appendOrder = user.appendOrder;
  85. if (!config.isWX && !config.isChubao) {
  86. native.isWxAppInstalled(function(res){
  87. var showWX = true;
  88. if (res.success && !res.isInstalled) {
  89. showWX = false;
  90. }
  91. if (config.appVersion < '2.2') {
  92. //微信支付2.2版本以下有问题 隐藏按钮
  93. showWX = false;
  94. }
  95. var tpl = template('pay/index', {
  96. showWX: showWX,
  97. showNavBar: !config.isWX && !config.isChubao,
  98. orderType: appendOrder.products_str,
  99. orderprice: appendOrder.price
  100. });
  101. $('.spa-page-body', $view).html(tpl);
  102. dtd.resolve();
  103. })
  104. } else {
  105. var tpl = template('pay/index', {
  106. showNavBar: !config.isWX && !config.isChubao,
  107. wxPub: true,
  108. orderType: appendOrder.products_str,
  109. orderprice: appendOrder.price
  110. });
  111. $('.spa-page-body', $view).html(tpl);
  112. dtd.resolve();
  113. }
  114. }
  115. }
  116. })