confirm-order.ts 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. import type { wxpay } from '@/api/globals'
  2. import router from '@/router'
  3. export function handleCommonPayMent(orderNumber: string): Promise<wxpay> {
  4. return new Promise((resolve, reject) => {
  5. if (!orderNumber) {
  6. useGlobalToast().show({ msg: '订单号为空!请联系管理员' })
  7. reject(new Error('订单号为空!请联系管理员'))
  8. return
  9. }
  10. uni.showLoading({ mask: true })
  11. Apis.common.hybridPayment({ data: { orderNumber } }).then((res) => {
  12. resolve(res.data)
  13. uni.hideLoading()
  14. }).catch((err) => {
  15. uni.hideLoading()
  16. reject(err)
  17. })
  18. })
  19. }
  20. const { selectedAddress, userInfo } = storeToRefs(useUserStore())
  21. /**
  22. *
  23. * @param businessType
  24. * @param dvyType 配送类型 1:快递 2:自提 3:及时配送
  25. * @param remarks
  26. * @param shopId
  27. * @param orderItemList
  28. * @returns 下单获取待支付订单号
  29. */
  30. export function getOrderPayMent(freightFee: number, businessType: string, dvyType: number, shopId: number, orderItemList: {
  31. prodCount?: number
  32. skuId?: number
  33. }[], remarks?: string): Promise<string> {
  34. uni.showLoading({ mask: true })
  35. return new Promise((resolve, reject) => {
  36. if (!selectedAddress.value) {
  37. reject(new Error('请选择收货地址'))
  38. return
  39. }
  40. Apis.common.addOrder({
  41. data: {
  42. channelId: Number(unref(userInfo).channelId),
  43. businessType,
  44. addressId: selectedAddress.value.id,
  45. dvyType,
  46. freightAmount: freightFee,
  47. shopId,
  48. orderItemList,
  49. remarks,
  50. },
  51. }).then((res) => {
  52. resolve(res.data)
  53. uni.hideLoading()
  54. }).catch((err) => {
  55. uni.hideLoading()
  56. reject(err)
  57. })
  58. })
  59. }
  60. /**
  61. *
  62. * @param orderInfo
  63. * @returns 统一拉起微信支付
  64. */
  65. export function getWxCommonPayment(orderPay: wxpay) {
  66. uni.showLoading({ mask: true })
  67. return new Promise((resolve, reject) => {
  68. const orderInfo = {
  69. appid: orderPay.appId,
  70. timeStamp: orderPay.timeStamp,
  71. nonceStr: orderPay.nonceStr,
  72. package: orderPay.package,
  73. signType: orderPay.signType,
  74. paySign: orderPay.paySign,
  75. }
  76. uni.requestPayment({
  77. provider: 'wxpay',
  78. orderInfo,
  79. ...orderInfo,
  80. success(res) {
  81. resolve(res)
  82. },
  83. fail(e) {
  84. console.log(e, '失败')
  85. reject(e)
  86. },
  87. complete() {
  88. uni.hideLoading()
  89. },
  90. })
  91. })
  92. }
  93. /**
  94. * 星闪豹
  95. * 支付成功统一跳转
  96. */
  97. export function paySuccess() {
  98. const { paySuccessPath, payBackIndexPath } = storeToRefs(useSysStore())
  99. paySuccessPath.value = 'xsb-order'
  100. payBackIndexPath.value = 'subPack-xsb/commonTab/index'
  101. router.replace({ name: 'common-paySuccess' })
  102. }
  103. /**
  104. * 星闪豹
  105. * 支付成功统一跳转
  106. */
  107. export function payError() {
  108. const { paySuccessPath, payBackIndexPath } = storeToRefs(useSysStore())
  109. paySuccessPath.value = 'xsb-order'
  110. payBackIndexPath.value = 'subPack-xsb/commonTab/index'
  111. router.replace({ name: 'common-payError' })
  112. }
  113. /**
  114. * 支付成功清空购买的商品的购物车
  115. */
  116. export async function clearCart(skuList: Api.CartSkuVo[]) {
  117. return new Promise((resolve) => {
  118. const skuids = skuList.map(item => item.id).join(',')
  119. if (skuids.length) {
  120. Apis.common.deleteShoppingCart({
  121. pathParams: {
  122. ids: skuids,
  123. },
  124. }).then(async (res) => {
  125. resolve(res)
  126. await useSmqjhCartStore().getCartList('XSB')
  127. }).finally(() => resolve(1))
  128. }
  129. else {
  130. resolve(1)
  131. }
  132. })
  133. }