caimei-paymobile.js 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302
  1. /**
  2. *Created by ZHJY on 2020/7/14.
  3. */
  4. var payContainer = new Vue({
  5. el:"#payContainer",
  6. data: {
  7. loginLoading:true,
  8. payInfo:{
  9. payType:'',//支付类型 WEIXIN 微信支付 ALIPAY 支付宝支付
  10. shopOrderId:'', //订单ID
  11. payAmount:0,
  12. payUnpaidAmount:0,//本次支付金额
  13. payMobileUrl:'',//URL
  14. },
  15. orderNo:'',//订单编号
  16. shopName:'',// 收款方
  17. payableAmount:'',//应付金额
  18. receiptAmount:'',//已支付金额
  19. balanceAmount:'',//应付剩余金额
  20. payAmount:'',//本次支付金额
  21. discernReceiptList:[],//支付记录列表
  22. tabIndex:0,//支付方式 0 移动支付 1网银支付 2线下转账
  23. paySuccessCounter:'',
  24. mobileTabIndex:0,
  25. bankTabIndex:0,
  26. isRequest:false,
  27. isRefresh:false,
  28. maxtime:300,
  29. pageType:'',//页面跳转类型
  30. productID:'',//商品ID
  31. duration: 0, // 购买的会员期限
  32. mbOrderId:0,
  33. orderFlag:1,// 是否是订单 0非订单 1订单
  34. couponRecordId:0,
  35. vipId: null, // vip套餐id
  36. vipRecordId: undefined,
  37. couponId:0,
  38. userId:0
  39. },
  40. filters: {
  41. NumFormat:function(value) {
  42. if(!value) return '0.00';
  43. var intPart = Number(value) - Number(value)%1; //获取整数部分(这里是windy93的方法)
  44. var intPartFormat = intPart.toString().replace(/(\d)(?=(?:\d{3})+$)/g, '$1,'); //将整数部分逢三一断
  45. var floatPart = ".00"; //预定义小数部分
  46. var value2Array = value.toString().split(".");
  47. if(value2Array.length == 2) { //=2表示数据有小数位
  48. floatPart = value2Array[1].toString(); //拿到小数部分
  49. if(floatPart.length == 1) { //补0,实际上用不着
  50. return intPartFormat + "." + floatPart + '0';
  51. } else {
  52. return intPartFormat + "." + floatPart;
  53. }
  54. } else {
  55. return intPartFormat + floatPart;
  56. }
  57. }
  58. },
  59. methods: {
  60. infoPayOrderCheckoutCounter:function(){//初始化订单数据
  61. var _self = this;
  62. if( _self.pageType === '1' || _self.pageType === '2' || _self.pageType === '3'){
  63. console.log('1111111111111')
  64. setTimeout(function(){
  65. switch (_self.payInfo.payType) {
  66. case 'WEIXIN':
  67. _self.getWrchatQrcodeShow();
  68. break;
  69. case 'ALIPAY':
  70. _self.getAliPayQrcodeInfo();
  71. break;
  72. }
  73. }, 2000);
  74. } else {
  75. console.log('22222222222')
  76. PayApi.PayOrderCheckoutShoporders({shopOrderId:_self.payInfo.shopOrderId},function(response){
  77. if(response.code == 0){
  78. // console.log(response);
  79. var data = response.data;
  80. _self.orderNo = data.shopOrder.orderNo;
  81. _self.shopName = data.shopOrder.shopName;
  82. _self.paySuccessCounter = data.shopOrder.paySuccessCounter;
  83. _self.payInfo.payAmount = data.shopOrder.realPay - data.shopOrder.receiptAmount;
  84. switch (_self.payInfo.payType) {
  85. case 'WEIXIN':
  86. _self.getWrchatQrcodeShow();
  87. break;
  88. case 'ALIPAY':
  89. _self.getAliPayQrcodeInfo();
  90. break;
  91. }
  92. }else{
  93. CAIMEI.Alert(response.msg,'确定',false);
  94. }
  95. })
  96. }
  97. },
  98. getAliPayQrcodeInfo:function(){//生成支付宝二维码
  99. var _self = this;
  100. var qrcode = new QRCode(document.getElementById("ali_pay_container"), {
  101. render: "canvas", //也可以替换为table
  102. text: _self.payInfo.payMobileUrl,
  103. width: 220,
  104. height: 220,
  105. colorDark : "#000000",
  106. colorLight : "#ffffff",
  107. correctLevel : QRCode.CorrectLevel.H
  108. });
  109. _self.loginLoading = false;
  110. _self.isRequest = true;
  111. var timeClock = setInterval(function(){
  112. _self.maxtime--;
  113. if (_self.maxtime == 0) {
  114. clearInterval(timeClock);
  115. _self.isRefresh = true;
  116. }
  117. },1000);
  118. _self.setTimerAliPay();
  119. },
  120. getWrchatQrcodeShow:function(){//生成微信二维码
  121. var _self = this;
  122. var orderInfo = {};
  123. if( _self.pageType === '1'){
  124. orderInfo = {//二手微信二维码参数
  125. pageType:1,
  126. productId:_self.productID,
  127. payAmount:_self.payAmount
  128. };
  129. } else if (_self.pageType === '2') { // 微信支付会员
  130. console.log('微信支付会员');
  131. orderInfo = {
  132. pageType: 2,
  133. payAmount: _self.payAmount,
  134. vipId: _self.vipId,
  135. vipRecordId: _self.vipRecordId
  136. };
  137. } else if (_self.pageType === '3') { // 微信支付优惠券
  138. console.log('微信支付优惠券');
  139. orderInfo = {
  140. pageType: 3,
  141. payAmount: _self.payAmount,
  142. couponId: _self.couponId,
  143. couponRecordId:_self.couponRecordId,
  144. userId : _self.userId
  145. };
  146. } else {
  147. orderInfo = {//普通订单微信二维码参数
  148. pageType:0,
  149. shopOrderId:_self.payInfo.shopOrderId,
  150. payAmount:_self.payAmount
  151. };
  152. }
  153. // _self.payInfo.payMobileUrl = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx91c4152b60ca91a3&redirect_uri=https://www-b.caimei365.com/pay/wechatpay.html&response_type=code&scope=snsapi_base&state="+JSON.stringify(orderInfo)+"#wechat_redirect";
  154. _self.payInfo.payMobileUrl = 'https://www-b.caimei365.com/wxcode.html?orderInfo='+encodeURIComponent(JSON.stringify(orderInfo));
  155. console.log(_self.payInfo.payMobileUrl);
  156. window.open(_self.payInfo.payMobileUrl)
  157. var qrcode = new QRCode(document.getElementById("wx_pay_container"), {
  158. render: "canvas", //也可以替换为table
  159. text: _self.payInfo.payMobileUrl,
  160. width: 220,
  161. height: 220,
  162. colorDark : "#000000",
  163. colorLight : "#ffffff",
  164. correctLevel : QRCode.CorrectLevel.H
  165. });
  166. _self.loginLoading = false;
  167. _self.isRequest = true;
  168. var timeClock = setInterval(function(){
  169. _self.maxtime--;
  170. if (_self.maxtime == 0) {
  171. clearInterval(timeClock);
  172. _self.isRefresh = true;
  173. }
  174. },1000);
  175. _self.setTimerWechatPay();
  176. },
  177. setTimerWechatPay:function () {//定时任务查询微信支付结果
  178. var _self = this;
  179. var timer;
  180. if(_self.pageType === '2'){//超级会员支付结果
  181. PayApi.PayOrderPayVipCheck({recordId : _self.vipRecordId},function(response){
  182. // console.log(response);
  183. if(response.code === 0){
  184. CAIMEI.dialog('支付成功');
  185. clearTimeout(timer); //清理定时任务
  186. setTimeout(function(){
  187. window.location.href = '/index.html';
  188. },2000);
  189. }else{
  190. timer = setTimeout(function(){
  191. _self.setTimerWechatPay()
  192. }, 1000*10);
  193. }
  194. });
  195. }else if(_self.pageType === '3'){//优惠券支付结果
  196. PayApi.PayOrderPayCouponCheck({ couponRecordId: _self.couponRecordId },function(response){
  197. // console.log(response);
  198. if(response.code === 0){
  199. CAIMEI.dialog('支付成功');
  200. clearTimeout(timer); //清理定时任务
  201. setTimeout(function(){
  202. window.location.href = '/index.html';
  203. },2000);
  204. }else{
  205. timer = setTimeout(function(){
  206. _self.setTimerWechatPay()
  207. }, 1000*10);
  208. }
  209. });
  210. }else{
  211. PayApi.PayOrderPayWhetherSuccess({orderId: _self.payInfo.shopOrderId, paySuccessCounter:_self.paySuccessCounter,shopOrderId:_self.payInfo.shopOrderId},function(response){
  212. // console.log(response);
  213. if(response.code === 0){
  214. CAIMEI.dialog('支付成功');
  215. clearTimeout(timer); //清理定时任务
  216. setTimeout(function(){
  217. window.location.href = '/index.html';
  218. },2000);
  219. }else{
  220. timer = setTimeout(function(){
  221. _self.setTimerWechatPay()
  222. }, 1000*10);
  223. }
  224. });
  225. }
  226. },
  227. setTimerAliPay:function () {//定时任务查询支付宝支付结果
  228. var _self = this;
  229. var timer;
  230. PayApi.PayOrderFindOrderStatus({mbOrderId:_self.mbOrderId,orderFlag:_self.orderFlag,shopOrderId:_self.payInfo.shopOrderId},function(response){
  231. var data = response.data;
  232. if(data.rt7_orderStatus === 'SUCCESS'){
  233. CAIMEI.dialog('支付成功');
  234. clearTimeout(timer); //清理定时任务
  235. setTimeout(function(){
  236. window.location.href = '/index.html';
  237. },3000);
  238. }else{
  239. timer = setTimeout(function(){
  240. _self.setTimerAliPay()
  241. }, 1000*10);
  242. }
  243. });
  244. },
  245. hidePayAlert:function(){//隐藏已支付弹窗
  246. var _self = this;
  247. _self.isPayAlert = false;
  248. },
  249. toFixedFn:function(text){//处理小数点后两位数
  250. return Number(text).toFixed(2);
  251. },
  252. },
  253. mounted: function () {
  254. var _self = this;
  255. var payData = JSON.parse(CAIMEI.Storage.getItem('payData'));
  256. _self.pageType = CAIMEI.getUrlParam('pageType');
  257. _self.duration = CAIMEI.getUrlParam('duration');
  258. if( _self.pageType === '1'){//二手
  259. console.log('二手商品');
  260. _self.payInfo.payType = payData.type;
  261. _self.orderFlag = 0;
  262. _self.productID = payData.productId;
  263. _self.payInfo.payMobileUrl = payData.url;
  264. _self.mbOrderId = payData.mbOrderId;
  265. _self.payAmount = _self.payableAmount = payData.amount;
  266. }else if(_self.pageType === '2'){// 超级会员
  267. _self.payInfo.payType = payData.type;
  268. _self.orderFlag = 0;
  269. _self.payAmount = _self.payableAmount = payData.amount;
  270. _self.mbOrderId = payData.mbOrderId;
  271. _self.payInfo.payMobileUrl = payData.url;
  272. _self.vipId = payData.vipId;
  273. _self.vipRecordId = payData.vipRecordId;
  274. if(!_self.duration) { // 微信支付获取会员开通月份
  275. _self.duration = payData.duration;
  276. }
  277. }else if(_self.pageType === '3'){// 优惠券
  278. _self.payInfo.payType = payData.type;
  279. _self.orderFlag = 0;
  280. _self.payAmount = _self.payableAmount = payData.amount;
  281. _self.mbOrderId = payData.mbOrderId;
  282. _self.couponRecordId = payData.couponRecordId;
  283. _self.payInfo.payMobileUrl = payData.url;
  284. _self.couponId = payData.couponId;
  285. _self.userId = payData.userId;
  286. }else{
  287. console.log('订单支付');
  288. _self.payInfo.payType = payData.type;
  289. _self.orderFlag = 1;
  290. _self.mbOrderId = payData.mbOrderId;
  291. _self.payInfo.shopOrderId = payData.shopOrderId;
  292. _self.payInfo.payUnpaidAmount = payData.amount;
  293. _self.payInfo.payMobileUrl = payData.url;
  294. _self.payAmount =_self.payableAmount = _self.payInfo.payUnpaidAmount;
  295. }
  296. console.log(_self.payInfo.payType);
  297. _self.infoPayOrderCheckoutCounter();
  298. }
  299. });