caimei-paycash.js 33 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693
  1. /**
  2. *Created by ZHJY on 2020/7/14.
  3. */
  4. var payContainer = new Vue({
  5. el:"#payContainer",
  6. data: {
  7. isSubMitStatus:false,
  8. payInfo:{
  9. payBankNum: '', //支付类型
  10. payOrderId: '', //订单ID
  11. payUnpaidaMount: '', //待支付金额
  12. payAmount: 0,//本次支付金额
  13. payMobileUrl: '',//二维码生成链接
  14. payData:{}, //支付数据
  15. payUserType:'ENTERPRISE',
  16. payType:'',
  17. },
  18. bankListData:[],
  19. methodTab:['线上支付','转账支付'],
  20. mobileData:[
  21. {imgUrl:'/img/pay/iconbank-ali@2x.png',bankName:'支付宝支付',bankNum:'ALIPAY'},
  22. {imgUrl:'/img/pay/iconbank-wx@2x.png',bankName:'微信支付',bankNum:'WEIXIN'},
  23. {imgUrl:'/img/pay/iconbank-B2Bbank@2x.png',bankName:'网银支付',bankNum:'ICBC_B2B'},
  24. {imgUrl:'/img/pay/iconbank-B2Cbank@2x.png',bankName:'个人网银',bankNum:'ICBC_B2C'}
  25. ],
  26. pageType:'',//页面跳转类型 1 二手支付
  27. paidAmount:'',//订单待付金额
  28. payableAmount:'',//应付金额
  29. receiptAmount:'',//已支付金额
  30. balanceAmount:'',//应付剩余金额
  31. payAmount:'',//本次支付金额
  32. paymentIimit:5000,
  33. paymentIimitText:'',
  34. discernReceiptList:[],//支付记录列表
  35. tabIndex:0,//支付方式 0 移动支付 1网银支付 2线下转账
  36. mbOrderId:'',//支付订单ID
  37. BankUserType:1,
  38. mobileTabIndex:null,
  39. bankTabIndex:0,
  40. isRequest:false,
  41. isPayAlert:false,
  42. isPaySwitch:false,
  43. paySuccessCounter:'',
  44. bankPayLink_url:'',
  45. orderIdentificationId:'',//订单标识
  46. receiptStatus:'',
  47. isReceiptStatus:false,
  48. onlinePay:1,
  49. payStatusText:'使用微信和企业网银支付全部金额后,供应商会在24小时后发货(周末、节假日顺延)。若着急发货,可以选择使用线下转账进行付款。',
  50. productID:'',//发布商品的ID
  51. is_Wechat_bowcr:false,
  52. comboInfo: null, //选中的svip套餐信息
  53. vipRecordId: undefined,
  54. },
  55. filters: {
  56. NumFormat:function(value) {
  57. if(!value) return '0.00';
  58. var intPart = Number(value) - Number(value)%1; //获取整数部分(这里是windy93的方法)
  59. var intPartFormat = intPart.toString().replace(/(\d)(?=(?:\d{3})+$)/g, '$1,'); //将整数部分逢三一断
  60. var floatPart = ".00"; //预定义小数部分
  61. var value2Array = value.toString().split(".");
  62. if(value2Array.length == 2) { //=2表示数据有小数位
  63. floatPart = value2Array[1].toString(); //拿到小数部分
  64. if(floatPart.length == 1) { //补0,实际上用不着
  65. return intPartFormat + "." + floatPart + '0';
  66. } else {
  67. return intPartFormat + "." + floatPart;
  68. }
  69. } else {
  70. return intPartFormat + floatPart;
  71. }
  72. }
  73. },
  74. methods: {
  75. infoPayOrderCheckoutCounter:function(){//初始化订单数据
  76. var _self = this;
  77. PayApi.PayOrderCheckoutCounter({orderId:_self.payInfo.payOrderId},function(response){
  78. if(response.code == 0){
  79. // console.log(response);
  80. var data = response.data; //金额初始化
  81. _self.payInfo.payUnpaidaMount = (data.order.payableAmount - data.order.receiptAmount).toFixed(2);
  82. _self.payInfo.payAmount = (data.order.payableAmount-data.order.receiptAmount).toFixed(2);
  83. _self.discernReceiptList = data.discernReceipt;
  84. _self.paidAmount = (data.order.payableAmount-data.order.receiptAmount).toFixed(2);
  85. _self.receiptAmount = data.order.receiptAmount;
  86. _self.payableAmount= data.order.payableAmount;
  87. _self.balanceAmount = ( _self.payableAmount - _self.receiptAmount).toFixed(2) - _self.payInfo.payAmount;
  88. _self.payAmount = (_self.payableAmount - _self.receiptAmount).toFixed(2);//本次支付金额
  89. _self.paySuccessCounter = data.order.paySuccessCounter;
  90. _self.receiptStatus = data.order.receiptStatus;
  91. _self.onlinePay = data.onlinePay ;
  92. if(_self.receiptAmount>0){
  93. _self.payStatusText = '使用微信和网银支付全部金额后,供应商会在24小时后发货(周末、节假日顺延)。';
  94. _self.isReceiptStatus = false;
  95. }else{
  96. _self.payStatusText = '使用微信和网银支付全部金额后,供应商会在24小时后发货(周末、节假日顺延)。若着急发货,可以选择使用线下转账进行付款。';
  97. _self.isReceiptStatus = true;
  98. }
  99. _self.isRequest = true;
  100. _self.PayOrderOnLineSwitch();
  101. }else{
  102. CAIMEI.Alert(response.msg,'确定',false);
  103. }
  104. })
  105. },
  106. getBankList:function () {// 获取网银支付银行列表
  107. var _self = this;
  108. PayApi.PayGetBankCode({},function(response){
  109. if(response.code == 0){
  110. _self.bankListData = response.data.list;
  111. }else{
  112. console.log('获取网银支付银行列表异常')
  113. }
  114. })
  115. },
  116. PayOrderOnLineSwitch:function(){//获取是否可以先上支付
  117. var _self = this;
  118. PayApi.PayOrderOnLineSwitch({},function(response){
  119. if(response.code == 0){
  120. if(response.data === 0){
  121. _self.isPaySwitch = true;
  122. if (_self.pageType === '2') {
  123. CAIMEI.dialog('支付系统遇到点小问题,请稍后重试', false);
  124. return;
  125. }
  126. CAIMEI.Alert('线上支付功能正在维护中,请前往订单详情页面查看线下转账方式后进行付款','确定',true,function(){
  127. window.location.href='/user/order/detail.html?orderId='+_self.payInfo.payOrderId;
  128. });
  129. }
  130. }else{
  131. CAIMEI.Alert(response.msg,'确定',false);
  132. }
  133. })
  134. },
  135. PayMobileSubmitFn:function(){//点击移动支付方式
  136. var _self = this;
  137. if(_self.isPaySwitch && _self.pageType === '2'){
  138. CAIMEI.dialog('支付系统遇到点小问题,请稍后重试', false);
  139. return;
  140. }
  141. if(_self.onlinePay == 2){
  142. _self.layerConfirm();
  143. }else{
  144. if(_self.payInfo.payBankNum == ''){
  145. CAIMEI.dialog('请选择支付方式');
  146. return;
  147. }
  148. if(_self.payAmount == ''){
  149. CAIMEI.dialog('请输入本次支付金额');
  150. return;
  151. }
  152. if(_self.payAmount == 0){
  153. CAIMEI.dialog('本次支付金额不能为0');
  154. return;
  155. }
  156. if(_self.payAmount*100 < 2){
  157. CAIMEI.dialog('本次支付金额必须大于¥0.02');
  158. return;
  159. }
  160. if(_self.payAmount > _self.paymentIimit){
  161. switch (_self.payInfo.payBankNum) {
  162. case 'WEIXIN':
  163. _self.paymentIimitText = '本次支付金额已超出微信支付限额,请输入小于5千的金额进行支付';
  164. break;
  165. case 'ALIPAY':
  166. _self.paymentIimitText = '本次支付金额已超出支付宝限额,请输入小于5千的金额进行支付';
  167. break;
  168. }
  169. CAIMEI.Alert(_self.paymentIimitText,'知道了');
  170. return;
  171. }
  172. if(_self.payInfo.payBankNum == "WEIXIN"){
  173. if(_self.pageType === '1'){
  174. if(!isPC){
  175. var orderInfo = {//二手微信二维码参数
  176. pageType:1,
  177. productId:_self.productID,
  178. payAmount:_self.payAmount
  179. };
  180. _self.payInfo.payMobileUrl = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxea43a0f9ebce9e66&redirect_uri=https://www.caimei365.com/pay/wechatpay.html&response_type=code&scope=snsapi_base&state="+JSON.stringify(orderInfo)+"#wechat_redirect";
  181. location.href = _self.payInfo.payMobileUrl;
  182. }else{
  183. _self.payInfo.payData = {//二手
  184. type:_self.payInfo.payBankNum,
  185. productId:_self.productID,
  186. amount:_self.payAmount,
  187. url:_self.payInfo.payMobileUrl
  188. };
  189. CAIMEI.Storage.setItem('payData',JSON.stringify(_self.payInfo.payData));
  190. window.open("/pay/caimei-paymobile.html?pageType=1");
  191. _self.isPayAlert = true;
  192. }
  193. }else if(_self.pageType === '2'){ // 微信支付会员
  194. _self.payVipMiniWxPay();
  195. }else{
  196. if(!isPC){
  197. var orderInfo = {//普通订单微信二维码参数
  198. pageType:0,
  199. orderID:_self.payInfo.payOrderId,
  200. payAmount:_self.payAmount
  201. };
  202. _self.payInfo.payMobileUrl = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxea43a0f9ebce9e66&redirect_uri=https://www.caimei365.com/pay/wechatpay.html&response_type=code&scope=snsapi_base&state="+JSON.stringify(orderInfo)+"#wechat_redirect";
  203. location.href = _self.payInfo.payMobileUrl;
  204. }else{
  205. _self.payInfo.payData = {//正常订单
  206. type:_self.payInfo.payBankNum,
  207. orderid:_self.payInfo.payOrderId,
  208. amount:_self.payAmount,
  209. url:_self.payInfo.payMobileUrl
  210. };
  211. CAIMEI.Storage.setItem('payData',JSON.stringify(_self.payInfo.payData));
  212. window.open("/pay/caimei-paymobile.html?pageType=0");
  213. _self.isPayAlert = true;
  214. }
  215. }
  216. }else if(_self.payInfo.payBankNum == "ALIPAY"){//支付宝支付
  217. if(_self.pageType === '1'){// 二手
  218. var params = {//二手
  219. returnUrl:'https://www.caimei365.com/',
  220. productId:_self.productID,
  221. };
  222. _self.PayOrdersecondAliPay(params);
  223. }else if(_self.pageType === '2'){ // 支付宝支付会员
  224. _self.payVipAliPay();
  225. }else{
  226. var params = {//正常订单
  227. payAmount:Math.round(_self.payAmount*100),
  228. returnUrl:'https://www.caimei365.com/',
  229. orderId:_self.payInfo.payOrderId
  230. };
  231. _self.PayOrderPcMallAlipay(params);
  232. }
  233. }else{// 网银支付
  234. if(_self.pageType === '1'){
  235. var params = {//二手
  236. payWay:_self.payInfo.payBankNum,
  237. returnUrl:'https://www.caimei365.com/',
  238. productId:_self.productID,
  239. };
  240. _self.PayOrdersecondUnion(params,_self.payInfo.payBankNum);
  241. }else if(_self.pageType === '2'){ // 网银支付会员
  242. console.log('网银支付会员');
  243. }else{
  244. var params = {//正常订单
  245. payWay:_self.payInfo.payBankNum,
  246. payAmount:Math.round(_self.payAmount*100),
  247. returnUrl:'https://www.caimei365.com/',
  248. orderId:_self.payInfo.payOrderId
  249. };
  250. _self.PayOrderPcMallPay(params,_self.payInfo.payBankNum);
  251. }
  252. }
  253. }
  254. },
  255. PaySubmitFn:function(){//点击网银支付方式
  256. var _self = this;
  257. if(_self.isPaySwitch && _self.pageType === '2'){
  258. CAIMEI.dialog('支付系统遇到点小问题,请稍后重试', false);
  259. return;
  260. }
  261. if(_self.onlinePay == 2){
  262. _self.layerConfirm();
  263. }else{
  264. if(_self.payInfo.payBankNum == ''){
  265. CAIMEI.dialog('请选择银行!');
  266. return;
  267. }
  268. if(_self.payAmount <= 10){
  269. CAIMEI.dialog('网银支付的金额必须大于¥10.00');
  270. return;
  271. }
  272. if(_self.pageType === '1'){
  273. var params = {//二手
  274. bankCode:_self.payInfo.payBankNum,
  275. returnUrl:'https://www.caimei365.com/pay/success.html?pageType=www&type=success&payAmount='+_self.payAmount,
  276. productId:_self.productID,
  277. userType:_self.payInfo.payUserType,
  278. };
  279. _self.PayOrdersecondUnion(params);
  280. } else if (_self.pageType === '2') { // 网银付会员
  281. _self.payVipPcMallPay();
  282. } else {
  283. var params = {//正常订单
  284. payAmount:Math.round(_self.payAmount*100),
  285. bankCode:_self.payInfo.payBankNum,
  286. returnUrl:'https://www.caimei365.com/pay/success.html?pageType=www&type=success&payAmount='+_self.payAmount,
  287. orderId:_self.payInfo.payOrderId,
  288. userType:_self.payInfo.payUserType
  289. };
  290. _self.PayOrderPcMallPay(params,_self.payInfo.payBankNum);
  291. }
  292. }
  293. },
  294. PayOrderPcMallPay:function(params){// 正常订单网银支付
  295. var _self = this;
  296. _self.isSubMitStatus=true;
  297. PayApi.PayOrderPcMallPay(params,function(response){
  298. if(response.code == 0){
  299. _self.isPayAlert = true;
  300. _self.isSubMitStatus=false;
  301. _self.mbOrderId = response.data.data.mbOrderId;
  302. window.open(response.data.data.payUrl);
  303. }else{
  304. _self.isSubMitStatus=false;
  305. CAIMEI.Alert(response.msg,'确定',false);
  306. }
  307. })
  308. },
  309. PayOrderPcMallAlipay:function (params){// 正常订单支付宝支付
  310. var _self = this;
  311. _self.isSubMitStatus=true;
  312. PayApi.PayOrderPcMallAlipay(params,function(response){
  313. if(response.code == 0){
  314. _self.isPayAlert = true;
  315. _self.isSubMitStatus=false;
  316. _self.mbOrderId = response.data.data.mbOrderId;
  317. _self.payInfo.payMobileUrl = response.data.data.payUrl;
  318. _self.payInfo.payData = {
  319. mbOrderId:_self.mbOrderId,
  320. type:_self.payInfo.payBankNum,
  321. orderid:_self.payInfo.payOrderId,
  322. amount:_self.payAmount,
  323. url:_self.payInfo.payMobileUrl
  324. };
  325. CAIMEI.Storage.setItem('payData',JSON.stringify(_self.payInfo.payData));
  326. if(!isPC){
  327. location.href = _self.payInfo.payMobileUrl;
  328. }else{
  329. window.open("/pay/caimei-paymobile.html?pageType=1");
  330. }
  331. }else{
  332. CAIMEI.Alert(response.msg,'确定',false);
  333. _self.isSubMitStatus=false;
  334. }
  335. })
  336. },
  337. PayOrdersecondAliPay:function (params){// 二手支付宝支付
  338. var _self = this;
  339. _self.isSubMitStatus=true;
  340. PayApi.PayOrdersecondAliPay(params,function(response){
  341. if(response.code == 0){
  342. _self.isPayAlert = true;
  343. _self.isSubMitStatus=false;
  344. _self.mbOrderId = response.data.data.mbOrderId;
  345. _self.payInfo.payMobileUrl = response.data.data.payUrl;
  346. _self.payInfo.payData = {
  347. mbOrderId:_self.mbOrderId,
  348. type:_self.payInfo.payBankNum,
  349. productId:_self.productID,
  350. amount:_self.payAmount,
  351. url:_self.payInfo.payMobileUrl
  352. };
  353. CAIMEI.Storage.setItem('payData',JSON.stringify(_self.payInfo.payData));
  354. window.open("/pay/caimei-paymobile.html?pageType=1");
  355. }else{
  356. CAIMEI.Alert(response.msg,'确定',false);
  357. _self.isSubMitStatus=false;
  358. }
  359. })
  360. },
  361. PayOrdersecondUnion:function (params){// 二手网银支付
  362. var _self = this;
  363. _self.isSubMitStatus=true;
  364. PayApi.PayOrdersecondUnion(params,function(response){
  365. if(response.code == 0){
  366. _self.isPayAlert = true;
  367. _self.isSubMitStatus=false;
  368. _self.mbOrderId = response.data.data.mbOrderId;
  369. window.open(response.data.data.payUrl);
  370. }else{
  371. CAIMEI.Alert(response.msg,'确定',false);
  372. _self.isSubMitStatus=false;
  373. }
  374. })
  375. },
  376. changePayAmount:function(event){//输入支付金额控制
  377. var _self = this;
  378. var value = event.target.value;
  379. if(value == "" || value <0 ){//判断是否等于0 或者为空
  380. _self.payAmount = '';
  381. _self.payInfo.payAmount = _self.payInfo.payUnpaidaMount;
  382. _self.balanceAmount = _self.toFixedFn(_self.payInfo.payUnpaidaMount);
  383. return;
  384. }else if(Number(value) > _self.payInfo.payUnpaidaMount){//判断大于应付金额
  385. _self.payAmount = _self.payInfo.payUnpaidaMount;
  386. _self.payInfo.payAmount = _self.payAmount;
  387. _self.balanceAmount = _self.toFixedFn(_self.payInfo.payUnpaidaMount-_self.payInfo.payAmount);
  388. }else{
  389. _self.payAmount = value;
  390. _self.payInfo.payAmount = _self.payAmount;
  391. _self.balanceAmount = _self.toFixedFn(_self.payInfo.payUnpaidaMount-_self.payInfo.payAmount);
  392. }
  393. },
  394. changePayAmountBlur:function(event){//失去焦点设置金额
  395. var _self = this;
  396. _self.payAmount = _self.toFixedFn(event.target.value);
  397. _self.payInfo.payAmount = _self.payAmount;
  398. },
  399. changeTab:function(index,item){//选择支付方式切换
  400. this.tabIndex = index;
  401. switch (this.tabIndex) {
  402. case 0:
  403. this.payInfo.payBankNum = 'ALIPAY';
  404. break;
  405. case 1:
  406. this.payInfo.payBankNum = '';
  407. break;
  408. }
  409. },
  410. checkMobilePay:function(index,bankNum){//选择移动支付方式
  411. var _self = this;
  412. _self.mobileTabIndex = index;
  413. _self.payInfo.payBankNum = bankNum;
  414. if( _self.mobileTabIndex==2){
  415. _self.bankTabIndex = 0
  416. _self.payInfo.payType = '1';
  417. _self.payInfo.payUserType = 'ENTERPRISE';
  418. }else if(_self.mobileTabIndex == 3){
  419. _self.bankTabIndex = 0
  420. _self.payInfo.payType = '2';
  421. _self.payInfo.payUserType = 'USER';
  422. }
  423. },
  424. checkBankPay:function(index,item){//选择网银支付方式-选择银行
  425. var _self = this;
  426. _self.bankTabIndex = index;
  427. if( _self.mobileTabIndex == 2 ){
  428. _self.payInfo.payBankNum = item.B2bNum;
  429. }else if( _self.mobileTabIndex ==3 ){
  430. _self.payInfo.payBankNum = item.B2cNum;
  431. }
  432. },
  433. copyLinkPaySubmitFn:function(){//复制网银支付链接
  434. var _self = this;
  435. if(_self.isPaySwitch && _self.pageType === '2'){
  436. CAIMEI.dialog('支付系统遇到点小问题,请稍后重试', false);
  437. return;
  438. }
  439. if(_self.onlinePay == 2){
  440. _self.layerConfirm();
  441. }else{
  442. if(_self.payAmount == ''){
  443. CAIMEI.dialog('请输入本次支付金额');
  444. return;
  445. }
  446. if(_self.payAmount == 0){
  447. CAIMEI.dialog('本次支付金额不能为0');
  448. return;
  449. }
  450. if(_self.payAmount <= 10){
  451. CAIMEI.dialog('网银支付的金额必须大于¥10.00');
  452. return;
  453. }
  454. var params = {};
  455. if(_self.pageType == 2){
  456. params = {
  457. unpaidAmount:_self.payAmount,
  458. vipRecordId: _self.vipRecordId,
  459. payType:_self.payInfo.payType,
  460. }
  461. }else{
  462. params = {
  463. unpaidAmount:_self.payAmount,
  464. orderId:_self.payInfo.payOrderId,
  465. payType:_self.payInfo.payType
  466. }
  467. }
  468. PayApi.PayOrderPayLink(params,function(response){
  469. _self.bankPayLink_url = response.data;
  470. var oInput = document.createElement("textarea");
  471. oInput.value = _self.bankPayLink_url;
  472. document.body.appendChild(oInput);
  473. oInput.select(); // 选择对象
  474. document.execCommand("Copy"); // 执行浏览器复制命令
  475. document.body.removeChild(oInput);
  476. CAIMEI.dialog('复制成功');
  477. }
  478. )
  479. }
  480. },
  481. copyOrderBtnSubmitFn:function(){//复制订单标识
  482. var _self = this;
  483. var oInput = document.createElement("textarea");
  484. oInput.value = _self.orderIdentificationId;
  485. document.body.appendChild(oInput);
  486. oInput.select(); // 选择对象
  487. document.execCommand("Copy"); // 执行浏览器复制命令
  488. document.body.removeChild(oInput);
  489. CAIMEI.dialog('复制成功');
  490. },
  491. hidePayAlert:function(){//隐藏已支付弹窗
  492. var _self = this;
  493. _self.isPayAlert = false;
  494. },
  495. RefreshBody:function(){//刷新页面
  496. var _self = this;
  497. // 验证支付(支付会员)
  498. if(_self.pageType == 2){
  499. PayApi.PayOrderFindOrderStatus({mbOrderId:_self.mbOrderId},function(response){
  500. _self.isPayAlert = false;
  501. var data = response.data.data;
  502. if(data.status === '1'){
  503. _self.windowLocationHref('success');
  504. }else{
  505. _self.windowLocationHref('error');
  506. }
  507. });
  508. return;
  509. }
  510. if(_self.payInfo.payBankNum == 'WEIXIN'){
  511. PayApi.PayOrderPayWhetherSuccess({orderId: _self.payInfo.payOrderId, paySuccessCounter:_self.paySuccessCounter},function(response){
  512. _self.isPayAlert = false;
  513. if(response.code === 0){
  514. _self.windowLocationHref('success');
  515. }else{
  516. _self.windowLocationHref('error');
  517. }
  518. });
  519. }else{
  520. PayApi.PayOrderFindOrderStatus({mbOrderId:_self.mbOrderId},function(response){
  521. _self.isPayAlert = false;
  522. var data = response.data.data;
  523. if(data.status === '1'){
  524. _self.windowLocationHref('success');
  525. }else{
  526. _self.windowLocationHref('error');
  527. }
  528. });
  529. }
  530. },
  531. windowLocationHref:function(state){
  532. var _self = this;
  533. if( _self.pageType === '1'){
  534. window.location.href = '/pay/success.html?pageType=second&type='+state+'&payAmount='+_self.payAmount;
  535. }else if(_self.pageType === '2'){
  536. window.location.href = '/pay/success.html?pageType=vip&type='+state+'&payAmount='+_self.payAmount;
  537. }else{
  538. window.location.href = '/pay/success.html?pageType=www&type='+state+'&payAmount='+_self.payAmount;
  539. }
  540. },
  541. payTypeText:function(state){//处理支付记录文字
  542. var stateText = '',
  543. stateTextObject={
  544. 12:'企业网银',
  545. 13:'微信支付',
  546. 14:'支付宝',
  547. 15:'微信支付',
  548. 16:'余额抵扣',
  549. };
  550. Object.keys(stateTextObject).forEach(function(key) {
  551. if(key == state){
  552. stateText = stateTextObject[key]
  553. }
  554. });
  555. return stateText;
  556. },
  557. toFixedFn:function(text){//处理小数点后两位数
  558. return Number(text).toFixed(2);
  559. },
  560. layerConfirm:function(){
  561. var _self = this;
  562. CAIMEI.Alert('本次交易暂不支持线上支付,请使用线下转账方式付款。','知道了',true,function () {
  563. _self.payStatusText = '使用微信和网银支付全部金额后,供应商会在24小时后发货(周末、节假日顺延)。若着急发货,可以选择使用线下转账进行付款。';
  564. _self.isReceiptStatus = true;
  565. });
  566. },
  567. // 网银支付会员
  568. payVipPcMallPay: function(){
  569. console.log('网银支付会员');
  570. var _self = this;
  571. var params = {
  572. bankCode: this.payInfo.payBankNum,
  573. returnUrl: 'https://www.caimei365.com/pay/success.html?pageType=www&type=success&payAmount='+_self.payAmount,
  574. userType: _self.payInfo.payUserType,
  575. vipRecordId: _self.vipRecordId
  576. };
  577. PayApi.PayVipPcMallPay(params, function (response) {
  578. if (response.code == 0) {
  579. _self.isPayAlert = true;
  580. _self.isSubMitStatus = false;
  581. _self.mbOrderId = response.data.data.mbOrderId;
  582. window.open(response.data.data.payUrl);
  583. } else {
  584. _self.isSubMitStatus = false;
  585. CAIMEI.Alert(response.msg, '确定', false);
  586. }
  587. });
  588. },
  589. // 支付宝支付会员
  590. payVipAliPay: function(){
  591. console.log('支付宝支付会员');
  592. var _self = this;
  593. var params = {
  594. bankCode: _self.payInfo.payBankNum,
  595. returnUrl: 'https://www.caimei365.com/',
  596. userType: _self.payInfo.payUserType,
  597. vipRecordId: _self.vipRecordId
  598. };
  599. console.log(params);
  600. PayApi.PayVipAliPay(params, function(response){
  601. console.log(response);
  602. if (response.code === 0) {
  603. _self.isPayAlert = true;
  604. _self.mbOrderId = response.data.data.mbOrderId;
  605. _self.payInfo.payMobileUrl = response.data.data.payUrl;
  606. _self.payInfo.payData = {
  607. mbOrderId: _self.mbOrderId,
  608. type: _self.payInfo.payBankNum,
  609. amount: _self.payAmount,
  610. url: _self.payInfo.payMobileUrl,
  611. };
  612. CAIMEI.Storage.setItem('payData', JSON.stringify(_self.payInfo.payData));
  613. if (!isPC) {
  614. location.href = _self.payInfo.payMobileUrl;
  615. } else {
  616. window.open("/pay/caimei-paymobile.html?pageType=2&duration=" + _self.comboInfo.duration);
  617. }
  618. } else {
  619. CAIMEI.Alert(response.msg, '确定', false);
  620. _self.isSubMitStatus = false;
  621. }
  622. });
  623. },
  624. // 微信支付会员
  625. payVipMiniWxPay: function(){
  626. if (!isPC) {
  627. var orderInfo = {//普通订单微信二维码参数
  628. pageType: 2,
  629. vipId: this.comboInfo.id,
  630. vipRecordId: this.vipRecordId,
  631. payAmount: this.payAmount
  632. };
  633. this.payInfo.payMobileUrl = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxea43a0f9ebce9e66&redirect_uri=https://www.caimei365.com/pay/wechatpay.html&response_type=code&scope=snsapi_base&state=" + JSON.stringify(orderInfo) + "#wechat_redirect";
  634. location.href = this.payInfo.payMobileUrl;
  635. } else {
  636. this.payInfo.payData = {
  637. type: this.payInfo.payBankNum,
  638. vipId: this.comboInfo.id,
  639. vipRecordId: this.vipRecordId,
  640. amount: this.payAmount,
  641. duration: this.comboInfo.duration,
  642. };
  643. CAIMEI.Storage.setItem('payData', JSON.stringify(this.payInfo.payData));
  644. window.open("/pay/caimei-paymobile.html?pageType=2");
  645. this.isPayAlert = true;
  646. }
  647. },
  648. },
  649. mounted: function () {
  650. var _self = this;
  651. // 判断当前支付是订单支付
  652. _self.pageType = CAIMEI.getUrlParam('pageType');
  653. _self.vipRecordId = parseInt(CAIMEI.getUrlParam('vipRecordId'));
  654. if (_self.pageType === '1') {//二手
  655. _self.productID = CAIMEI.getUrlParam('productID');
  656. _self.payAmount = _self.toFixedFn(100);
  657. _self.isRequest = true;
  658. _self.payStatusText = '';
  659. } else if (_self.pageType === '2') { // 支付会员
  660. this.PayOrderOnLineSwitch();
  661. // 从本地获取选中的svip套餐信息后删除本地信息
  662. this.comboInfo = JSON.parse(CAIMEI.Storage.getItem('comboInfo'));
  663. // CAIMEI.Storage.removeItem('comboInfo');
  664. // 设置支付金额
  665. this.payAmount = _self.toFixedFn(this.comboInfo.price);
  666. this.getBankList(); // 获取银行列表
  667. } else {
  668. var HrefType = CAIMEI.getUrlParam('type');
  669. if (HrefType == 'payfirm') {
  670. _self.payInfo.payOrderId = CAIMEI.getUrlParam('orderId');
  671. _self.orderIdentificationId = '#' + _self.payInfo.payOrderId + '#';
  672. } else {
  673. var data = JSON.parse(localStorage.getItem("confirmOrderInfo"));
  674. _self.payInfo.payOrderId = data.data.orderId;
  675. _self.orderIdentificationId = '#' + _self.payInfo.payOrderId + '#';
  676. }
  677. this.getBankList(); // 获取银行列表
  678. this.infoPayOrderCheckoutCounter();//正常订单初始化
  679. }
  680. var viewer = window.navigator.userAgent.toLowerCase();
  681. if(viewer.match(/MicroMessenger/i) == 'micromessenger'){
  682. _self.is_Wechat_bowcr = true;
  683. _self.payInfo.payBankNum = 'WEIXIN';
  684. _self.mobileTabIndex = 1;
  685. }else{
  686. _self.is_Wechat_bowcr = false;
  687. _self.payInfo.payBankNum = 'ALIPAY';
  688. _self.mobileTabIndex = 0;
  689. }
  690. }
  691. });