diff --git a/src/controller/webhook.controller.ts b/src/controller/webhook.controller.ts index 09eaea0..312ea6e 100644 --- a/src/controller/webhook.controller.ts +++ b/src/controller/webhook.controller.ts @@ -181,17 +181,11 @@ export class WebhookController { console.log('Unhandled event:', topic); } - return { - code: 200, - success: true, - message: 'Webhook processed successfully', - }; - } else { - return { - code: 403, - success: false, - message: 'Webhook verification failed', - }; + return { + code: 200, + success: true, + message: 'Webhook processed successfully', + }; } } catch (error) { console.log(error); @@ -207,23 +201,10 @@ export class WebhookController { @Query('signature') signature: string, @Headers() header: any ) { + console.log(`webhook shoppy`, siteIdStr, body, header) const topic = header['x-oemsaas-event-type']; - // const source = header['x-oemsaas-shop-domain']; + // const source = header['x-oemsaas-shop-domain']; const siteId = Number(siteIdStr); - const bodys = new UnifiedOrderDTO(); - Object.assign(bodys, body); - // 从数据库获取站点配置 - const site = await this.siteService.get(siteId, true); - - // if (!site || !source?.includes(site.websiteUrl)) { - if (!site) { - console.log('domain not match'); - return { - code: HttpStatus.BAD_REQUEST, - success: false, - message: 'domain not match', - }; - } if (!signature) { return { @@ -239,6 +220,7 @@ export class WebhookController { // .createHmac('sha256', this.secret) // .update(rawBody) // .digest('base64'); + const adapter = await this.siteApiService.getAdapter(siteId); try { if (this.secret === signature) { switch (topic) { @@ -251,7 +233,8 @@ export class WebhookController { break; case 'orders/create': case 'orders/update': - await this.orderService.syncSingleOrder(siteId, bodys); + const order = adapter.mapOrder(body) + await this.orderService.syncSingleOrder(siteId, order); break; case 'orders/delete': break;