This commit is contained in:
xingyy 2025-02-28 17:32:38 +08:00
parent da43bb5429
commit 46d17fb6e6
3 changed files with 33 additions and 24 deletions

View File

@ -39,36 +39,18 @@ async function handleSubmit(e) {
e.preventDefault()
setLoading(true)
//
const paymentStartTime = Date.now()
// Android
const isAndroid = /android/i.test(navigator.userAgent)
const { error, paymentIntent } = await stripe.confirmPayment({
const { error } = await stripe.confirmPayment({
elements: elements.value,
confirmParams: {
return_url: `${baseURL}/payment/result?orderNo=${payUid.value}`,
},
redirect: 'if_required',
})
if (error) {
if (error.type === "card_error" || error.type === "validation_error") {
showMessage(error.message)
} else {
showMessage("An unexpected error occurred.")
}
} else if (paymentIntent && paymentIntent.status === 'succeeded') {
//
window.location.href = `${baseURL}/payment/result?orderNo=${payUid.value}`
return
} else if (isAndroid) {
// Android
if (document.getElementById('payment-form')) {
window.location.href = `${baseURL}/payment/result?orderNo=${payUid.value}`
}
}
setLoading(false)
}

View File

@ -5,7 +5,7 @@ import {goodStore} from "~/stores/goods/index.js";
import { showLoadingToast ,closeToast} from 'vant';
import {authStore} from "~/stores/auth/index.js";
import {message} from "~/components/x-message/useMessage.js";
const {checkoutSessionUrl,payment,payUid}= authStore()
const {checkoutSessionUrl,payment,payUid,openRefreshResults}= authStore()
const payStatus=ref(0)
definePageMeta({
i18n: 'payment.title'
@ -40,11 +40,14 @@ const confirmPay=async ()=>{
})
console.log('res',res);
if (res.status===0){
// if (res.status===0){
// window.location.href=res.data.checkoutSessionUrl
// }
checkoutSessionUrl.value=res.data.checkoutSessionUrl
payUid.value=res.data.payUid
openRefreshResults()
router.push('/payment/checkoutPage')
}
}

View File

@ -1,4 +1,7 @@
import { createGlobalState,useLocalStorage } from '@vueuse/core'
import { WebSocketClient } from '@/utils/websocket'
import {message} from "~/components/x-message/useMessage.js";
export const authStore = createGlobalState(() => {
const token=useLocalStorage('token','')
const RefreshToken=useLocalStorage('RefreshToken','')
@ -12,8 +15,29 @@ export const authStore = createGlobalState(() => {
buyUid:'',
auctionArtworkUuid:''
})
const router=useRouter()
const config = useRuntimeConfig()
const payUid=useLocalStorage('payUid','')
const openRefreshResults=()=>{
const wsClient = new WebSocketClient(
config.public.NUXT_PUBLIC_SOCKET_URL,
token.value
)
const ws = wsClient.connect('/api/v1/m/auction/live',{
payUid:payUid.value
})
ws.onMessage((data) => {
router.push({
path:'/payment/result',
query:{
orderNo:payUid.value
}
})
})
}
return{
openRefreshResults,
payUid,
selectedZone,
payment,