pay.js 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881
  1. var __request = require('../../utils/request.js')
  2. var _handle = require('../../utils/handle.js')
  3. var validator = require('../../utils/validator.js')
  4. function toNumber (val) {
  5. var num = Number(val)
  6. return isNaN(num) ? 0 : num
  7. }
  8. Page({
  9. data: {
  10. orderId: 0,
  11. payData: {},
  12. address: null,
  13. pick_address: null,
  14. selectaddress:false,
  15. selectpickaddress:false,
  16. balanceInfo: {},
  17. centInfo:{},
  18. cashInfo:{},
  19. userInfo: {},
  20. radish: 0,
  21. pwd: '',
  22. pwdDialog: false,
  23. useRadishSelect: false,
  24. useRadishSelectVal: 'select',
  25. showModal: false,
  26. luoboCount: '',
  27. countMoney: '',
  28. curPayway: 'weixinpay',
  29. payway: {
  30. weixin: 'weixinpay',
  31. balance: 'balance',
  32. cent: 'cent'
  33. },
  34. total:0,
  35. yunfei:0,
  36. _yunfei:0,
  37. payFlag:false,
  38. payCompleted:false,
  39. useBalance:false,
  40. useCash:true,
  41. afterdec:0,//使用提货券扣除后的总额
  42. remark:'',
  43. receivetype:0,//提货方式
  44. pickdepartsList:[],
  45. repickdepartsList:[],
  46. pickindex:0,
  47. pickid:0,
  48. has_unuse_quan:false,
  49. use_silver:0,
  50. pay_cash:0,//余额抵扣
  51. freight_limit:9900,
  52. unquan_silver:0,//不能使用提货券抵扣的银豆
  53. //20240314使用新接口获取相关扣除
  54. payQueryData:null
  55. },
  56. onLoad: function (options) {
  57. this.data.orderId = options.orderId;
  58. this.getOrderInfo()
  59. // this.getBalanceInfo()
  60. wx.setStorageSync('use_address', false);
  61. wx.setStorageSync('use_pick_address', false);
  62. wx.setStorageSync('receivetype', 0);
  63. this.getpickdeparts();
  64. },
  65. onShow: function () {
  66. this.getUserInfo()
  67. var receivetype = wx.getStorageSync('receivetype');
  68. if(receivetype == 0){
  69. var address = wx.getStorageSync('use_address');
  70. if(address){
  71. this.setData({
  72. address: address,
  73. selectaddress:true,
  74. receivetype : receivetype,
  75. yunfei : this.data._yunfei
  76. });
  77. }
  78. }else{
  79. var address = wx.getStorageSync('use_pick_address');
  80. if(address){
  81. this.setData({
  82. pick_address: address,
  83. selectpickaddress:true,
  84. receivetype : receivetype,
  85. yunfei : 0
  86. });
  87. }
  88. }
  89. if (!this.data.payCompleted) {
  90. this.setData({
  91. payFlag: false
  92. })
  93. }
  94. },
  95. inputPwd: function (e) {
  96. this.setData({
  97. pwd: e.detail.value
  98. })
  99. },
  100. checkboxChange: function (e) {
  101. if (e.detail.value[0]) {
  102. this.setData({
  103. useRadishSelect: true,
  104. useRadishSelectVal: 'select'
  105. })
  106. } else {
  107. this.setData({
  108. useRadishSelect: false
  109. })
  110. }
  111. },
  112. getOrderInfo: function () {
  113. var that = this
  114. var url = "v1/order/" + that.data.orderId;
  115. var params = {}
  116. var check_has_unuse_quan = false;
  117. var success = function (val) {
  118. val.data = val.data || {}
  119. val.data.product_list = val.data.product_list || []
  120. val.data.pay_way = val.data.pay_way || ''
  121. val.data.total_price = toNumber(val.data.total_price)
  122. val.data.freight = toNumber(val.data.freight)
  123. val.data.dis_amount = toNumber(val.data.dis_amount)
  124. val.data.coupon_price = toNumber(val.data.coupon_price)
  125. val.data.paied_cash = toNumber(val.data.paied_cash)
  126. val.data.paied_silver = toNumber(val.data.paied_silver)
  127. val.data.total_silver = toNumber(val.data.total_silver)
  128. if (val.data && val.data.product && !val.data.product.robo_balance_price) {
  129. that.setData({
  130. curPayway: 'weixinpay'
  131. })
  132. }
  133. var total = 0;
  134. for(var i in val.data.product_list){
  135. val.data.product_list[i].price = toNumber(val.data.product_list[i].price)
  136. val.data.product_list[i].count = toNumber(val.data.product_list[i].count)
  137. val.data.product_list[i].silver = toNumber(val.data.product_list[i].silver)
  138. if(!val.data.product_list[i].send) total = total + (val.data.product_list[i].price * val.data.product_list[i].count)
  139. }
  140. var canusebalance = 0;
  141. var nousebalance = 0;
  142. var use_silver = 0;
  143. var unquan_silver = 0;//使用的silver
  144. for(var i in val.data.product_list){
  145. var item = val.data.product_list[i];
  146. if(!item.send){
  147. if(val.data.special_promotion){//新增双十一促销判断
  148. canusebalance = canusebalance + (item.price * item.count);
  149. }else{
  150. // if(item.pv >= item.price){
  151. // canusebalance = canusebalance + (item.price * item.count);
  152. // }else{
  153. // nousebalance = nousebalance + (item.price * item.count);
  154. // }
  155. if(!item.use_quan){
  156. nousebalance = nousebalance + (item.price * item.count);
  157. check_has_unuse_quan = true;
  158. unquan_silver = unquan_silver + item.silver;
  159. }else{
  160. canusebalance = canusebalance + (item.price * item.count);
  161. }
  162. }
  163. use_silver = use_silver + item.silver;
  164. }
  165. }
  166. console.log('canusebalance',canusebalance);
  167. console.log('nousebalance',nousebalance);
  168. that.setData({
  169. payData: val.data,
  170. project: val.data.product_list,
  171. total:total,
  172. yunfei:that.data.receivetype == 0 ? total<that.data.freight_limit?val.data.freight:0 : 0,
  173. _yunfei:total<that.data.freight_limit?val.data.freight:0,
  174. canusebalance:canusebalance,
  175. nousebalance:nousebalance,
  176. has_unuse_quan:check_has_unuse_quan,
  177. use_silver:use_silver,
  178. disAmount:val.data.dis_amount,
  179. unquan_silver:unquan_silver
  180. });
  181. if(that.data.payData.order_type == 3){
  182. that.getCentInfo();
  183. }else{
  184. that.getCashInfo();
  185. }
  186. if(val.data.pay_way != '' && (val.data.address_id != 0 || val.data.pick_dept != 0)){
  187. if(val.data.pick_way == 0){
  188. that.getAddress(val.data.address_id);
  189. that.setData({
  190. selectaddress:true,
  191. receivetype : val.data.pick_way,
  192. yunfei : val.data.freight,
  193. remark : val.data.remark
  194. });
  195. }else{
  196. // that.getPickAddress(val.data.pick_dept);
  197. var pid = 0;
  198. for(var i = 0;i<that.data.pickdepartsList.length;i++){
  199. if(that.data.pickdepartsList[i]['id'] == val.data.pick_dept) pid = i;
  200. }
  201. var _pick_address = {
  202. contact:val.data.contact,
  203. tel:val.data.tel
  204. }
  205. that.setData({
  206. selectpickaddress:true,
  207. receivetype : val.data.pick_way,
  208. yunfei : 0,
  209. pick_address:_pick_address,
  210. pickindex:pid,
  211. pickid:that.data.payData.pick_dept,
  212. remark : val.data.remark
  213. });
  214. }
  215. }
  216. that.getPayQuery();
  217. }
  218. __request.$get(url, params, success)
  219. },
  220. getDefaultAddress: function () {
  221. var that = this
  222. var url = "v1/user/address/default";
  223. var params = {}
  224. var success = function (val) {
  225. if (val.data !== null) {
  226. that.setData({
  227. address: val.data
  228. });
  229. }
  230. }
  231. __request.$get(url, params, success)
  232. },
  233. getCashInfo: function(){
  234. var that = this
  235. var url = "v1/user/cash/balance/info";
  236. var params = {}
  237. var success = function (res) {
  238. console.log('res.data',res.data)
  239. that.setData({
  240. cashInfo: res.data
  241. })
  242. that.getBalanceInfo();
  243. }
  244. __request.$get(url, params, success)
  245. },
  246. getBalanceInfo: function () {
  247. var that = this
  248. var url = "v1/user/balance/info";
  249. var params = {}
  250. var success = function (val) {
  251. // console.log('showusebalance:',(val.data.total > 0 && that.data.payData.order_type == 0))
  252. //获取订单最高可用银豆
  253. var max_silver = that.data.payData.total_silver;
  254. //获取账户持有银豆
  255. // var user_silver = val.data.silver_total;
  256. // var use_silver = 0;//使用银豆
  257. // if(user_silver > 0){
  258. // use_silver = user_silver >= max_silver ? max_silver : user_silver;
  259. // }
  260. //新直接使用计算好的值
  261. var use_silver = that.data.use_silver;
  262. //总额和canuse&nouse减去银豆
  263. var has_balance = val.data.total;
  264. var sour_total = that.data.total;
  265. var mins_total = that.data.total - use_silver;
  266. var mins_canuse = that.data.canusebalance;
  267. var mins_nouse = that.data.nousebalance;
  268. var afterdec = 0;
  269. var dis_amount = 0;
  270. //
  271. sour_total = sour_total - use_silver;
  272. //canuse的扣除银豆
  273. // if(mins_canuse - use_silver < 0){
  274. // mins_canuse = 0;
  275. // left_silver = use_silver - mins_canuse;
  276. // }else{
  277. // mins_canuse = mins_canuse - use_silver;
  278. // left_silver = 0;
  279. // }
  280. // console.log('mins_canuse',mins_canuse);
  281. // console.log('left_silver',left_silver);
  282. // //nouse的扣除剩余的银豆
  283. // if(mins_nouse - left_silver < 0){
  284. // mins_nouse = 0;
  285. // left_silver = left_silver - mins_nouse;
  286. // }else{
  287. // mins_nouse = mins_nouse - left_silver;
  288. // left_silver = 0;
  289. // }
  290. // console.log('left_silver',left_silver);
  291. //重写分别扣除的银豆
  292. var quan_silver = use_silver - that.data.unquan_silver;
  293. mins_canuse = mins_canuse - quan_silver;
  294. mins_nouse = mins_nouse - that.data.unquan_silver;
  295. //新增剩余的根据等级和订单类型做折扣
  296. // if(val.data.show_invite_mode == 1 && that.data.payData.order_type == 0){//店长可以享受优惠
  297. // var disbi = val.data.discount_bl == 0? 100 : val.data.discount_bl;
  298. // sour_total = sour_total * (disbi/100);
  299. // dis_amount = parseInt(mins_total - (mins_total * (disbi/100)));
  300. // mins_canuse = mins_canuse * (disbi/100);
  301. // mins_nouse = mins_nouse * (disbi/100);
  302. // }
  303. //新已减银豆
  304. if(that.data.payData.pay_way == ''){
  305. if(that.data.receivetype == 0){
  306. if(parseInt(has_balance) >= parseInt(mins_canuse) + parseInt(that.data.yunfei)){
  307. console.log('1');
  308. afterdec = mins_nouse;
  309. }else{
  310. console.log('2');
  311. afterdec = Math.abs((mins_canuse + that.data.yunfei)-has_balance) + mins_nouse;
  312. }
  313. }else{
  314. if(parseInt(has_balance) >= parseInt(mins_canuse)){
  315. console.log('3');
  316. afterdec = mins_nouse;
  317. }else{
  318. console.log('4');
  319. afterdec = Math.abs((mins_canuse)-has_balance) + mins_nouse;
  320. }
  321. }
  322. }else{
  323. console.log('5');
  324. // afterdec = (that.data.total - that.data.payData.paied_silver - that.data.payData.dis_amount)+that.data.yunfei-that.data.payData.coupon_price;
  325. afterdec = that.data.total + that.data.yunfei - that.data.payData.paied_silver - that.data.payData.coupon_price - that.data.payData.paied_cash;
  326. }
  327. var source_afterdec = afterdec;
  328. //canuse的扣除银豆
  329. // mins_canuse = mins_canuse - use_silver < 0 ? 0 : mins_canuse - use_silver;
  330. // left_silver = mins_canuse - use_silver < 0 ? use_silver - mins_canuse : 0;
  331. // //nouse的扣除剩余的银豆
  332. // mins_nouse = mins_nouse - left_silver < 0 ? 0 : mins_nouse - left_silver;
  333. // left_silver = mins_nouse - left_silver < 0 ? left_silver - mins_nouse : 0;
  334. console.log('afterdec',afterdec);
  335. console.log('mins_canuse',mins_canuse);
  336. console.log('mins_nouse',mins_nouse);
  337. console.log('use_silver',use_silver);
  338. console.log('sour_total',sour_total);
  339. //旧未减银豆
  340. // if(that.data.payData.pay_way == ''){
  341. // if(that.data.receivetype == 0){
  342. // if(parseInt(val.data.total) >= parseInt(that.data.canusebalance) + parseInt(that.data.yunfei)){
  343. // afterdec = that.data.nousebalance;
  344. // }else{
  345. // afterdec = Math.abs((that.data.canusebalance + that.data.yunfei)-val.data.total) + that.data.nousebalance;
  346. // }
  347. // }else{
  348. // if(parseInt(val.data.total) >= parseInt(that.data.canusebalance)){
  349. // afterdec = that.data.nousebalance;
  350. // }else{
  351. // afterdec = Math.abs((that.data.canusebalance)-val.data.total) + that.data.nousebalance;
  352. // }
  353. // }
  354. // }else{
  355. // afterdec = that.data.total+that.data.yunfei-that.data.payData.coupon_price;
  356. // }
  357. var minus_cash = 0;
  358. var trueafter = afterdec - that.data.payData.dis_amount;
  359. if(that.data.cashInfo.available > 0 && trueafter > 0){
  360. minus_cash = that.data.cashInfo.available < trueafter ? that.data.cashInfo.available : trueafter;
  361. }
  362. console.log('minus_cash',minus_cash);
  363. that.setData({
  364. balanceInfo: val.data,
  365. cache: false,
  366. // curPayway:val.data.total >= (that.data.total + that.data.yunfei)?'balance':'weixinpay'
  367. curPayway:'weixinpay',
  368. // useBalance:(val.data.total > 0 && that.data.payData.order_type == 0 && that.data.payData.pv >= that.data.payData.total_price)? true:false,
  369. useBalance: /* (val.data.total > 0 && that.data.payData.order_type == 0) || */ !that.data.payData.shut_wechat ? true:false,
  370. afterdec: afterdec,
  371. hasSeilver: val.data.silver_total,
  372. useSeilver: use_silver,
  373. minusTotal: sour_total,
  374. discountBl: val.data.discount_bl,
  375. sourceAfterdec: source_afterdec,
  376. pay_cash: minus_cash,
  377. freight_limit:val.data.freight_limit,
  378. // disAmount:dis_amount
  379. });
  380. console.log('useBalance',that.data.useBalance);
  381. console.log('coupon_price',that.data.coupon_price);
  382. }
  383. __request.$get(url, params, success)
  384. },
  385. getCentInfo: function () {
  386. var that = this
  387. var url = "v1/user/cent/info";
  388. var params = {}
  389. var success = function (val) {
  390. // console.log('showusebalance:',(val.data.total > 0 && that.data.payData.order_type == 0))
  391. that.setData({
  392. centInfo: val.data,
  393. cache: false,
  394. curPayway:'cent',
  395. useBalance:false,
  396. afterdec:that.data.receivetype == 0 ? parseInt(val.data.total) >= parseInt(that.data.total) + parseInt(that.data.yunfei)?'0':(that.data.total + that.data.yunfei)-val.data.total : 0
  397. });
  398. }
  399. __request.$get(url, params, success)
  400. },
  401. switchChange:function(e){
  402. var that = this;
  403. that.setData({
  404. useBalance:e.detail.value
  405. })
  406. that.getPayQuery();
  407. },
  408. switchcashChange:function(e){
  409. var that = this;
  410. that.setData({
  411. useCash:e.detail.value
  412. })
  413. that.getPayQuery();
  414. },
  415. getUserInfo: function () {
  416. var that = this
  417. var url = "v1/user/info";
  418. var params = {
  419. cache: false
  420. }
  421. var success = function (val) {
  422. that.setData({
  423. userInfo: val.data
  424. });
  425. }
  426. __request.$get(url, params, success)
  427. },
  428. cancelDialog: function () {
  429. this.setData({
  430. pwdDialog: false
  431. })
  432. },
  433. toPay: function (e) {
  434. if(this.data.payFlag || this.data.payCompleted){
  435. wx.showToast({
  436. title: '支付中,请稍后...',
  437. icon: 'none',
  438. duration: 2000
  439. })
  440. return false;
  441. }
  442. _handle.setFormId(e)
  443. var that = this
  444. this.setData({
  445. payFlag: true
  446. })
  447. if (that.data.receivetype == 0 && !that.data.address) {
  448. wx.showToast({
  449. title: '请先填写地址',
  450. icon: 'none',
  451. duration: 2000
  452. })
  453. that.setData({
  454. payFlag: false
  455. })
  456. } else if (that.data.receivetype == 0 && !validator.required1(this.data.address.contact)) {
  457. wx.showToast({
  458. title: '国家安全局规定:运单禁止出现“先生”,“小姐”,“女士”等,请重新填写地址',
  459. icon: 'none',
  460. duration: 2000
  461. })
  462. that.setData({
  463. payFlag: false
  464. })
  465. }else if (that.data.receivetype == 1 && !that.data.pick_address) {
  466. wx.showToast({
  467. title: '请先选择提货人',
  468. icon: 'none',
  469. duration: 2000
  470. })
  471. that.setData({
  472. payFlag: false
  473. })
  474. }else if (that.data.receivetype == 1 && !that.data.pickid) {
  475. wx.showToast({
  476. title: '请选择自提门店',
  477. icon: 'none',
  478. duration: 2000
  479. })
  480. that.setData({
  481. payFlag: false
  482. })
  483. } else {
  484. if (that.data.curPayway === 'balance') {
  485. var p
  486. if (that.data.project) {
  487. p = that.data.balanceInfo.total - that.data.project.robo_balance_price * that.data.payData.count
  488. }
  489. if (p < 0) {
  490. this.setData({
  491. luoboCount: -(that.data.balanceInfo.total - that.data.project.robo_balance_price * that.data.payData.count),
  492. showModal: true,
  493. countMoney: -(that.data.balanceInfo.total - that.data.project.robo_balance_price * that.data.payData.count) / 100,
  494. payFlag: false
  495. })
  496. } else {
  497. that.pay()
  498. }
  499. } else if (that.data.curPayway === 'cent') {
  500. // var b
  501. // if (that.data.project) {
  502. // b = that.data.balanceInfo.dc_total - that.data.project.mall_balance_price * that.data.payData.count
  503. // }
  504. // if (b < 0) {
  505. // this.setData({
  506. // luoboCount: that.data.project.mall_balance_price * that.data.payData.count - that.data.balanceInfo.dc_total,
  507. // showModal: true,
  508. // payFlag: false
  509. // })
  510. // } else {
  511. that.pay()
  512. // }
  513. } else if (that.data.curPayway === 'weixinpay') {
  514. // if(that.data.useBalance && that.data.afterdec > 0){
  515. // wx.showModal({
  516. // title: '提示',
  517. // content: '订单将抵扣 '+ (that.data.payData.coupon_price>0?that.data.payData.coupon_price/100:((that.data.total+that.data.yunfei)-that.data.afterdec) / 100)+' 元提货券,剩下 '+(that.data.afterdec / 100)+' 元将由微信支付,祝您购物愉快!' ,
  518. // success: function (sm) {
  519. // if (sm.confirm) {
  520. // that.pay()
  521. // } else if (sm.cancel) {
  522. // console.log('用户点击取消')
  523. // that.setData({
  524. // payFlag: false
  525. // })
  526. // }
  527. // }
  528. // })
  529. // }else{
  530. that.pay()
  531. // }
  532. }
  533. // if (!that.data.userInfo.user.has_trade_pwd) {
  534. // that.setPwdDialog()
  535. // } else {
  536. // if (that.data.balanceInfo.total - that.data.project.price * that.data.payData.count < 0) {
  537. // this.setData({
  538. // luoboCount: -(that.data.balanceInfo.total - that.data.project.price * that.data.payData.count),
  539. // showModal: true,
  540. // countMoney: -(that.data.balanceInfo.total - that.data.project.price * that.data.payData.count) / 100
  541. // })
  542. // } else {
  543. // that.setData({
  544. // pwdDialog: true
  545. // })
  546. // if (that.data.useRadishSelect) {
  547. // that.setData({
  548. // pwdDialog: true
  549. // })
  550. // } else {
  551. // that.openToast('请勾选使用提货券兑换~')
  552. // }
  553. // }
  554. // }
  555. }
  556. },
  557. onCancel: function () {
  558. this.setData({
  559. showModal: false
  560. });
  561. },
  562. onConfirm: function () {
  563. wx.navigateTo({
  564. url: '/packageUser/pages/user/exchange/exchange'
  565. })
  566. },
  567. onConfirm1: function() {
  568. wx.navigateTo({
  569. url: '/packageUser/pages/user/buy/buy?path=/pages/pay/pay&orderId=' + this.data.orderId +
  570. '&luoboCount=' + this.data.luoboCount + '&countMoney=' + this.data.countMoney
  571. })
  572. // /pages/pay/pay?order_id=EX201807206A91F25E
  573. },
  574. onConfirm2: function () {
  575. wx.navigateTo({
  576. url: '/pages/parse/parse?id=8'
  577. })
  578. },
  579. preventTouchMove: function () {
  580. },
  581. selectClick: function (e) {
  582. var that = this
  583. that.setData({
  584. curPayway: e.target.dataset.payway
  585. });
  586. },
  587. pay: function () {
  588. var that = this
  589. var url = "v1/pay";
  590. var params;
  591. if(that.data.receivetype == 0){
  592. params = {
  593. pick_way: 0,
  594. order_id: that.data.orderId,
  595. trad_pwd: that.data.pwd,
  596. pay_way: that.data.curPayway,
  597. address_id: that.data.address.id,
  598. s: 'xcx',
  599. use_coupon:that.data.useBalance,
  600. remark:that.data.remark,
  601. use_balance:that.data.useCash
  602. }
  603. }else{
  604. params = {
  605. pick_way: 1,
  606. order_id: that.data.orderId,
  607. trad_pwd: that.data.pwd,
  608. pay_way: that.data.curPayway,
  609. s: 'xcx',
  610. use_coupon:that.data.useBalance,
  611. use_balance:that.data.useCash,
  612. remark:that.data.remark,
  613. pick_dept:that.data.pickid,
  614. pick_addr_id:that.data.pick_address.id
  615. }
  616. }
  617. console.log('onpay',params)
  618. var success = function (val) {
  619. console.log(val);
  620. if(val.statusCode === 200){
  621. if (that.data.curPayway === 'weixinpay' && val.data.need_wx) {
  622. wx.requestPayment({
  623. 'timeStamp': val.data.pay_data.timeStamp,
  624. 'nonceStr': val.data.pay_data.nonceStr,
  625. 'package': val.data.pay_data.package,
  626. 'signType': val.data.pay_data.signType,
  627. 'paySign': val.data.pay_data.paySign,
  628. 'success':function(res){
  629. that.setData({
  630. payCompleted: true
  631. })
  632. wx.showToast({
  633. title: '支付成功',
  634. icon: 'success',
  635. duration: 1000
  636. })
  637. wx.redirectTo({
  638. // url: '/packageUser/pages/user/orders/orders'
  639. url: '/pages/projects/project-success/project-success?id=' + that.data.orderId
  640. })
  641. },
  642. 'fail':function(res){
  643. if (res && res.errMsg && (res.errMsg.indexOf('已支付') > -1 || res.errMsg.indexOf('paid') > -1)) {
  644. that.setData({
  645. payCompleted: true
  646. })
  647. wx.redirectTo({
  648. url: '/pages/projects/project-success/project-success?id=' + that.data.orderId
  649. })
  650. return
  651. }
  652. if (res && res.errMsg && (res.errMsg.indexOf('cancel') > -1 || res.errMsg.indexOf('取消') > -1)) {
  653. wx.showToast({
  654. title: '用户取消支付',
  655. icon: 'none',
  656. duration: 2000
  657. })
  658. }
  659. that.setData({
  660. payFlag: false
  661. })
  662. that.getOrderInfo()
  663. }
  664. })
  665. return
  666. } else {
  667. that.setData({
  668. pay: val.data,
  669. payCompleted: true
  670. });
  671. wx.redirectTo({
  672. // url: '/packageUser/pages/user/orders/orders'
  673. url: '/pages/projects/project-success/project-success?id=' + that.data.orderId
  674. })
  675. return
  676. }
  677. that.setData({
  678. payFlag: false
  679. })
  680. that.getOrderInfo()
  681. }else{
  682. that.setData({
  683. payFlag: false
  684. })
  685. that.getOrderInfo()
  686. }
  687. }
  688. var fail = function(err){
  689. that.setData({
  690. payFlag: false
  691. })
  692. }
  693. __request.$post(url, params, success, fail)
  694. },
  695. setPwdDialog: function () {
  696. wx.showModal({
  697. title: '提示',
  698. confirmColor: '#eab86a',
  699. content: '您未设置交易密码,是否前往设置?',
  700. success: function(res) {
  701. if (res.confirm) {
  702. wx.navigateTo({
  703. url: '/packageUser/pages/user/safe/safe'
  704. })
  705. } else if (res.cancel) {
  706. }
  707. }
  708. })
  709. },
  710. onShareAppMessage: function (val) {
  711. return _request.share({
  712. sc: 'xcx_pay'
  713. })
  714. },
  715. bindremark (e) {
  716. this.setData({
  717. remark: e.detail.value
  718. })
  719. },
  720. receivetbn(e){
  721. if(this.data.payData.pay_way == ''){
  722. this.setData({
  723. receivetype: e.target.dataset.value,
  724. yunfei : e.target.dataset.value == 0 ? this.data._yunfei : 0
  725. })
  726. wx.setStorageSync('receivetype', e.target.dataset.value) //存入
  727. this.getBalanceInfo();
  728. this.getPayQuery();
  729. }else{
  730. wx.showToast({
  731. title: '当前提货方式已确定',
  732. icon: 'none',
  733. duration: 2000
  734. })
  735. }
  736. },
  737. getpickdeparts: function () {
  738. var that = this
  739. var url = "v1/pick_departs";
  740. var params = {}
  741. var success = function (val) {
  742. console.log('pick_departs-val',val);
  743. let list = [];
  744. for(var i in val.data){
  745. list.push(val.data[i]['pick_address']+'-'+val.data[i]['pick_title'])
  746. }
  747. that.setData({
  748. pickdepartsList:val.data,
  749. repickdepartsList:list,
  750. pickindex: 0,
  751. pickid:val.data[0]?val.data[0]['id']:0
  752. })
  753. }
  754. __request.$get(url, params, success)
  755. },
  756. bindPickerChange: function(e) {
  757. var that = this;
  758. console.log('picker发送选择改变,携带值为', e.detail.value)
  759. this.setData({
  760. pickindex: e.detail.value,
  761. pickid:that.data.pickdepartsList[e.detail.value]['id']
  762. })
  763. },
  764. getAddress(id) {
  765. var that = this
  766. var url = 'v1/address/'
  767. var params = {
  768. }
  769. var success = function (res) {
  770. var setaddress;
  771. for(var i in res.data){
  772. if(res.data[i]['id'] == id){
  773. setaddress = res.data[i];
  774. }
  775. }
  776. that.setData({
  777. address:setaddress
  778. })
  779. }
  780. __request.$get(url, params, success)
  781. },
  782. getPickAddress(id) {
  783. var that = this
  784. var url = 'v1/pick_address'
  785. var params = {
  786. }
  787. var success = function (res) {
  788. var setaddress;
  789. for(var i in res.data){
  790. if(res.data[i]['id'] == id){
  791. setaddress = res.data[i];
  792. }
  793. }
  794. that.setData({
  795. pick_address:setaddress
  796. })
  797. }
  798. __request.$get(url, params, success)
  799. },
  800. //获取扣减相关
  801. getPayQuery() {
  802. var that = this
  803. var url = 'v1/pay/query'
  804. var params = {
  805. 'order_id':that.data.orderId,
  806. 'use_coupon':true, //是否使用提货券
  807. 'use_balance':that.data.useCash, //是否使用余额
  808. 'pick_way':that.data.receivetype, //自提方式
  809. }
  810. var success = function (res) {
  811. var data = res.data || {}
  812. data.PaySilver = toNumber(data.PaySilver)
  813. data.PayCoupon = toNumber(data.PayCoupon)
  814. data.PayBalance = toNumber(data.PayBalance)
  815. data.ShouldPay = toNumber(data.ShouldPay)
  816. that.setData({
  817. payQueryData:data
  818. })
  819. }
  820. __request.$post(url, params, success)
  821. }
  822. })