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 알림은 고객 참여도 향상에 효과적임
Express
와axios
를 활용한 웹훅 인프라 확장 가능 (예: Shopify, WooCommerce 연동)dotenv
로 환경 변수를 안전하게 관리하여 보안 강화ngrok
사용 시 프로덕션 환경에서는 보안 프로토콜(예: HTTPS) 적용 필수