123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180 |
- define(['$', 'template', 'api', 'native', 'config', 'user'], function ($, template, api, native, config, user) {
- var backHash; // 回退页面
- var orderID; // 订单ID
- var orderType; // 订单类型
- var orderCoupon = 0; // 使用代金券支付的金额
- var orderBalance = 0; // 使用余额支付的金额
- var orderPayValue = 0; // 使用微信支付的金额
- var isRecharge = false; // 是否是充值
- function back() {
- $(document).trigger('spa:navigate', {
- hash: backHash,
- pushData: {
- dontNeedReload: true,
- animate: 'slideOutDown' //强制设置动画为落下
- }
- });
- }
- return {
- title: '壹管家上门服务',
- body: '',
- init: function (pageData, dtd) {
- var $view = this;
- var $doc = $(document);
- // 充值的回调
- function payResult(res) {
- $doc.trigger('spa:closeloader');
- if (res.success) {
- var orderInfo = user.getOrderInfo(orderID);
- var params = {
- orderInfo: orderInfo,
- charge: res.data
- };
- // 调用native中pay方法,传值orderInfo,charge并做回调,返回充值结果
- 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
- }]);
- }
- }
- $.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();
- // 获取自定义的data-pay-channel的值,即支付方式
- var payChannel = $(this).attr('data-pay-channel');
- // 判断当前客户端是否为微信公众号
- if (config.isWX) {
- payChannel = 'wx_pub';
- }
- if (!payChannel) return;
- // 显示加载动画
- $doc.trigger('spa:openloader');
- // 定义params对象,内置 用户id,订单id,支付方式
- var params = {
- user_id: user.id,
- order_id: orderID,
- pay_channel: payChannel
- };
- // 判断是否是充值 PS:其实没啥用,都是走同一个支付入口的
- if (isRecharge) {
- api.payRecharge(params, function (res) {
- payResult(res)
- });
- } else {
- api.getPayCharge(params, function (res) {
- payResult(res)
- });
- }
- }, $view);
- //返回
- $.newTouch('.cancel-button', function (event) {
- event.preventDefault();
- back.call(this, event);
- }, $view);
- $view.on('tapBackButton', function (event) {
- event.preventDefault();
- back.call(this, event);
- });
- /*$view.on('swipeRight', function (event) {
- event.preventDefault();
- back.call(this, event);
- });*/
- dtd.resolve();
- },
- beforeopen: function (pageData, dtd) {
- var $view = this;
- var pushData = pageData.pushData;
- orderID = pushData.orderID;
- backHash = pushData.backHash ? pushData.backHash : '';
- isRecharge = pushData.isRecharge;
- // 在用户的所有订单中找出这个订单
- var orders = user.orders[1].data;
- for (var i = 0, len = orders.length; i < len; i++) {
- if (orders[i].id == orderID) {
- var selectOrder = orders[i];
- orderType = selectOrder.products[0].product.name;
- if (selectOrder.coupons && selectOrder.coupons.length) {
- for (i in selectOrder.coupons) {
- orderCoupon += parseInt(selectOrder.coupons[i].coupon.value);
- }
- }
- if (selectOrder.pay_price && selectOrder.pay_price != 0) {
- orderBalance = selectOrder.final_price - selectOrder.pay_price;
- }
- if (selectOrder.pay_price && selectOrder.pay_price != 0) {
- orderPayValue = selectOrder.pay_price;
- } else {
- orderPayValue = selectOrder.final_price;
- }
- }
- }
- if (orderType == '充值1元') {
- orderType = "其他数额";
- }
- var tpl = template('pay/index', {
- showNavBar: !config.isWX && !config.isChubao,
- wxPub: true,
- orderType: orderType,
- isRecharge: isRecharge,
- isShow: !isRecharge,
- orderCoupon: orderCoupon,
- orderBalance: orderBalance,
- orderPayValue: orderPayValue
- });
- $('.spa-page-body', $view).html(tpl);
- dtd.resolve();
- // 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 {
- //
- // }
- }
- }
- })
|