pay.js 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. import Dialog from 'tdesign-miniprogram/dialog/index';
  2. import Toast from 'tdesign-miniprogram/toast/index';
  3. import { dispatchCommitPay } from '../../../services/order/orderConfirm';
  4. // 真实的提交支付
  5. export const commitPay = (params) => {
  6. return dispatchCommitPay({
  7. goodsRequestList: params.goodsRequestList, // 待结算的商品集合
  8. invoiceRequest: params.invoiceRequest, // 发票信息
  9. // isIgnore: params.isIgnore || false, // 删掉 是否忽视库存不足和商品失效,继续结算,true=继续结算 购物车请赋值false
  10. userAddressReq: params.userAddressReq, // 地址信息(用户在购物选择更换地址)
  11. currency: params.currency || 'CNY', // 支付货币: 人民币=CNY,美元=USD
  12. logisticsType: params.logisticsType || 1, // 配送方式 0=无需配送 1=快递 2=商家 3=同城 4=自提
  13. // orderMark: params.orderMark, // 下单备注
  14. orderType: params.orderType || 0, // 订单类型 0=普通订单 1=虚拟订单
  15. payType: params.payType || 1, // 支付类型(0=线上、1=线下)
  16. totalAmount: params.totalAmount, // 新增字段"totalAmount"总的支付金额
  17. userName: params.userName, // 用户名
  18. payWay: 1,
  19. authorizationCode: '', //loginCode, // 登录凭证
  20. storeInfoList: params.storeInfoList, //备注信息列表
  21. couponList: params.couponList,
  22. groupInfo: params.groupInfo,
  23. });
  24. };
  25. export const paySuccess = (payOrderInfo) => {
  26. const { payAmt, tradeNo, groupId, promotionId } = payOrderInfo;
  27. // 支付成功
  28. Toast({
  29. context: this,
  30. selector: '#t-toast',
  31. message: '支付成功',
  32. duration: 2000,
  33. icon: 'check-circle',
  34. });
  35. const params = {
  36. totalPaid: payAmt,
  37. orderNo: tradeNo,
  38. };
  39. if (groupId) {
  40. params.groupId = groupId;
  41. }
  42. if (promotionId) {
  43. params.promotionId = promotionId;
  44. }
  45. const paramsStr = Object.keys(params)
  46. .map((k) => `${k}=${params[k]}`)
  47. .join('&');
  48. // 跳转支付结果页面
  49. wx.redirectTo({ url: `/pages/order/pay-result/index?${paramsStr}` });
  50. };
  51. export const payFail = (payOrderInfo, resultMsg) => {
  52. if (resultMsg === 'requestPayment:fail cancel') {
  53. if (payOrderInfo.dialogOnCancel) {
  54. //结算页,取消付款,dialog提示
  55. Dialog.confirm({
  56. title: '是否放弃付款',
  57. content: '商品可能很快就会被抢空哦,是否放弃付款?',
  58. confirmBtn: '放弃',
  59. cancelBtn: '继续付款',
  60. }).then(() => {
  61. wx.redirectTo({ url: '/pages/order/order-list/index' });
  62. });
  63. } else {
  64. //订单列表页,订单详情页,取消付款,toast提示
  65. Toast({
  66. context: this,
  67. selector: '#t-toast',
  68. message: '支付取消',
  69. duration: 2000,
  70. icon: 'close-circle',
  71. });
  72. }
  73. } else {
  74. Toast({
  75. context: this,
  76. selector: '#t-toast',
  77. message: `支付失败:${resultMsg}`,
  78. duration: 2000,
  79. icon: 'close-circle',
  80. });
  81. setTimeout(() => {
  82. wx.redirectTo({ url: '/pages/order/order-list/index' });
  83. }, 2000);
  84. }
  85. };
  86. // 微信支付方式
  87. export const wechatPayOrder = (payOrderInfo) => {
  88. // const payInfo = JSON.parse(payOrderInfo.payInfo);
  89. // const { timeStamp, nonceStr, signType, paySign } = payInfo;
  90. return new Promise((resolve) => {
  91. // demo 中直接走支付成功
  92. paySuccess(payOrderInfo);
  93. resolve();
  94. /* wx.requestPayment({
  95. timeStamp,
  96. nonceStr,
  97. package: payInfo.package,
  98. signType,
  99. paySign,
  100. success: function () {
  101. paySuccess(payOrderInfo);
  102. resolve();
  103. },
  104. fail: function (err) {
  105. payFail(payOrderInfo, err.errMsg);
  106. },
  107. }); */
  108. });
  109. };