paymentCommon.vue 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. <template>
  2. <u-popup :show="popupShow" mode="bottom" @close="popupShow = false" class="u_popup_bottom">
  3. <view class="bg_color_fff u_popup_bottom">
  4. <view class="u_popup_bottom_desc border-bottom gray font_size25 text_align_center">请选择付款方式</view>
  5. <view class="padding30 border-bottom text_align_center" @click="popupShow = false;pay(0)">微信支付</view>
  6. <!-- <view class="padding30 border-bottom text_align_center" @click="popupShow = false;pay(1)">
  7. 余额支付
  8. <text class="color_price"> ( {{appStore.userInfo?.rechargeBalance}} {{appStore.moneyUnit}} )</text>
  9. </view> -->
  10. <view class="padding30 text_align_center" @click="popupShow = false">取消</view>
  11. </view>
  12. </u-popup>
  13. </template>
  14. <script setup>
  15. import { ref } from 'vue'
  16. import { createOrder } from "@/api/order.js";
  17. import { wxPay } from "@/utils/util.js";
  18. import { useAppStore } from "@/stores/app";
  19. const appStore = useAppStore();
  20. defineExpose({
  21. open
  22. });
  23. const emit = defineEmits(['reloadList']);
  24. const popupShow = ref(false);
  25. const orderId = ref(null);
  26. const payType = ref('');//支付方式 0微信 1余额
  27. function open(e) {
  28. popupShow.value = true;
  29. orderId.value = e.orderId;
  30. }
  31. async function pay(payMethod){
  32. console.log('pay',payMethod,orderId.value);
  33. payType.value = payMethod;
  34. const res = await createOrder({
  35. payMethod:payType.value,//支付方式 0微信 1余额
  36. orderId:orderId.value
  37. });
  38. orderId.value = res.data.orderId;
  39. // 余额支付
  40. if(payType.value==1){
  41. //1成功 0失败;
  42. const paySuccess = res.data.paySuccess;
  43. orderStatusQuery({isSuccess:paySuccess?1:0});
  44. }else{
  45. const payInfo = res.data.payData.prepayWithRequestPaymentResponse;
  46. wxPay({
  47. timeStamp:payInfo.timeStamp,
  48. nonceStr:payInfo.nonceStr,
  49. packageVal:payInfo.packageVal,
  50. signType:payInfo.signType,
  51. paySign:payInfo.paySign,
  52. },orderStatusQuery);
  53. }
  54. }
  55. function orderStatusQuery({isSuccess}){
  56. emit('reloadList');
  57. to_success_pay({isSuccess});
  58. }
  59. function to_success_pay({isSuccess}){
  60. console.log('to_success_pay',isSuccess);
  61. uni.navigateTo({
  62. url: `/pages/recharge/success_pay?orderId=${orderId.value}&isSuccess=${isSuccess}&payMethod=${payType.value}`
  63. })
  64. }
  65. </script>
  66. <style lang="scss">
  67. .u_popup_bottom{
  68. .u-popup__content{
  69. border-radius: 30rpx 30rpx 0 0;
  70. }
  71. .u_popup_bottom_desc{
  72. padding: 50rpx 50rpx 30rpx;
  73. }
  74. }
  75. </style>
  76. <style lang="scss" scoped>
  77. .u_popup_bottom{
  78. }
  79. </style>