34 lines
1.2 KiB
TypeScript
34 lines
1.2 KiB
TypeScript
import type { WooOrderCreateRequest, WooOrderCreateResponse } from '#shared/woo_orders_create'
|
|
import axios from 'axios'
|
|
import { defineEventHandler, readBody } from 'h3'
|
|
|
|
export default defineEventHandler(async (event): Promise<WooOrderCreateResponse | { error: string }> => {
|
|
try {
|
|
const orderData = await readBody<WooOrderCreateRequest>(event)
|
|
|
|
const requestUrl = 'https://wp.koptilnya.xyz/wp-json/wc/v3/orders'
|
|
const consumerKey = 'ck_8b5477a1573ce6038ef1367f25d95cede1de4559'
|
|
const consumerSecret = 'cs_d0ccaa93e8efe4f76eef0b70c9828a58fc53459f'
|
|
|
|
const encodedAuth = Buffer.from(`${consumerKey}:${consumerSecret}`).toString('base64')
|
|
|
|
const response = await axios.post<WooOrderCreateResponse>(requestUrl, orderData, {
|
|
headers: {
|
|
'Authorization': `Basic ${encodedAuth}`,
|
|
'Content-Type': 'application/json',
|
|
},
|
|
})
|
|
|
|
return response.data
|
|
}
|
|
catch (error: any) {
|
|
console.error('Ошибка при создании заказа WooCommerce:', error)
|
|
|
|
return {
|
|
error: true,
|
|
message: error.response?.data?.message || 'Ошибка при создании заказа',
|
|
details: error.response?.data,
|
|
}
|
|
}
|
|
})
|