define(['$', 'template', 'api', 'native', 'config', 'user'], function ($, template, api, native, config, user) { function back(backHash) { $(document).trigger('spa:navigate', { hash: backHash, pushData: { dontNeedReload: true, animate: 'slideOutDown' //强制设置动画为落下 } }); } return { title: '壹管家上门服务', body: '', init: function (pageData, dtd) { var $view = this; var $doc = $(document); $.newTouch('.pay-option', function (event) { event.preventDefault(); var payChannel = $(this).data('value'); $('.btn-pay', $view).attr('data-pay-channel', payChannel); $(this).addClass('checked').parent().siblings().find('a').removeClass('checked'); }, $view); $.newTouch('.btn-pay', function (event) { event.preventDefault(); var orderID = $view.data('orderID'); var orderprice = $view.data('orderprice'); var payChannel = $(this).attr('data-pay-channel'); if (config.isChubao) { ctk.select({ tradeService: 'com.company.product', //服务商在触宝开放平台的标识,格式为com.公司.产品,用于获取优惠信息 totalFee: orderprice * 100, //支付的金额,单位为分 success: function(res) { //用户点击支付页面支付按钮成功之后的回调函数 var tradeStr = res.tradeStr; //支付信息的字符串 ctk.show(); //获取加密字符串的同时显示加载提示,减少用户焦虑 api.getTradeStr({ from: 'chubao', tradeStr: tradeStr, user_id: user.id, order_id: orderID }, function(res) { ctk.pay({ payStr: res.data.payStr, finish: function(resCode) { ctk.dismiss(); if (resCode == 4102) { $doc.trigger('spa:navigate', { hash: 'paySuccess' }); } else { $doc.trigger('spa:openpanel', ['simpleAlert', { message: '支付失败' }]); } } }); }); }, fail: function(res) { //用户退出支付选择页面的回调函数 } }); } else { if (config.isWX) { payChannel = 'wx_pub'; } if (!payChannel) return; $doc.trigger('spa:openloader'); api.getPayCharge({ user_id: user.id, order_id: orderID, pay_channel: payChannel }, function (res) { $doc.trigger('spa:closeloader'); if (res.success) { var orderInfo = user.getOrderInfo(orderID); var params = { orderInfo: orderInfo, charge: res.data } native.pay(params, function (resA) { if (resA.success) { $doc.trigger('spa:navigate', { hash: 'paySuccess' }); } else { $doc.trigger('spa:openpanel', ['simpleAlert', { message: resA.message }]); } }); // } } else { $doc.trigger('spa:openpanel', ['simpleAlert', { message: res.message }]); } }); } }, $view); //返回 $.newTouch('.cancel-button', function (event) { event.preventDefault(); back($view.data('backHash')); }, $view); $view.on('tapBackButton', function(event) { event.preventDefault(); back($view.data('backHash')); }); dtd.resolve(); }, beforeopen: function(pageData, dtd){ var $view = this; var pushData = pageData.pushData; var orderID = pushData.orderID; var backHash = pushData.backHash ? pushData.backHash : ''; $view.data('backHash', backHash); $view.data('orderID', orderID); var orders = user.orders[1].data; var orderType, orderprice; for (var i = 0, len = orders.length; i < len; i++) { if (orders[i].id == orderID) { orderType = orders[i].products[0].name; orderprice = orders[i].final_price; }; }; $view.data('orderprice', orderprice); if (config.isAndroid || config.isIOS) { native.isWxAppInstalled(function(res){ var showWX = true; if (res.success && !res.isInstalled) { showWX = false; } if (config.appVersion < '2.2') { //微信支付2.2版本以下有问题 隐藏按钮 showWX = false; } var tpl = template('pay/index', { showWX: showWX, showNavBar: !config.isWX && !config.isChubao, orderType: orderType, orderprice: orderprice }); $('.spa-page-body', $view).html(tpl); dtd.resolve(); }) } else if (config.isChubao) { var tpl = template('pay/index', { showNavBar: !config.isWX && !config.isChubao, orderType: orderType, orderprice: orderprice, chubao: true }); $('.spa-page-body', $view).html(tpl); dtd.resolve(); } else { var tpl = template('pay/index', { showNavBar: !config.isWX && !config.isChubao, wxPub: true, orderType: orderType, orderprice: orderprice }); $('.spa-page-body', $view).html(tpl); dtd.resolve(); } } } })