123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216 |
- (function (app) {
- //公共服务
- app.factory('common', ['$http', 'config', '$q', 'msg', function ($http, config, $q, msg) {
- return {
- //经营范围
- getSetting: function (category) {
- return $http({
- url: config.server + 'api/setting/get/' + category,
- method: "get"
- })
- },
- //选择图片
- chooseImage: function (cameraOptions) {
- var deferred = $q.defer();
- var defaultCameraOptions = {
- quality: 50,
- sourceType: 1,
- allowEdit: false,
- encodingType: 0,//0为jpg,1为png
- //targetHeight: 112,
- //targetWidth: 112
- };
- var options = angular.extend(defaultCameraOptions, cameraOptions);
- var sheetOptions = {
- title: '选择图片方式',
- buttonLabels: ['拍摄照片', '从图库选择'],
- addCancelButtonWithLabel: '取消',
- androidEnableCancelButton: true
- };
- window.plugins.actionsheet.show(sheetOptions, function (index) {
- switch (index) {
- case 1: //拍摄图片
- options.sourceType = 1;
- break;
- case 2://从图库选择
- options.sourceType = 2;
- break;
- default:
- return;
- deferred.resolve();
- break;
- }
- navigator.camera.getPicture(function (imageUri) {
- if (imageUri) {
- deferred.resolve(imageUri);
- } else {
- deferred.reject('图片未找到');
- }
- }, function (error) {
-
- deferred.reject(error);
- }, options);
- });
- return deferred.promise;
- },
- uploadFiles: function (imageUri,type) {//通用上传,type:1图片,2视频
- var deferred = $q.defer();
- if (imageUri) {
- var uploadOptions = new FileUploadOptions();
- if (type==1) {//图片
- uploadOptions.fileKey = "picture";
- uploadOptions.fileName = "picture.jpg";
- uploadOptions.mimeType = "image/jpeg";
- uploadOptions.params = { tag: "picture" };
- }
- if (type==2) {//视频
- uploadOptions.fileKey = "video";
- uploadOptions.fileName = "video.mp4";
- uploadOptions.mimeType = "video/mpeg";
- uploadOptions.params = { tag: "video" };
- }
- uploadOptions.httpMethod = 'post';
- uploadOptions.chunkedMode = true;
- var token = 'Bearer ' + localStorage['token'];
- uploadOptions.headers = { "Authorization": token };
- var ft = new FileTransfer();
- ft.upload(imageUri, encodeURI(config.server + "api/attachment/upload"), function (sucess) {
- deferred.resolve(sucess);
- // alert('上传成功' + JSON.stringify(sucess));
- }, function (fail) {
- deferred.reject(fail);
- //alert('上传失败' + JSON.stringify(fail));
- }, uploadOptions);
- } else {
- deferred.reject('图片未找到');
- }
- return deferred.promise;
- },
- setAvator: function () {//上传头像
- var deferred = $q.defer();
- this.chooseImage().then(function (imageUri) {
- msg.text('上传中');
- var uploadOptions = new FileUploadOptions();
- uploadOptions.fileKey = "avatar";
- uploadOptions.fileName = "avatar.jpg";
- uploadOptions.mimeType = "image/jpeg";
- uploadOptions.httpMethod = 'post';
- uploadOptions.chunkedMode = true;
- var token = 'Bearer ' + localStorage['token'];
- uploadOptions.headers = { "Authorization": token };
- var ft = new FileTransfer();
- ft.upload(imageUri, encodeURI(config.server + "api/auth/avatar"), function (sucess) {
- msg.hide();
- deferred.resolve(sucess);
- // alert('上传成功' + JSON.stringify(sucess));
- }, function (fail) {
- msg.hide();
- deferred.reject(fail);
- // alert('上传失败' + JSON.stringify(fail));
- }, uploadOptions);
- });
- return deferred.promise;
- },
- continue_consume: function (data) {
- var deferred = $q.defer();
- $http({
- url: config.server + 'api/service/continue_consume',
- method: "post",
- data: data
- }).success(function (result) {
- console.log("result pay:"+JSON.stringify(result));
- var payInfo = result.data.orderString;
- if (data.pay_type == "alipay_app") {
- //支付宝
- console.log("result AliPay");
- cordova.plugins.AliPay.pay(payInfo, function success(e) {
- //e.resultStatus 状态代码 e.result 本次操作返回的结果数据 e.memo 提示信息
- //e.resultStatus 9000 订单支付成功 ;8000 正在处理中 调用function success
- //e.resultStatus 4000 订单支付失败 ;6001 用户中途取消 ;6002 网络连接出错 调用function error
- //当e.resultStatus为9000时,请去服务端验证支付结果
- // alert('状态码:' + e.resultStatus);
- if (e.resultStatus == '9000') {
- deferred.resolve(e.resultStatus);
- } else {
- deferred.reject(e);
- }
- }, function error(e) {
- deferred.reject(e);
- });
- }
- if (data.pay_type== "wechatpay_app") { //微信
- window.wxpay.payment({
- appid: payInfo.appid,
- noncestr: payInfo.noncestr,
- package: payInfo.package,
- partnerid: payInfo.partnerid,
- prepayid: payInfo.prepayid,
- timestamp: payInfo.timestamp,
- sign: payInfo.sign
- }, function success(msg) {
- console.log("wxpay success:"+JSON.stringify(msg));
- deferred.resolve(msg);
- }, function error(e) {
- console.log("wxpay error:"+JSON.stringify(e));
- deferred.reject(e);
- })
- }
- }).error(function (erro) {
- // alert(JSON.stringify(erro));
- deferred.reject(erro);
- });
- return deferred.promise;
- },
- pay: function (data) {
- var deferred = $q.defer();
- $http({
- url: config.server + 'api/merchant/charge',
- method: "post",
- data: data
- }).success(function (result) {
- console.log("result pay:"+JSON.stringify(result));
- var payInfo = result.data.orderString;
- if (data.type == 1) {
- //支付宝
- cordova.plugins.AliPay.pay(payInfo, function success(e) {
- //e.resultStatus 状态代码 e.result 本次操作返回的结果数据 e.memo 提示信息
- //e.resultStatus 9000 订单支付成功 ;8000 正在处理中 调用function success
- //e.resultStatus 4000 订单支付失败 ;6001 用户中途取消 ;6002 网络连接出错 调用function error
- //当e.resultStatus为9000时,请去服务端验证支付结果
- // alert('状态码:' + e.resultStatus);
- if (e.resultStatus == '9000') {
- deferred.resolve(e.resultStatus);
- } else {
- deferred.reject(e);
- }
- }, function error(e) {
- deferred.reject(e);
- });
- }
- if (data.type==2) { //微信
- window.wxpay.payment({
- appid: payInfo.appid,
- noncestr: payInfo.noncestr,
- package: payInfo.package,
- partnerid: payInfo.partnerid,
- prepayid: payInfo.prepayid,
- timestamp: payInfo.timestamp,
- sign: payInfo.sign
- }, function success(msg) {
- console.log("wxpay success:"+JSON.stringify(msg));
- deferred.resolve(msg);
- }, function error(e) {
- console.log("wxpay error:"+JSON.stringify(e));
- deferred.reject(e);
- })
- }
- }).error(function (erro) {
- // alert(JSON.stringify(erro));
- deferred.reject(erro);
- });
- return deferred.promise;
- }
- };
- }]);
- })(angular.module('app.services'));
|