commonservice.js 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222
  1. (function (app) {
  2. //公共服务
  3. app.factory('common', ['$http', 'config', '$q', 'msg', function ($http, config, $q, msg) {
  4. return {
  5. //经营范围
  6. getSetting: function (category) {
  7. return $http({
  8. url: config.server + 'api/setting/get/' + category,
  9. method: "get"
  10. })
  11. },
  12. //选择图片
  13. chooseImage: function (cameraOptions) {
  14. var deferred = $q.defer();
  15. var defaultCameraOptions = {
  16. quality: 50,
  17. sourceType: 1,
  18. allowEdit: true,
  19. encodingType: 0,//0为jpg,1为png
  20. targetHeight: 112,
  21. targetWidth: 112
  22. };
  23. var options = angular.extend(defaultCameraOptions, cameraOptions);
  24. var sheetOptions = {
  25. title: '选择图片方式',
  26. buttonLabels: ['拍摄照片', '从图库选择'],
  27. addCancelButtonWithLabel: '取消',
  28. androidEnableCancelButton: true
  29. };
  30. window.plugins.actionsheet.show(sheetOptions, function (index) {
  31. switch (index) {
  32. case 1: //拍摄图片
  33. options.sourceType = 1;
  34. break;
  35. case 2://从图库选择
  36. options.sourceType = 2;
  37. break;
  38. default:
  39. return;
  40. deferred.resolve();
  41. break;
  42. }
  43. navigator.camera.getPicture(function (imageUri) {
  44. if (imageUri) {
  45. deferred.resolve(imageUri);
  46. } else {
  47. deferred.reject('图片未找到');
  48. }
  49. }, function (error) {
  50. deferred.reject(error);
  51. }, options);
  52. });
  53. return deferred.promise;
  54. },
  55. setAvator: function () {//上传头像
  56. var deferred = $q.defer();
  57. this.chooseImage().then(function (imageUri) {
  58. msg.text('上传中');
  59. var uploadOptions = new FileUploadOptions();
  60. uploadOptions.fileKey = "avatar";
  61. uploadOptions.fileName = "avatar.jpg";
  62. uploadOptions.mimeType = "image/jpeg";
  63. uploadOptions.httpMethod = 'post';
  64. uploadOptions.chunkedMode = true;
  65. var token = 'Bearer ' + localStorage['token'];
  66. uploadOptions.headers = { "Authorization": token };
  67. var ft = new FileTransfer();
  68. ft.upload(imageUri, encodeURI(config.server + "api/auth/avatar"), function (sucess) {
  69. msg.hide();
  70. deferred.resolve(sucess);
  71. // alert('上传成功' + JSON.stringify(sucess));
  72. }, function (fail) {
  73. msg.hide();
  74. deferred.reject(fail);
  75. // alert('上传失败' + JSON.stringify(fail));
  76. }, uploadOptions);
  77. });
  78. return deferred.promise;
  79. },
  80. uploadFiles:function () {//通用上传图片
  81. var deferred = $q.defer();
  82. var options = {
  83. sourceType: 2,
  84. allowEdit: false,
  85. encodingType: 0,//0为jpg,1为png
  86. targetHeight: 500,
  87. targetWidth: 500
  88. };
  89. navigator.camera.getPicture(function (imageUri) {
  90. //alert(imageUri);
  91. if (imageUri) {
  92. var uploadOptions = new FileUploadOptions();
  93. uploadOptions.fileKey = "store";
  94. uploadOptions.fileName = "store.jpg";
  95. uploadOptions.mimeType = "image/jpeg";
  96. uploadOptions.httpMethod = 'post';
  97. uploadOptions.chunkedMode = true;
  98. var token = 'Bearer ' + localStorage['token'];
  99. uploadOptions.headers = { "Authorization": token };
  100. var ft = new FileTransfer();
  101. uploadOptions.params = { tag: "picture" };
  102. ft.upload(imageUri, encodeURI(config.server + "api/attachment/upload"), function (sucess) {
  103. deferred.resolve(sucess);
  104. // alert('上传成功' + JSON.stringify(sucess));
  105. }, function (fail) {
  106. deferred.reject(fail);
  107. //alert('上传失败' + JSON.stringify(fail));
  108. }, uploadOptions);
  109. } else {
  110. deferred.reject('图片未找到');
  111. }
  112. }, function (error) {
  113. // alert(error);
  114. deferred.reject(error);
  115. }, options);
  116. return deferred.promise;
  117. },
  118. continue_consume: function (data) {
  119. var deferred = $q.defer();
  120. $http({
  121. url: config.server + 'api/service/continue_consume',
  122. method: "post",
  123. data: data
  124. }).success(function (result) {
  125. console.log("result pay:"+JSON.stringify(result));
  126. var payInfo = result.data.orderString;
  127. if (data.pay_type == "alipay_app") {
  128. //支付宝
  129. console.log("result AliPay");
  130. cordova.plugins.AliPay.pay(payInfo, function success(e) {
  131. //e.resultStatus 状态代码 e.result 本次操作返回的结果数据 e.memo 提示信息
  132. //e.resultStatus 9000 订单支付成功 ;8000 正在处理中 调用function success
  133. //e.resultStatus 4000 订单支付失败 ;6001 用户中途取消 ;6002 网络连接出错 调用function error
  134. //当e.resultStatus为9000时,请去服务端验证支付结果
  135. // alert('状态码:' + e.resultStatus);
  136. if (e.resultStatus == '9000') {
  137. deferred.resolve(e.resultStatus);
  138. } else {
  139. deferred.reject(e);
  140. }
  141. }, function error(e) {
  142. deferred.reject(e);
  143. });
  144. }
  145. if (data.pay_type== "wechatpay_app") { //微信
  146. window.wxpay.payment({
  147. appid: payInfo.appid,
  148. noncestr: payInfo.noncestr,
  149. package: payInfo.package,
  150. partnerid: payInfo.partnerid,
  151. prepayid: payInfo.prepayid,
  152. timestamp: payInfo.timestamp,
  153. sign: payInfo.sign
  154. }, function success(msg) {
  155. console.log("wxpay success:"+JSON.stringify(msg));
  156. deferred.resolve(msg);
  157. }, function error(e) {
  158. console.log("wxpay error:"+JSON.stringify(e));
  159. deferred.reject(e);
  160. })
  161. }
  162. }).error(function (erro) {
  163. // alert(JSON.stringify(erro));
  164. deferred.reject(erro);
  165. });
  166. return deferred.promise;
  167. },
  168. pay: function (data) {
  169. var deferred = $q.defer();
  170. $http({
  171. url: config.server + 'api/merchant/charge',
  172. method: "post",
  173. data: data
  174. }).success(function (result) {
  175. console.log("result pay:"+JSON.stringify(result));
  176. var payInfo = result.data.orderString;
  177. if (data.type == 1) {
  178. //支付宝
  179. cordova.plugins.AliPay.pay(payInfo, function success(e) {
  180. //e.resultStatus 状态代码 e.result 本次操作返回的结果数据 e.memo 提示信息
  181. //e.resultStatus 9000 订单支付成功 ;8000 正在处理中 调用function success
  182. //e.resultStatus 4000 订单支付失败 ;6001 用户中途取消 ;6002 网络连接出错 调用function error
  183. //当e.resultStatus为9000时,请去服务端验证支付结果
  184. // alert('状态码:' + e.resultStatus);
  185. if (e.resultStatus == '9000') {
  186. deferred.resolve(e.resultStatus);
  187. } else {
  188. deferred.reject(e);
  189. }
  190. }, function error(e) {
  191. deferred.reject(e);
  192. });
  193. }
  194. if (data.type==2) { //微信
  195. window.wxpay.payment({
  196. appid: payInfo.appid,
  197. noncestr: payInfo.noncestr,
  198. package: payInfo.package,
  199. partnerid: payInfo.partnerid,
  200. prepayid: payInfo.prepayid,
  201. timestamp: payInfo.timestamp,
  202. sign: payInfo.sign
  203. }, function success(msg) {
  204. console.log("wxpay success:"+JSON.stringify(msg));
  205. deferred.resolve(msg);
  206. }, function error(e) {
  207. console.log("wxpay error:"+JSON.stringify(e));
  208. deferred.reject(e);
  209. })
  210. }
  211. }).error(function (erro) {
  212. // alert(JSON.stringify(erro));
  213. deferred.reject(erro);
  214. });
  215. return deferred.promise;
  216. }
  217. };
  218. }]);
  219. })(angular.module('app.services'));