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,35 +39,17 @@ async function handleSubmit(e) {
e.preventDefault() e.preventDefault()
setLoading(true) setLoading(true)
// const { error } = await stripe.confirmPayment({
const paymentStartTime = Date.now()
// Android
const isAndroid = /android/i.test(navigator.userAgent)
const { error, paymentIntent } = await stripe.confirmPayment({
elements: elements.value, elements: elements.value,
confirmParams: { confirmParams: {
return_url: `${baseURL}/payment/result?orderNo=${payUid.value}`, return_url: `${baseURL}/payment/result?orderNo=${payUid.value}`,
}, },
redirect: 'if_required',
}) })
if (error) { if (error.type === "card_error" || error.type === "validation_error") {
if (error.type === "card_error" || error.type === "validation_error") { showMessage(error.message)
showMessage(error.message) } else {
} else { showMessage("An unexpected error occurred.")
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) setLoading(false)

View File

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

View File

@ -1,4 +1,7 @@
import { createGlobalState,useLocalStorage } from '@vueuse/core' import { createGlobalState,useLocalStorage } from '@vueuse/core'
import { WebSocketClient } from '@/utils/websocket'
import {message} from "~/components/x-message/useMessage.js";
export const authStore = createGlobalState(() => { export const authStore = createGlobalState(() => {
const token=useLocalStorage('token','') const token=useLocalStorage('token','')
const RefreshToken=useLocalStorage('RefreshToken','') const RefreshToken=useLocalStorage('RefreshToken','')
@ -12,8 +15,29 @@ export const authStore = createGlobalState(() => {
buyUid:'', buyUid:'',
auctionArtworkUuid:'' auctionArtworkUuid:''
}) })
const router=useRouter()
const config = useRuntimeConfig()
const payUid=useLocalStorage('payUid','') 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{ return{
openRefreshResults,
payUid, payUid,
selectedZone, selectedZone,
payment, payment,