feat(dev): 添加本地 HTTPS 证书并配置 Nuxt 服务器
- 新增本地 HTTPS 证书文件:localhost.pem 和 localhost-key.pem - 在 nuxt.config.js 中配置 HTTPS 选项,启用本地 HTTPS - 优化 checkoutPage 中的支付流程,使用 router.replace 替代 window.location.href
This commit is contained in:
parent
2fdcfc8c3b
commit
b1d2dc19d2
@ -20,7 +20,7 @@ const isLoading = ref(false)
|
|||||||
const showSpinner = ref(false)
|
const showSpinner = ref(false)
|
||||||
let pollTimer = null
|
let pollTimer = null
|
||||||
let timeoutTimer = null
|
let timeoutTimer = null
|
||||||
|
const router = useRouter()
|
||||||
const startPolling = () => {
|
const startPolling = () => {
|
||||||
pollTimer = setInterval(async () => {
|
pollTimer = setInterval(async () => {
|
||||||
const res = await orderQuery({
|
const res = await orderQuery({
|
||||||
@ -30,7 +30,12 @@ const startPolling = () => {
|
|||||||
if (res.data.status !== 3) {
|
if (res.data.status !== 3) {
|
||||||
clearInterval(pollTimer)
|
clearInterval(pollTimer)
|
||||||
clearTimeout(timeoutTimer)
|
clearTimeout(timeoutTimer)
|
||||||
window.location.href = `${baseURL}/payment/result?orderNo=${payUid.value}`
|
router.replace({
|
||||||
|
path: '/payment/result',
|
||||||
|
query: {
|
||||||
|
orderNo: payUid.value
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}, 1000)
|
}, 1000)
|
||||||
@ -52,6 +57,12 @@ const watchWebSocket = () => {
|
|||||||
})
|
})
|
||||||
ws.onMessage((event) => {
|
ws.onMessage((event) => {
|
||||||
console.log('支付页面的websocket收到消息', event.data)
|
console.log('支付页面的websocket收到消息', event.data)
|
||||||
|
router.replace({
|
||||||
|
path: '/payment/result',
|
||||||
|
query: {
|
||||||
|
orderNo: payUid.value
|
||||||
|
}
|
||||||
|
})
|
||||||
})
|
})
|
||||||
ws.onClose(() => {
|
ws.onClose(() => {
|
||||||
console.log('支付页面的websocket连接关闭')
|
console.log('支付页面的websocket连接关闭')
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
import dotenv from 'dotenv'
|
import dotenv from 'dotenv'
|
||||||
import process from 'node:process'
|
import process from 'node:process'
|
||||||
import { currentLocales } from './i18n/i18n'
|
import { currentLocales } from './i18n/i18n'
|
||||||
|
import fs from 'fs'
|
||||||
|
import path from 'path'
|
||||||
const envFile = process.env.ENV_FILE || '.env.test'
|
const envFile = process.env.ENV_FILE || '.env.test'
|
||||||
dotenv.config({ path: `./env/${envFile}` })
|
dotenv.config({ path: `./env/${envFile}` })
|
||||||
const publicConfig = Object.entries(process.env)
|
const publicConfig = Object.entries(process.env)
|
||||||
@ -136,6 +138,10 @@ export default defineNuxtConfig({
|
|||||||
// 指定 Nuxt 应用程序的兼容性日期,确保应用程序在未来的 Nuxt 版本中保持稳定性
|
// 指定 Nuxt 应用程序的兼容性日期,确保应用程序在未来的 Nuxt 版本中保持稳定性
|
||||||
compatibilityDate: '2025-02-28',
|
compatibilityDate: '2025-02-28',
|
||||||
devServer: {
|
devServer: {
|
||||||
|
https: {
|
||||||
|
key: fs.readFileSync(path.resolve(__dirname, 'ssl/localhost-key.pem')),
|
||||||
|
cert: fs.readFileSync(path.resolve(__dirname, 'ssl/localhost.pem'))
|
||||||
|
},
|
||||||
host: '0.0.0.0', // Set the host to 'localhost'
|
host: '0.0.0.0', // Set the host to 'localhost'
|
||||||
port: 3000, // Set the port to 3000 or any other port you prefer
|
port: 3000, // Set the port to 3000 or any other port you prefer
|
||||||
},
|
},
|
||||||
|
28
ssl/localhost-key.pem
Normal file
28
ssl/localhost-key.pem
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
-----BEGIN PRIVATE KEY-----
|
||||||
|
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDFtE2AWs1o0X/A
|
||||||
|
0+506WAG49xbO3KJQTWKwHl5pfeP0GieVjV3qKXkHXl9Fyhg9oJnCAz2nzxzavAP
|
||||||
|
W9NevDbX7KdEiZQjDhpgO+V9IGUqqJKEQnpVk57G3fHBX40nQ4zAQ/S1Vj4Aw9Tk
|
||||||
|
iqNFgLRX3HTAT0NO3eXENJbsDdGxtOuLn5h+DWThrqCaUK2Xnkee3eG/VwgKJKVH
|
||||||
|
LWuC8xyb1NydtchaRFBjoO9oT6Tb/MGeBOrNH9e7Ndh9mCFepXUhzNxrN1fKjn9s
|
||||||
|
107pSEeZb4il2K7GqE0W6r6Y3eeBR2+mEBRqeFnZObT0JkBLI2QIrAwOnFO6ObQC
|
||||||
|
ZaEjwHcZAgMBAAECggEASMZB8Ql7qyXS3OwmTqrJSj/+ESck1hlG2DhZfsn1At84
|
||||||
|
Y3BgZheSWRHwcndfybFz9vEjtHSRD/tBOqYWfDzUA099kuEBwpWiZ+Ika5bNJpK+
|
||||||
|
vCisV2vrelCgeQnvL5DR8sQRA98nG6j6aNYPm7nwqJbh8xg6MoHD3iFtnJ7JnZvQ
|
||||||
|
pSa6Z9qq4Po+cp63/U3yEzFeiVVDTMQJMVClANUCX3jLHs8B85WMbb1eKKFe/xCA
|
||||||
|
n2BWlFVI7Hld+hxhKWkc71+kafC5hUz1w88FcBaN2W/DAtJgKC0dHYATwLCUGC4Z
|
||||||
|
CoCZfB7b3JOzK4mGJ/XxxUcBUk+oweExOrYwCfW4MQKBgQDJbTM4qgW2ca/Xc7cp
|
||||||
|
zKvclgtkJ8rWbVZqMYW6fpXoOdhhxjJSx+LfeGk1whz3Xj04EdSZbRI6zYVaHfHa
|
||||||
|
HFkA2Na/Wi9hboid4WVXUi5RXzthVTOYi1jAJNmK4R25wuSdcGVoYxSrSLyDcHbx
|
||||||
|
MF2cFdQ4A386L+RcoDYzImWCXwKBgQD7RO4DZJgkqDng6YFrYqIdQkJn6keXl4yW
|
||||||
|
Hq1FGaa7XDjlun/X2jT0xJJPFcwLQLbWwrkwmUYN/VQEbYwYlyB0MegF9VflfILl
|
||||||
|
/leCXC8/9WEknQkPqu8N1JiYhajIKLxfQX35nW/oK+S5prJOBxNw+3Of/S43R5Xe
|
||||||
|
60EEI9iphwKBgQCrs/Sn5vd7sKnOpYuLjDcskJMhS3JzGz1AxPpUIbgz/6tenY8k
|
||||||
|
VdQl3wUAmHoMvD6/XyO1re6ORcfZLBGQdf3A5RcagwxEp+65dvvmVd256844iGK1
|
||||||
|
NIPxNvhilMe8JFCxjLBFLcDeyeA4w1QBAdOqTEldfk2kElM+SiwppraVTQKBgCUP
|
||||||
|
O5OgiJgPf8neZsox1/s8xJKTCVAgeAnEKIYijGbh6Tpo0WZCtsDLJVEow9l9B/qQ
|
||||||
|
6cNzN9PkYznr9lfCInVAzxnh377nKF9Hrhx6ADYMuPEvgCChc3S0wHTuccBj0bSy
|
||||||
|
8iOYxuKVZrzDC1Va0dE+JQWZz/EzS7V/OS2lI9WNAoGBAKujoPDn36/hJ/Zr8XAM
|
||||||
|
CEbOi0q0N7I37aRKO8Wm55SCGDYWtBlu+NiIMqk3gzgomtm/cVF+fUNv0BOKc+hx
|
||||||
|
x6PQE98AEn5LdGeqLpDY66vhyR8WGUyCBPB+Dn8OFFT+njL2E8NcQi0kS3t/YlR/
|
||||||
|
oobyxGhm4M1fM8HtGwqQJX60
|
||||||
|
-----END PRIVATE KEY-----
|
26
ssl/localhost.pem
Normal file
26
ssl/localhost.pem
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIEbjCCAtagAwIBAgIRAJjJaJNy+AO5JPuasTslJMQwDQYJKoZIhvcNAQELBQAw
|
||||||
|
gZ8xHjAcBgNVBAoTFW1rY2VydCBkZXZlbG9wbWVudCBDQTE6MDgGA1UECwwxREVT
|
||||||
|
S1RPUC1DOTVCMVIzXDM3MzYzQERFU0tUT1AtQzk1QjFSMyAo6YKi6Zuo5p2oKTFB
|
||||||
|
MD8GA1UEAww4bWtjZXJ0IERFU0tUT1AtQzk1QjFSM1wzNzM2M0BERVNLVE9QLUM5
|
||||||
|
NUIxUjMgKOmCoumbqOadqCkwHhcNMjUwMzAyMDIzMzM3WhcNMjcwNjAyMDIzMzM3
|
||||||
|
WjBlMScwJQYDVQQKEx5ta2NlcnQgZGV2ZWxvcG1lbnQgY2VydGlmaWNhdGUxOjA4
|
||||||
|
BgNVBAsMMURFU0tUT1AtQzk1QjFSM1wzNzM2M0BERVNLVE9QLUM5NUIxUjMgKOmC
|
||||||
|
oumbqOadqCkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDFtE2AWs1o
|
||||||
|
0X/A0+506WAG49xbO3KJQTWKwHl5pfeP0GieVjV3qKXkHXl9Fyhg9oJnCAz2nzxz
|
||||||
|
avAPW9NevDbX7KdEiZQjDhpgO+V9IGUqqJKEQnpVk57G3fHBX40nQ4zAQ/S1Vj4A
|
||||||
|
w9TkiqNFgLRX3HTAT0NO3eXENJbsDdGxtOuLn5h+DWThrqCaUK2Xnkee3eG/VwgK
|
||||||
|
JKVHLWuC8xyb1NydtchaRFBjoO9oT6Tb/MGeBOrNH9e7Ndh9mCFepXUhzNxrN1fK
|
||||||
|
jn9s107pSEeZb4il2K7GqE0W6r6Y3eeBR2+mEBRqeFnZObT0JkBLI2QIrAwOnFO6
|
||||||
|
ObQCZaEjwHcZAgMBAAGjXjBcMA4GA1UdDwEB/wQEAwIFoDATBgNVHSUEDDAKBggr
|
||||||
|
BgEFBQcDATAfBgNVHSMEGDAWgBQVJpbTujNcXUH/91CnxLerp/gKbDAUBgNVHREE
|
||||||
|
DTALgglsb2NhbGhvc3QwDQYJKoZIhvcNAQELBQADggGBAERAae9YDQgjnVtDQUWL
|
||||||
|
kIbMowvN6BospgO2srV+aXCDLbB22jnq4cGsTpVjxo80Nl6M0iSRz29K+jy4YFsL
|
||||||
|
efTOeks1EpVQB/UnYuo391p5wzevXwa3s7dH7Oc+917y8JDiLNnSVEct+tk4zeOZ
|
||||||
|
QbVzx6Gexiii7k1uSG/G1NYrRiXf3ggM93Fyu5NM+u8CzZvWm46ix9reYimVqfPa
|
||||||
|
VjHsiQnmKbh+CD6iDWm9y1jUxqBay4cAbo2AVxIvBDdsC9KSCTsbP4hBPx9foy1U
|
||||||
|
cLRxUGsWTVPPS2BmP8o6CSa2tNPeVNCWSP89tanY2mzGErfVXLV8t5E4awF0ea+a
|
||||||
|
kbjyG3svVC6/rLo8LpFPonr4mQWfGcFntmGUC314d5z1ZCCS5ENEWAGZ3b3XzPsU
|
||||||
|
Yh2QQnt4gtvWaTRqwqhSL9DLFp106/tok3hq8MyDFcxTxWKyDZsgaieoRGnF11EW
|
||||||
|
tdIqnK9nwVOyAzaO603SuEoMiGBpb9nj/cAFsvm56YUVrg==
|
||||||
|
-----END CERTIFICATE-----
|
Loading…
Reference in New Issue
Block a user