PortOne 개발자센터 (구, PortOne Docs)에서 제공하는 코드를 최대한 그대로 사용하는 방식으로 구현하였습니다.
- Domain
$ ./ngrok http 3000
로 Local WAS 도메인을 확보합니다. ex) https://8731-222-106-224-225.ngrok-free.app- 결제알림(Webhook)을 등록합니다. ex) https://d4e7-222-106-224-225.ngrok-free.app/portone-webhook
- sample.html,
m_redirect_url:
에 Webhook Endpoint URL을 적습니다.
- DB
- Local DB 서버를 실행합니다.
docker run --rm -p 27017:27017 \ -e MONGO_INITDB_ROOT_USERNAME=mongoadmin \ -e MONGO_INITDB_ROOT_PASSWORD=secret \ -e MONGO_INITDB_DATABASE=payment \ mongo
- app.js,
DATABASE_URI = 'mongodb://mongoadmin:secret@localhost:27017/payment?authSource=admin'
- Local DB 서버를 실행합니다.
- 내 식별코드 ・ API Keys
- sample.html: https://developers.portone.io/docs/ko/auth/guide/3
pg:
: https://developers.portone.io/docs/ko/tip/pg-2m_redirect_url:
: https://developers.portone.io/docs/ko/auth/guide/4/redirectimpXXXXXXXX
: 가맹점 식별코드
- app.js
/portone-webhook
: https://developers.portone.io/docs/ko/result/webhook/payments/complete
: https://developers.portone.io/docs/ko/auth/guide/5/post/billings/complete
,/billings
: https://developers.portone.io/docs/ko/auth/guide-1/bill/pg/payments/schedule
: https://developers.portone.io/docs/ko/auth/guide-1/undefinedgetAccessToken()
imp_key:
: REST API Keyimp_secret:
: REST API Secret
$ node app.js
- https://classic-admin.portone.io/payments
만약 .env
과 docker-compose.yml
을 만든다면, 다음과 같이 환경변수를 설정할 수 있다.
MERCHANT_ID=impXXXXXXXX # 가맹점 식별코드
IMP_APIKEY=250...... # REST API키
IMP_SECRET=tGE......... # REST API Secret
DATABASE_URI=schema://user:pass@host:port/db
MID=xxxxxtestxx4 # PG상점아이디 (MID)