util.js 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. /*eslint-disable*/
  2. // 获取URL中参数值
  3. function GetQueryString(name) {
  4. var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)');
  5. var r = window.location.search.substr(1).match(reg);
  6. if (r != null) return decodeURI(r[2]);
  7. return null;
  8. }
  9. function deepClone(source) {
  10. if (!source && typeof source !== 'object') {
  11. throw new Error('error arguments', 'deepClone');
  12. }
  13. const targetObj = source.constructor === Array ? [] : {};
  14. Object.keys(source).forEach((keys) => {
  15. if (source[keys] && typeof source[keys] === 'object') {
  16. targetObj[keys] = deepClone(source[keys]);
  17. } else {
  18. targetObj[keys] = source[keys];
  19. }
  20. });
  21. return targetObj;
  22. }
  23. // 微信授权
  24. function weixinAuth() {
  25. let urlNow = encodeURIComponent(window.location.href);
  26. let scope = 'snsapi_base'; //snsapi_userinfo //静默授权 用户无感知
  27. let appid = configObj.mobile.wxConfig.appid;
  28. console.log(urlNow,'进行微信授权')
  29. let url = `https://open.weixin.qq.com/connect/oauth2/authorize?appid=${appid}&redirect_uri=${urlNow}&response_type=code&scope=${scope}&state=STATE&connect_redirect=1#wechat_redirect`;
  30. console.log(url,'授权地址')
  31. window.location.replace(url);
  32. }
  33. // 银联授权
  34. function unionAuth() {
  35. let urlNow = encodeURIComponent(window.location.href);
  36. let url = 'https://qr.95516.com/qrcGtwWeb-web/api/userAuth?version=1.0.0&redirectUrl=' + urlNow;
  37. window.location.replace(url);
  38. }
  39. var isInWeiXinApp = window.navigator.userAgent.toLowerCase().search(/MicroMessenger/i) > -1;
  40. var isInAliPayApp = window.navigator.userAgent.toLowerCase().search(/AlipayClient/i) > -1;
  41. var isInUnionApp = window.navigator.userAgent.toLowerCase().search(/CloudPay/i) > -1;
  42. //生成自定义位数随机数
  43. function randomNum(minNum, maxNum) {
  44. switch (arguments.length) {
  45. case 1:
  46. return parseInt(Math.random() * minNum + 1);
  47. case 2:
  48. return parseInt(Math.random() * (maxNum - minNum + 1) + minNum);
  49. default:
  50. return 0;
  51. }
  52. }
  53. // 支付状态
  54. var mods = {};
  55. // 支付渠道
  56. // alipay_wap: 支付宝H5支付
  57. // wx_pub: 微信H5支付
  58. mods.channelConfig = {
  59. alipay_qr: 'alipay_qr',
  60. alipay_wap: 'alipay_wap',
  61. wx_pub: 'wx_pub',
  62. };
  63. // payment参数校验结果
  64. mods.chackMsg = {
  65. orderError: '发起支付失败',
  66. channelError: '支付渠道参数错误',
  67. amountError: '支付金额参数错误',
  68. queryUrlError: '支付结果url参数未知',
  69. };
  70. // 支付状态值
  71. mods.payStatus = {
  72. succeeded: 'succeeded',
  73. failed: 'failed',
  74. pending: 'pending',
  75. timeout: 'timeout',
  76. cancel: 'unknown',
  77. unknown: 'unknown',
  78. paramError: 'paramError',
  79. };
  80. // 支付结果对象
  81. mods.payResult = {
  82. succeeded: {
  83. result_status: mods.payStatus.succeeded,
  84. result_message: '订单支付成功',
  85. result_info: {},
  86. },
  87. failed: {
  88. result_status: mods.payStatus.failed,
  89. result_message: '订单支付失败',
  90. result_info: {},
  91. },
  92. pending: {
  93. result_status: mods.payStatus.pending,
  94. result_message: '订单支付中',
  95. result_info: {},
  96. },
  97. timeout: {
  98. result_status: mods.payStatus.timeout,
  99. result_message: '订单支付超时',
  100. result_info: {},
  101. },
  102. cancel: {
  103. result_status: mods.payStatus.cancel,
  104. result_message: '支付取消',
  105. result_info: {},
  106. },
  107. unknown: {
  108. result_status: mods.payStatus.unknown,
  109. result_message: '订单结果未知',
  110. result_info: {},
  111. },
  112. paramError: {
  113. result_status: mods.payStatus.paramError,
  114. result_message: '参数错误',
  115. result_info: {},
  116. },
  117. };