1. ์ ์ ๊ฐ ๊ฒฐ์ ๋ฒํผ์ ๋๋ฅด๋ฉด
2. ์ฌ์ ๊ฒ์ฆ์ ์ํด ์ํ์ ๊ฐ๊ฒฉ์ ํฌํธ์์ ์๋ ค์ค๋ค
- ajx๋ก ๋ด ์๋ฒ์ ๊ฐ ํ ํฌํธ์์ผ๋ก request๋ฅผ 2๋ฒ ๋ ๋ฆฐ๋ค
- ์ฒซ๋ฒ์งธ๋ฅผ ๋ ๋ ค token์ ๋ฐ๊ณ
- ๋๋ฒ์งธ๋ก ์ token๊ณผ ํจ๊ป merchant_uid (์๋ฒ์์ ์ง์ ์์ฑํ ์ฃผ๋ฌธ id), ๊ฐ๊ฒฉ์ ํจ๊ป ๋ ๋ ค์ค๋ค.
- order DB์ ์ฝ๋ ์
์ ์๋ก ๋ง๋ค๊ณ ์์์ ๋ง๋ merchant_uid๋ฅผ ์ ์ฅํ๋ค.
- merchant_uid ๋ฅผ ํด๋ผ๋ก ๋ฆฌํดํ๋ค.
3. ๋ค์ ํด๋ผ๋ก ๋์์จ ํ IMP.request_pay()๋ฅผ ๋ ๋ฆฐ๋ค.
this.IMP.request_pay({
// pg์๋ ํฌํธ์ > ๊ฒฐ์ ์ฐ๋์์ PG์์ ์์ด๋ (์ฌ์ดํธ์ฝ๋)๋ฅผ ๋ฃ์ด์ฃผ๋ฉด ๋๋ค
// pg : 'html5_inicis',
// pg : 'INIBillTst',// ์ ๊ธฐ ๊ฒฐ์ KG์ด๋์์ค. ์ด๊ฑด ์นด๋์ ๋ ฅ์ฐฝ์ด ๋ฌ๋ค
// pg : '9810030929',// ๋ค๋ .
// pg : 'nice.iamport00m',// ๋์ด์ค ํ์ด๋จผ์ธ
// pg : 'T0000',// NHN KCP
pg : 'INIpayTest',// ์ผ๋ฐ ๊ฒฐ์ KG์ด๋์์ค
pay_method,
merchant_uid,
name : storeItem.name,
amount : storeItem.price.point,
buyer_email : this.ownerEmail,
buyer_name : this.ownerNickname,
m_redirect_url : `${domain}/store/payment/done`, // ๋ชจ๋ฐ์ผ์ ๋ฆฌ๋๋ ์ ์ ์ฌ์ฉํ๋ค. ์๋ ์ฝ๋ฐฑ์ผ๋ก ๊ฐ์ด ๋ค์ด์ค์ง x
notice_url : `${apiBaseURL}/order/portone_webhook`,// ์นํ ์ ์์ ํ ์ฃผ์
}, function(rsp) {// pc์์๋ ์ฌ๊ธฐ iframe ์ฝ๋ฐฑ๋ฐฉ์์ผ๋ก ์ฒ๋ฆฌํ๋ค
if ( rsp.status == 'paid' ) {// ๋ชจ๋ฐ์ผ๊ณผ ๋์ผํ๊ฒ ๊ทธ๋๋ก redirectํ๋ค
self.$router.push(`/store/payment/done?imp_success=true&imp_uid=${rsp.imp_uid}&merchant_uid=${rsp.merchant_uid}`);
} else {// ๊ฒฐ์ ์คํจ์
self.$router.push('/store/payment/done?imp_success=false');
}
});
- 2๋ฒ์์ ๋ฐ์ merchant_uid๋ฅผ ์ธ์๋ก ํจ๊ป ๋ ๋ฆฐ๋ค.
- ๊ทธ๋ผ merchant_uid๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํฌํธ์์์ ๊ฒฐ์ ๋ฅผ ์งํํ๋ฉฐ ๊ฐ๊ฒฉ์ ํ๋ฆผ์ด ์๋์ง ํ์ธํ๊ณ ๋ฌธ์ ๊ฐ ์๋ค๋ฉด ๊ฒฐ์ ๋ฅผ ํ๋ค.
- m_redirect_url ์ notice_url ๊ฐ ํต์ฌ์ด๋ค.
- m_redirect_url ๊ฒฐ์ ๊ฐ ๋๋๋ฉด ์ด๋ํ ํด๋ผ url์ ๋ฃ๋๋ค.
- pc๋ ์ฝ๋ฐฑ์ผ๋ก ๋ค์ด์ค๊ณ ๋ชจ๋ฐ์ผ์์๋ ์ฌ๊ธฐ๋ก ๋ค์ด์จ๋ค. ๋ฐ๋ผ์ ๊ฒฐ์ ๋ฐฉ๋ฒ์ ํต์ผํ๊ธฐ ์ํด pc์ ์ฝ๋ฐฑ์ ์ฐ์ง ์๊ณ ๊ฒฐ์ ์๋ฃ ํ์๋ ํญ์ ์ฌ๊ธฐ๋ก ์ด๋ํ๊ฒ ํ๋ค.
- ์ฟผ๋ฆฌ์คํธ๋ง์ผ๋ก 3๊ฐ์ ๊ฐ์ด ํจ๊ป ๋ค์ด์จ๋ค. imp_success๋ ๊ฒฐ์ ์ฑ๊ณต์ฌ๋ถ, imp_uid, merchant_uid ๋ฑ์ด๋ค
- notice_url ๋ ๊ฒฐ์ ๊ฐ ์๋ฃ๋์์ ๋ ํฌํธ์์์ ๋ด๊ฒ ๋ณด๋ผ ์นํ
์ฃผ์๋ฅผ ๋ฃ์ด์ค๋ค.
- ์นํ
์ผ๋ก๋ 2๊ฐ์ ์ฟผ๋ฆฌ ์คํธ๋ง์ด ๋ค์ด์จ๋ค. imp_uid, merchant_uid
4. ํฌํธ์ doc์ ๋ณด๋ฉด ์ฝ๋ฐฑ ์์ฃผ๋ก ์ค๋ช
์ด ๋์ด ์๋๋ฐ ์ด๊ฑด ์ฌ์ฉํ์ง ์๋๋คx
- ์๋๋ฉด ์ฝ๋ฐฑ์ ์ด์ฉํ ๊ฒฝ์ฐ ๋คํธ์ ์ํฉ์ ๋ฐ๋ผ ๊ฒฐ์ ๊ฐ ๋๋ฝ๋ ์๋ ์๊ธฐ ๋๋ฌธ์ด๋๋ค.
https://developers.portone.io/docs/ko/auth/guide/5/post?v=v1
5. ๋ฐ๋ผ์ ๋ชจ๋ ๊ฒฐ์ ์ฒ๋ฆฌ๋ notice_url๋ก ๋ค์ด์จ ์นํ
์ ๋ณด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ค.
- ํ์ง๋ง ์ด ๊ฒฝ์ฐ์๋ ํญ์ ์นํ
์ผ๋ก ๋จผ์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ๊ฐ ๋ ํ์ ์ฝ๋ฐฑ์ด ํธ์ถ๋์ผ๋ง pc์์ $router.push() ํ์ ๋ ์ ๋ณด์ ๋๋ฝ์ด ์๊ฒ ๋๋ค.
- ํฌํธ์์์๋ ์ด๋ฅผ ์ํด ์์ ๋ณด์ฅ์ด ํ์ํ๋ค๋ฉด ๋ฉ์ผ๋ก ์๋ ค๋ฌ๋๋ค.
https://developers.portone.io/docs/ko/result/webhook?v=v1
- ๋ฉ์ผ์ ๋ณด๋ด ์์ ๋ณด์ฅ์ ์์ฒญํ๋๋ ๋ฐ๋ก ์ฒ๋ฆฌ๋์๋ค.
6. ์ด์ ์นํ
์์ ๊ฐ๊ฒฉ์ด ๋ฐ๋์ง ์์๋์ง๋ง ํ์ธํ๋ฉด ๋๋ค.
- ์นํ
์ผ๋ก imp_uid, merchant_uid ๊ฐ์ด ๋ค์ด์จ๋ค.
- ๋จผ์ ํฌํธ์์์ ํ ํฐ์ ๋ฐ์ ํ imp_uid ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ค์ ํฌํธ์์ ๊ฒฐ์ ์ ๋ณด๋ฅผ ์์ฒญํด ๋ฐ์์จ๋ค.
- ๊ฒฐ์ ์ ๋ณด ์์๋ ๊ฒฐ์ ์ ๊ด๋ จํ ๋ชจ๋ ์ ๋ณด๋ค์ด ๋ค์ด์๋ค.
- ์ด์ merchant_uid ๋ก ๋ด db์์ 2๋ฒํ ๋ ์ ์ฅํด ๋ order๋ฅผ ๋ถ๋ฌ์จ๋ค.
- ๊ทธ๋ฆฌ๊ณ ์ด order์ ์๋ ๊ฐ๊ฒฉ๊ณผ ํฌํธ์์์ ๋ฐ์์จ ์ต์ข
๊ฒฐ์ ์ ๋ณด์ ๊ฐ๊ฒฉ์ ๋น๊ตํ์ฌ ํ๋ฆฐ๊ฒ ์๋์ง ํ์ธํ๋ค. ์ด๊ฒ ์ฌํ๊ฒ์ฆ์ด๋ค.
- ๋์ ๊ฐ์ด ๊ฐ๋ค๋ฉด ์์ ํ ์์ ํ ๊ฒฐ์ ๋ผ๋ ๋ป์ด๋ค.
- ๊ฐ๋ค๋ฉด ์ด์ ํฌํธ์์์ ๋ฐ์์จ ๊ฒฐ์ ์ ๋ณด๋ฅผ ๋ด order์ ์ ์ฅํ๋ฉด๋๋ค. ํ๋ฆฌ๋ค๋ฉด ํด๋น order์ ๊ธฐ๋ก์ ๋จ๊ธฐ๊ณ ์ทจ์ํ๋ฉด ๋๋ค.
- ๋ฆฌํด์ ์๋ฌด๊ฒ๋ ํ ํ์ ์๋ค.
7. ์คํจํ๋ ์ฑ๊ณตํ๋ ๊ฒฐ์ ๊ฐ ๋๋๋ฉด m_redirect_url ๋ก imp_success, imp_uid, merchant_uid ๋ฑ 3๊ฐ์ ์ฟผ๋ฆฌ์คํธ๋ง์ด ํจ๊ป ๋ค์ด์จ๋ค.
- ์ด๊ฑด ํฌํธ์์์ ๋ ๋ ค์ฃผ๋ ๊ฒ์ด๋ค.
- ์ด ์ ๋ณด๋ค์ ๋ฐ์์ ๊ทธ๋๋ก ๋ค์ ๋ด ์๋ฒ๋ก ๋ณด๋ด์ค๋ค.
- ๋ด ์๋ฒ์์ ์ด ์ฟผ๋ฆฌ์คํธ๋ง์ ๋ค์ ํฌํธ์์ ๋ ๋ ค ์ต์ข
๊ฒฐ์ ์ ๋ณด๋ฅผ ๋ฐ์์จ๋ค.
- ๋ด DB๋ ๋ค์ง ํ์๊ฐ ์๋ค. ๊ทธ๋ฅ ํฌํธ์์ ์ ์ํด์ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ค๊ณ ๊ทธ๊ฑธ ๋ค์ ํด๋ผ๋ก ๋ณด๋ด์ฃผ๋ฉด ๋๋ค.
- ํด๋ผ์์๋ ํด๋น ๊ฒฐ์ ์ ๋ณด๊ฐ ์ฑ๊ณต์ด๋ผ๋ฉด ์ฑ๊ณตํ์ด์ง๋ฅผ ๋ณด์ฌ์ฃผ๊ณ ์คํจ๋ผ๋ฉด ์คํจ ํ์ด์ง๋ฅผ ๋ณด์ฌ์ฃผ๋ฉด ๋๋ค.
8. ๊ฒฐ์ ๋ฃจํด์ด ์์ ํ ๋ฌ๋ผ์ง๋ฉด์ ํฌ์ธํธ ์์ดํ
๊ฒฐ์ ๋ ๋ถ๊ธฐ์์ผ ๋ฐ๋ก ์ฒ๋ฆฌํ๋ค.
์ด๊ฑธ๋ก ๋ชจ๋ ๊ธฐ๊ธฐ์์ ๊ฒฐ์ , ํ๋ถ, ์ทจ์ ์์คํ ๊ฐ๋ฐ ์๋ฃ
์ด์ pg์ฌ ๊ณ์ฝ ์งํํ๋ค.
'Moonlit ๊ฐ๋ฐ๊ธฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Mongoose ๋ฒ์ ์ ์ดํ save()๊ฐ ๋์ง ์๋๋ค๋ฉด (0) | 2024.01.02 |
---|---|
๋จผ์ ๊ด๊ณ ๋ฅผ ๋๋ ค์ผ ํ๋ค๋ ๊ฒ์ ์์ง๋ง (0) | 2023.12.25 |
Moonlit ์๋น์ค๋ฅผ ์ค๋นํ๋ฉฐ (0) | 2023.11.21 |
์์ ๋ชฉ๋ก (1) | 2023.10.27 |
์์ ๋ชฉ๋ก (0) | 2023.10.13 |