12
This commit is contained in:
parent
da43bb5429
commit
46d17fb6e6
@ -39,35 +39,17 @@ 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}`
|
||||
}
|
||||
if (error.type === "card_error" || error.type === "validation_error") {
|
||||
showMessage(error.message)
|
||||
} else {
|
||||
showMessage("An unexpected error occurred.")
|
||||
}
|
||||
|
||||
setLoading(false)
|
||||
|
@ -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')
|
||||
}
|
||||
}
|
||||
|
@ -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,
|
||||
|
Loading…
Reference in New Issue
Block a user