Build WhatsApp Order Notifications with Node.js and Webhooks

WhatsApp 주문 알림 시스템 구축: Node.js와 웹훅을 활용한 실무 가이드

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

웹 개발

대상자

  • 대상자: Node.js 및 API 개발자, 웹훅 통합에 관심 있는 개발자
  • 난이도: 중급 (Express, Axios, 환경 변수 설정 기초 지식 필요)

핵심 요약

  • Node.js와 Express를 활용한 웹훅 기반 주문 알림 시스템 구축
  • Express 서버에서 /order-confirmation 엔드포인트를 통해 주문 데이터를 수신
  • axios 라이브러리를 사용해 WhatsApp Business API에 메시지 전송
  • 필수 구성 요소
  • .env 파일로 관리되는 WHATSAPP_API_TOKEN, WHATSAPP_API_URL 설정
  • ngrok으로 로컬 서버를 외부에 노출하여 웹훅 테스트 가능
  • 실무 적용 팁
  • 주문 상태별 메시지(예: 배송 시작, 배송 완료) 확장 가능
  • 고객 언어별 메시지 로컬라이제이션 지원 가능

섹션별 세부 요약

1. 프로젝트 초기 설정

  • 필수 도구 설치:
  • Node.js (v14 이상), Express, Axios, body-parser, dotenv
  • 디렉토리 구조:
  • index.js (Express 서버 로직), whatsapp.js (WhatsApp 메시지 전송 로직)
  • 환경 변수 설정:
  • .env 파일에서 WHATSAPP_API_TOKEN, WHATSAPP_API_URL 등 설정

2. 웹훅 엔드포인트 구현

  • POST 요청 처리:
  • /order-confirmation 엔드포인트에서 customerName, phoneNumber, orderId, total 필드 추출
  • 필수 필드 누락 시 400 에러 반환
  • WhatsApp 메시지 전송:
  • sendWhatsAppMessage 함수에서 axios.post()를 사용해 WhatsApp API에 메시지 전송
  • Authorization 헤더에 Bearer ${process.env.WHATSAPP_API_TOKEN} 포함

3. 테스트 및 검증

  • 로컬 서버 실행:
  • node index.js 명령어로 서버 실행 후 ngrok http 3000으로 외부 노출
  • POST 요청 시뮬레이션:
  • curl 또는 Postman을 사용해 다음 JSON 데이터로 테스트:

```json

{

"customerName": "Ana Silva",

"phoneNumber": "+5511999999999",

"orderId": "12345",

"total": "$ 249.90"

}

```

  • 성공 시 200 응답, 실패 시 500 응답 반환

결론

  • 핵심 권장사항:
  • WhatsApp 알림은 고객 참여도 향상에 효과적임
  • Expressaxios를 활용한 웹훅 인프라 확장 가능 (예: Shopify, WooCommerce 연동)
  • dotenv로 환경 변수를 안전하게 관리하여 보안 강화
  • ngrok 사용 시 프로덕션 환경에서는 보안 프로토콜(예: HTTPS) 적용 필수