Amazon Appstore IAP API ์ ๋ํ ์ง์์ด ์์ผ๋ฉด ์ข์ ๊ฒ ๊ฐ์ต๋๋ค.
๊ณผ๊ฑฐ์ ์ด๋ฅผ ์ง์ํ๋ ์์
์ด ์๋ ๊ฒ์ ๋ณด์์ง๋ง ๊ตฌ์์ผ๋ก ๋ณด์ด๋ฉฐ ํ์ฌ react-native-iap ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํจ๊ป ์ฌ์ฉํ ์ ์์ต๋๋ค.
https://github.com/dooboolab/react-native-iap/issues/370
๊ทธ๋์ ๋๋ https://github.com/nochkin/react-native-iap/tree/amazon-iap ์์ ๋ด ์์ ์ ํฌํฌ๋ฅผ ์์ํ์ต๋๋ค.
๋ด ์์ ์ ๊ฐ๋ฐ ํ๊ฒฝ์์ ์๋ํ๋ ๊ฒ ๊ฐ์ต๋๋ค. ๊ทธ๋ฌ๋ PR์ ์์ฑํ๊ธฐ ์ ์ ์ค์ ์ํ/๋ฒ ํ ํ ์คํฐ๊ฐ ํน์ ์ฃ์ง ์ผ์ด์ค๋ฅผ ๊ฒํ ํ๊ณ ์ ์ ํ๊ฒ ์ฐ๋งํ๋๋ก ํ๋ ๊ฒ์ด ์ข์ ๊ฒ์ ๋๋ค. ๋ด ์ฑ์ ๋ชจ๋ ๊ธฐ๋ฅ์ ์ฌ์ฉํ์ง ์์ ๊ฐ๋ฅ์ฑ์ด ๋งค์ฐ ๋๊ธฐ ๋๋ฌธ์ ๋๋ค.
๋๋ ๊ฐ๋ฅํ ํ ์๋์ react-native-iap API ์์ ๋จธ๋ฌผ๋ ค๊ณ ๋ ธ๋ ฅํ์ต๋๋ค. ์์ง ํ์ง ์์ ๋ช ๊ฐ์ง ๋ฐฉ๋ฒ์ด ์์ต๋๋ค(๋๊ตฐ๊ฐ ์ ๋๋ก ํ ์คํธํ ์ ์๋ ๋ฐฉ๋ฒ์ด ์์ผ๋ฉด ์ถ๊ฐํ ์ ์์ต๋๋ค).
๋ด ํฌํฌ์ ์ฃผ์ ๋์์ธ ๊ฒฐ์ ์ค ํ๋๋ Google๊ณผ Amazon์ ๊ฐ์งํ๋ ๋ฐฉ๋ฒ์
๋๋ค. ์ฅ์น ๋ชจ๋ธ/์ ์กฐ์
์ฒด๋ฅผ ๊ฐ์งํ๋ ๊ฒ์ ์ฌ์ฉ์๊ฐ Google Play๋ฅผ Kindle์ ์ค์นํ๊ณ Google์ ํตํด ์ฑ์ ๋ค์ด๋ก๋ํ ์ ์๊ธฐ ๋๋ฌธ์ ์ข์ ์ ๊ทผ ๋ฐฉ์์ด ์๋๋ผ๊ณ ์๊ฐํฉ๋๋ค(Play ๊ธฐ๋ฐ ์ฅ์น์ Amazon Appstore๋ฅผ ์ค์นํ ์ ์๋ ๊ฒฝ์ฐ ๊ทธ ๋ฐ๋). ์ด ๊ฒฝ์ฐ ํด๋น API๋ฅผ ํตํด IAP๋ฅผ ์ํํด์ผ ํฉ๋๋ค.
๋ด ํฌํฌ๋ ์ค์น ์์ค๋ฅผ ํ์ธํ๊ณ ๊ทธ์ ๋ฐ๋ผ ์๋ํฉ๋๋ค. dev ํ๊ฒฝ์์๋ ์ค์น ์์ค๊ฐ ์กด์ฌํ์ง ์์ผ๋ฏ๋ก ์ ๋๋ก ํ
์คํธํ ์ ์๋๋ก fallback์ ์ค์ ํ ์ ์์ต๋๋ค.
๋ด ํฌํฌ๊ฐ ์
์คํธ๋ฆผ ๋ฆฌํฌ์งํ ๋ฆฌ์ ๋ณํฉ๋๋ ๋ฐ ๊ด์ฌ์ด ์๋ ๊ฒฝ์ฐ ์ด๋ฅผ ๋ฌธ์ํํ ๊ฒ์
๋๋ค.
@nochkin ์ ๋ง ์ข์ ๊ฒ ๊ฐ์ต๋๋ค. ์ด๊ฒ์ ํ
์คํธํ๋ ๋จ๊ณ๋ฅผ ์๊ณ ์ถ์ต๋๋ค. amazon
๊ธฐ๊ธฐ๊ฐ ์์ต๋๋ค. ์์ง ํ
์คํธํ ์ ์์ต๋๊น? ์ด ํตํฉ์ ๊ด์ฌ์ด ์๋ ์ฌ๋๋ค์ ์ํด ๋ฌธ์๋ฅผ ๊ฐ์ ธ์ฌ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
ํ
์คํธ ๋ชฉ์ ์ผ๋ก ์ค์ Amazon ์ฅ์น๋ฅผ ์ฌ์ฉํฉ๋๋ค. Amazon์ด ์๋ ์ฅ์น์ Amazon Appstore๋ฅผ ์ค์นํ๋ฉด ๊ทธ๋ ๊ฒ ํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ค๋ ๋์ค์ ์์ํ๊ธฐ ์ํด ๋ช ๊ฐ์ง ๋ฌธ์๋ฅผ ๋ง๋ค ๊ฒ์
๋๋ค. ๊ด์ฌ์ด ์์ด์ ๋คํ์
๋๋ค.
๋ค์์ ๊ธฐ์กด ์ฑ์ Amazon IAP ์ง์์ ์ถ๊ฐํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์๋ด์์
๋๋ค.
https://github.com/nochkin/react-native-iap/blob/amazon-iap/README_AMAZON.md
์ถ๊ฐ ์ค๋ช
์ด ํ์ํ ์ฌํญ์ด ์์ผ๋ฉด ์๋ ค์ฃผ์ญ์์ค.
์ฐธ๊ณ ๋ก,
์ด์ ฏ๋ฐค ๋ด ํฌํฌ์ ๋ช ๊ฐ์ง ๋ณ๊ฒฝ ์ฌํญ์ ์ถ๊ฐ๋ก ํธ์ํ๊ณ ์ด๋ฅผ ์ฌ์ฉํ์ฌ ๋ด ์ฑ์ ํ๋ก๋์
์ ์ถ์ํ์ต๋๋ค.
์ง๊ธ๊น์ง๋ ์ข์๋ณด์
๋๋ค.
๋ด ์ฑ์์ ๋ค๋ฃจ์ง ์๋ ์ถ๊ฐ ๊ธฐ๋ฅ์ด๋ ์ฌ์ฉ ์ฌ๋ก๊ฐ ํ์ํ ๊ฒฝ์ฐ ๋ค๋ฅธ ์ฌ๋๋ค๋ก๋ถํฐ ํผ๋๋ฐฑ์ ๋ฐ๊ณ ์ถ์ต๋๋ค.
@hyochan ๋ฆด๋ฆฌ์ฆ์ ์ถ๊ฐํ ๊ณํ์ ์๋์?
@curiousdustin ,
๋ด ํฌํฌ๋ฅผ ์ฌ์ฉํ์ฌ ํ
์คํธํ๊ณ ํผ๋๋ฐฑํ ์ ์์ต๋๋ค.
https://github.com/nochkin/react-native-iap/tree/amazon-iap
๋๋ ๋น์ ์ ์ฌ์ฉ ์ฌ๋ก๊ฐ ๋์ ๋ค๋ฅผ ๊ฒ์ด๋ผ๊ณ ํ์ ํ๋ฏ๋ก ๋ ๋ง์ ๋ณ๊ฒฝ ์ฌํญ์ ์ป๊ธฐ ์ํด ์ถ๊ฐ ํผ๋๋ฐฑ์ ์ ๊ณตํ ์ ์์ต๋๋ค.
@nochkin ๊ทํ์ ํฌํฌ์๋ Amazon ๊ตฌ๋ IAP์ ๋ํ ์ง์์ด ํฌํจ๋์ด ์์ต๋๊น?
@curiousdustin ,
์ํํ์ง ์ค๋๋์์ง๋ง ๊ทธ๋ ๊ฒ ์๊ฐํฉ๋๋ค. ๊ตฌ๋
์ผ๋ก ํ
์คํธํ์ง ์์์ ๋ฟ์
๋๋ค.
๋๋ ํด๋ผ์ด์ธํธ์์ ์ด๋ค ๊ฒ๋ ๊ฒ์ฆํ์ง ์๊ธฐ ๋๋ฌธ์ ์ฌ์ ํ ์๋ฒ ์ธก์์ ๊ฒ์ฆ์ ๊ตฌํํด์ผ ํฉ๋๋ค.
Amazon์ ํธ๋ํฝ์ ๊ทธ๋ ๊ฒ ๋ง์ด ๊ฐ์ ธ์ค์ง ์๊ธฐ ๋๋ฌธ์ ์ค์ํ์์์ ํ ์คํธ๋ ๋ค์ ๋๋ฆฝ๋๋ค. ์ด ๋ถ๋ถ์ ๊ธฐ์ฌํ ์ ์๋ค๋ฉด ์ข์ ๊ฒ์ ๋๋ค.
์ข์, ์๋ง ์ด๊ฒ์ ์ํํด ๋ณผ ๊ฒ์ด๋ค. ํ์ฌ ํ๋ก๋์ ์์ ์์ฒด ํฌํฌ๋ฅผ ์ฌ์ฉํ๊ณ ์์ง๋ง ์ด๋ ์ฃผ์ ์๋ช ์ฃผ๊ธฐ ๊ด๋ จ ๋ณ๊ฒฝ ์ด์ ์ ๊ฒ์ ๋๋ค. ๊ทธ ์ดํ์ ๋ชจ๋ ํ๋ฅญํ ์ ๋ฐ์ดํธ๋ฅผ ํ์ฉํ๊ณ ์ถ์ต๋๋ค.
๋ฉ์ง. ์ ๋ ์์ง ๋ด ์ฑ(rn-iap์ด ์๋ ๋ด๋ถ ์ฑ ๊ด๋ จ ๋ก์ง)์ ๋ํ ๊ตฌ๋ ์ ๊ตฌํํ๋ ์ค์ ๋๋ค. ๋ง์ฝ ์๋ค๋ฉด ์๋ ค์ฃผ์ธ์.
Amazon ๊ตฌ๋ API๋ ์ฟผ๋ฆฌ๋ฅผ ๋ฐ์ ๋ ๋ค์ ์ด์ํฉ๋๋ค. ์๋ฅผ ๋ค์ด ๋์ผํ ์๋น์ค์ ๋ํ ์๊ฐ ๋ฐ ์ฐ๊ฐ ๊ตฌ๋ ์ด ์์ง๋ง Amazon์์๋ ์ด๋ฅผ ๋์ผํ๊ฒ ๋ณด๊ณ ํฉ๋๋ค. ์ ์ผํ ์ฐจ์ด์ ์ ๊ฐ๊ฒฉ์ ๋๋ค. ๊ทธ๋์ ๋๋ ๊ฐ๊ฒฉ๋ง์ ๊ธฐ์ค์ผ๋ก ์ด๋ ๊ฒ์ด ์ด๋ ๊ฒ์ธ์ง ์์๋ผ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ต๋๋ค.
๊ตฌ๋ ๋ฐ ์ ๊ท ๊ตฌ๋ ์ฌ์ฉ์๊ฐ ๋ง์ต๋๊น?
์, ์ ๊ฐ ์ฌ์ฉํ๋ ์ฑ์ ๋งค๋ฌ ์๋ฐฑ ๊ฐ์ ์๋ก์ด ๊ตฌ๋ ์ด ์์ต๋๋ค. ๋ํ ์ด๋ฅผ ์ฌ์ฉํ๋ ๋ชจ๋ ์ ๋ฐ์ดํธ๋ ๋ฆด๋ฆฌ์ค ์ ์ ์ฒ ์ ํ๊ฒ QA๋ฉ๋๋ค.
์๋ณ ๋ฐ ์ฐ๊ฐ ์ต์ ๋ ์์ต๋๋ค. ์ค๋ช ํ๋ฏ์ด ๋ ๋ค Amazon์ ๋จ์ผ ID ์๋์ ์์ต๋๋ค. ์ฐ๋ฆฌ์ ๊ฒฝ์ฐ ๊ธฐ๊ฐ์ ๋ํ ์ ๋ณด๋ฅผ ์ ๊ณตํ๋ Amazon API๋ฅผ ํตํด ๊ตฌ๋ ์ ํ์ธํ๊ณ ์์ต๋๋ค.
์ด๊ฒ์ ์ข์ ์๋ฆฌ์ ๋๋ค. ๋ด ํฌํฌ๊ฐ ๋ค๋ฅธ ์๋๋ฆฌ์ค์์ ์ ์ ํ ํ ์คํธ๋ฅผ ๋ฐ๊ฒ ๋์ด ๊ธฐ์ฉ๋๋ค.
์ฌ์ฉ์๊ฐ ์ ํํ ์ ์๋๋ก UI์ ๊ตฌ๋
๊ธฐ๊ฐ์ ํ์ํด์ผ ํฉ๋๋ค.
Amazon Developer Console์ ํ์์ ๋ฐ๋ผ ํด๋น ํ๋๊ฐ ์๋ค๋ ๊ฒ์ด ์ด์ํ์ง๋ง API๋ ํด๋น ํ๋์ ์ก์ธ์คํ ์ ์์ต๋๋ค.
์ด๊ฒ์ ๋ณ๊ฒฝ๋์์ ์ ์์ง๋ง ์ค๊ณ ์ ๋ ๊ฐ์ง ์ต์ ์ ์ ์ํ๋๋ผ๋ ๊ตฌ๋งค ํ๋ฆ์ ์์ํ๋ฉด Amazon์์ ์ฒซ ๋ฒ์งธ ์ต์ ์ด ๋ฏธ๋ฆฌ ์ ํ๋ ๊ธฐ๊ฐ ์ต์ ์ ํ์ํฉ๋๋ค. ๊ทธ๋์ ์๋ง์กด ๊ตฌ๋งค ํ๋ฆ UI์ ๋ค์ด๊ฐ ๋๊น์ง ์ฌ์ฉ์๊ฐ ์ค์ ๋ก ๊ธฐ๊ฐ์ ์ ํํ์ง ์๋ ์๋ง์กด์ฉ ์ UI๋ฅผ ๊ตฌํํด์ผ ํ์ต๋๋ค.
์ค์ ๋ก ํฅ๋ฏธ๋ก์ด ์์ด๋์ด. ๋ด UI๋ ์ด ๋ชจ๋ธ์ ๋ง์ง ์์ง๋ง ๋ณ๊ฒฝํ๊ธฐ๋ก ๊ฒฐ์ ํ๋ฉด ์ด ์ต์ ์ ๊ณ ๋ คํ ์ ์์ต๋๋ค. ๊ทธ๋๋ ๊ณ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๊ฐ์ฌ ํด์.
@curiousdustin @nochkin
์๋
ํ์ธ์, ๋น์ ์ด ์ด ๋ฌธ์ ์ ๋ํด ๋ง์ ์ผ์ ํ๋ค๋ ๊ฒ์ ์ดํดํ์ต๋๋ค. ์์ฐ! ์ ๋ ๊ตฌ๋
์ ๊ตฌํํ๋ ์ค์
๋๋ค. ๊ตฌ๋
์ด ์
๋ฐ์ดํธ๋์๋์ง ์ด๋ป๊ฒ ์ ์ ์์ต๋๊น? ์๋ฒ์์ ์
๋ฐ์ดํธํด์ผ ํฉ๋๊น? RVS์์ ์๋ํ๋ ๋ฐฉ์์ Amazon ์์์ฆ์ ๊ตฌ๋
์ข
๋ฃ ๋ ์ง๊ฐ ์์ผ๋ฏ๋ก ์๋ฒ์ ์ฌ์ฉ์์ ๋ํ ํน์ ๊ตฌ๋
์ ์
๋ฐ์ดํธํ๋ ๋ฐฉ๋ฒ์
๋๋ค. ์ด ๋ชจ๋ ๊ฒ์ ๋ํด ์๊ณ ๊ณ์ ๋ค๋ฉด ์ข์ ์์์ ๋ค์ ์ ์์ ๊ฒ์
๋๋ค.)
์์ง ๋ด ํ๋ก์ ํธ์์ ์ด ํฌํฌ๋ฅผ ๊ตฌํํ๊ธฐ ์์ํ์ง ์์์ต๋๋ค. ์๋ง ๋ค์ ๋ฌ์ ๊ทธ๋ ๊ฒ ํ ๊ฒ์ ๋๋ค.
์ฃ์กํฉ๋๋ค. ์๋ฒ ์ธก Amazon ํญ๋ชฉ์ด ์๋ํ๋ ๋ฐฉ์์ ๋ํ ์ ๋ณด๊ฐ ๋ง์ง ์์ต๋๋ค. ๋ด ํ์ ๋ค๋ฅธ ์ฌ๋์ด ๋ฐฑ์๋๋ฅผ ์ฒ๋ฆฌํ์ต๋๋ค. ํ์ฌ ์ฐ๋ฆฌ๋ ์ ํ ID์ ์์์ฆ ID๋ฅผ ์๋ฒ์ ์ ๋ฌํ๊ณ ํ์์ ๋ฐ๋ผ ๊ตฌ๋ ์ ํจ์ฑ์ ํ์ธํ๊ณ ์ ๋ฐ์ดํธํ๋ ํ ๋ค๋ฅธ ๋ชจ๋ ๊ฒ์ ์ฒ๋ฆฌํ๋ค๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค.
@kostiantyn-solianyk
๋ด ์์ ์ ์ฑ์ ํ์ฌ Google Play ๋ฐ App Store๋ง ๊ตฌํํ์ผ๋ฉฐ ์์ง ๊ตฌ๋
์ฉ Amazon RVS๋ฅผ ์ํํ์ง ์์์ต๋๋ค.
๋๋ Amazon์ ๋ํด ์ ๊ธฐ์ ์ธ ์ธ์ฑ ๊ตฌ๋งค ํ์ธ์ ์ํํ๋ฉฐ ์ด๋ ๊ตฌํํ๊ธฐ ์ฌ์ ์ผ๋ฏ๋ก ๊ตฌ๋
์ด ์ด๋ ์ ๋ ๋น์ทํด์ผ ํ๋ค๊ณ ๊ฐ์ ํฉ๋๋ค.
๋ค, ํ ์คํธ ๋ชจ๋์์๋ ๋ชจ๋ ๊ฒ์ด ๊ด์ฐฎ์ต๋๋ค. ์ค์ ๋ก ํฌํฌ๋ ํ์์ ๋ฐ๋ผ ์๋ํฉ๋๋ค(๋ด๊ฐ ํ์ธํ ๊ฒฝ์ฐ).
์๋ง์กด ์์์ฆ์ ๊ตฌ๋ ์ข ๋ฃ์ผ์ด ์๊ธฐ ๋๋ฌธ์ ๊ตฌ๋ ์ ๋ฐ์ดํธ ๋ฌธ์ ์ ๊ฐํ๊ณ ์ค์ ๋ก ์ด์ํ์ต๋๋ค.
๊ตฌ๋
์ ๋ํ Amazon ํ์ธ์ ์ฌ์ฉํ ์ ์๋๋ก ์์
์ ์ฐ์ ์์๋ฅผ ๋ค์ ์ง์ ํ ์ ์๋์ง ํ์ธํ๊ฒ ์ต๋๋ค.
ํ
์คํธ ์๋ฒ๋ฅผ ์ฌ์ฉํ๋ ๋ฐ ๋ฌธ์ ๊ฐ ์๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. ๋ง์ต๋๊น?
@nochkin ๊ทธ๋ฐ๋ฐ getAvailablePurchases
๋ฐ getPurchaseHistory
๋ฉ์๋๊ฐ ์ค๋ฅ๋ฅผ ๋ฐํํ๋ค๋ ๊ฒ์ ์์์ต๋๋ค. ์ด 2๊ฐ์ง๊ฐ ํฌํฌ์ amazon IAP์ ๋ํด ์์ง ๊ตฌํ๋์ง ์์ ๊ฒ ๊ฐ์๋ฐ์?
๋น์ ์ด ๋ง์ต๋๋ค. ๋ด ์์ ์ ์ฑ ๋ชจ๋ธ์ ๊ทธ๊ฒ๋ค์ ์ฌ์ฉํ์ง ์์ต๋๋ค.
๋ด๊ฐ ๋ณผ๊ฒ์. ๊ฐ์ฌํฉ๋๋ค.
@kostiantyn-solianyk ์ ์ ์ฌํ๊ฒ Amazon์ ๋ํด ๋ค์ ๋ฉ์๋๋ฅผ ๊ตฌํํด์ผ ํ๋ค๋ ๊ฒ์ ์์์ต๋๋ค.
RNIapAmazonModule.endConnection()
RNIap.endConnection()
๋๋ ์ด๊ฒ์ด ์ฝ์์ ํด๊ฒฐํด์ผํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋ํ index.ts
์ ๋ํ ๋ณ๊ฒฝ์ด ํ์ํ๊ฑฐ๋ ์ฌ์ฉ๋์ง ์์ต๋๋ค.
RNIapAmazonModule.refreshItems()
์ด(๊ฐ) ํธ์ถํ RNIap.consumeAllItemsAndroid()
๋ด ์ฑ์ consumeAllItemsAndroid
๋ฅผ ์ฌ์ฉํ์ง ์์ผ๋ฏ๋ก ์ํํด์ผ ํ ์์
์ ์ดํด๋ณด์ง ์์์ต๋๋ค.
RNIapAmazonModule.getPurchaseHistoryByType()
์ด(๊ฐ) ํธ์ถํ RNIap.getPurchaseHistory()
๋ด ์ฑ์ getPurchaseHistory
๋ฅผ ์ฌ์ฉํ์ง ์์ผ๋ฏ๋ก ์ํํด์ผ ํ ์์
์ ์ดํด๋ณด์ง ์์์ต๋๋ค.
RNIapAmazonModule.getAvailableItemsByType()
RNIap.getAvailablePurchases()
์ ์ํด ํธ์ถ๋จ์ด๋ ์ฑ์์ _๊ตฌ๋งค ๋ณต์_ ํ๋ฆ์ ์ ๊ณตํ๋ ๋ฐ ํ์ํฉ๋๋ค. ๋๋ ์ด๊ฒ์ ์๋ ์์ผฐ์ง๋ง ๋ด๊ฐ ๋ณธ ๊ฒ์ด ์ฝ๊ฐ ํดํน ๋ ๋๋์ ๋๋ค. ๋๋ ๊ทธ๊ฒ์ด ์กฐ๊ธ ์ ๋ฆฌ๋๋ฉด ์ฌ๊ธฐ์ ํด๊ฒฐ์ฑ ์ ๊ฒ์ ํ ๊ฒ์ ๋๋ค.
๊ทธ ์ธ์๋ ์ง๊ธ๊น์ง์ ํ ์คํธ๊ฐ ์์กฐ๋กญ๊ฒ ์งํ๋๊ณ ์์ต๋๋ค. @nochkin๋ ๊ฐ์ฌํฉ๋๋ค!
@nochkin , ์ฑ ํ๋ก์ ํธ์ ์ด ํฌํฌ๋ฅผ ์ค์นํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํ ์ ์์ต๋๊น?
๋ด๊ฐ ๋ค์๊ณผ ๊ฐ์ด ํ ๋ :
"react-native-iap": "github:nochkin/react-native-iap.git#amazon-iap"
typescript์์ ๋น๋๋ js๊ฐ ์์ ๊ฒ์ผ๋ก ์์ํ๊ธฐ ๋๋ฌธ์ ๋ชจ๋์ด ํด๊ฒฐ๋์ง ์์ง๋ง ๋น๋๋ ๋ฒ์ ์ ํ๋ก์ ํธ๊ฐ github์ ์กด์ฌํ์ง ์์ต๋๋ค. ๋ชจ๋ ๋ฆด๋ฆฌ์ค ํจํค์ง์ ๋ํด์๋ง ์์ฑ๋ฉ๋๋ค. ์ค์ ๋ก npm๊ณผ ์์ ์ค๋ก ์ค์นํ๋ฉด .npmignore ํ์ผ ๋๋ฌธ์ index.ts๋ ๋ค์ด๋ก๋ํ์ง ์๋๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ด๊ฒ ๋ง์ด ๋ผ?
๋๋ฝ๋ ๋ฉ์๋ ๊ตฌํ์ ๋ํ ์์ฝ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. "endConnection"์ ํ์ํ์ง ์์๊ธฐ ๋๋ฌธ์ ๊ตฌํํ์ง ์์์ง๋ง ํธํ์ฑ์ ์ํด ๋ฉ์๋๊ฐ ์์ด์ผ ํ๋ค๋ ๋ฐ ๋์ํฉ๋๋ค.
๋ค๋ฅธ ์ฌ๋๋ค์ ์ดํด๋ณด๊ฒ ์ต๋๋ค. ์ฃ์กํฉ๋๋ค. ์๊ฐ์ด ์ข ๊ฑธ๋ ธ์ง๋ง ์ด์ ์ํฉ์ด ์ ๋ฆฌ๋๊ณ ์์ผ๋ฉฐ ๊ณง ํ์ธ/๊ตฌํํ ์์ ์
๋๋ค.
๋ค์๊ณผ ๊ฐ์ด ๋ก์ปฌ์ ์ค์นํ์ต๋๋ค.
"react-native-iap": "../react-native-iap"
"react-native-iap" ๋๋ ํ ๋ฆฌ๊ฐ ์๋ ๋์ ๋จ์ํ ๋ด ์ ์ฅ์์ ๋ณต์ ๋ณธ์ด ๋ฉ๋๋ค.
๊ฑฑ์ ๋ง!
๋ค, ๋ก์ปฌ ํ์ผ ์ฐธ์กฐ๊ฐ ์๋ํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ง๋ง ํ๋ก์ ํธ๋ฅผ ์ด์์ฑ ์๊ฒ ๋ง๋ค์ง๋ ๋ชปํ์ต๋๋ค.
๋ด ์์ ์ ํฌํฌ/๋ถ๊ธฐ๋ฅผ ์ฐธ์กฐํ๊ธฐ ์ํด ์ง๊ธ ์ฌ์ฉํ๊ณ ์๋ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ด ์ข ์์ฑ์ ์ ์ํ๋ ๊ฒ์ ๋๋ค.
"react-native-iap": "github:curiousdustin/react-native-iap.git#curious-amazon-iap-ts"
๊ทธ๋ฆฌ๊ณ ๋ด ์ง์ ์์ react-native-iap
์ package.json
main
์์ฑ์ $#$5 index.ts
๋์ .js
๋ก ๋ณ๊ฒฝํ์ต๋๋ค. ๋ํ .npmignore
์์ TypeScript ๊ด๋ จ ํญ๋ชฉ์ ์ ๊ฑฐํ์ต๋๋ค.
์ด๊ฒ์ ํ์ฌ ์๋ํฉ๋๋ค. ์ RN ์ค์ ์ด ์๋์ผ๋ก TS ๊ธฐ๋ฐ ๋ชจ๋์ ๊ตฌ์ถํ๊ธฐ ๋๋ฌธ์ธ ๊ฒ ๊ฐ์ต๋๋ค...
๋๋ฝ๋ ๊ฒ์ผ๋ก ๋ณด์ด๋ ๋ ๋ค๋ฅธ ์ค์ํ ๋ถ๋ถ์ ์ค๋ฅ ์ฒ๋ฆฌ์ ๋๋ค.
Amazon ๊ตฌํ์ Google ๋ฒ์ ์์์ ๊ฐ์ด ์ค๋ฅ ์ด๋ฒคํธ๋ฅผ ๋ด๋ณด๋ด๋ ์ฝ๋๋ฅผ ์คํํ์ง ์์ต๋๋ค.
sendEvent(reactContext, "purchase-error", error);
์ด๊ฒ์ purchaseErrorListener
๊ฐ ํธ์ถ๋์ง ์๋๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
์ ๋ช ํ. ์ข์ ์ง์ . ๊ฐ์ฌ ํด์.
์๋ ํ์ธ์, ์ต๊ทผ์ ์ด ๋ฌธ์ ์ ๋ํ ํ๋์ด ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์์ต๋๊น? ์๋๋ฉด ์ฌ์ ํ ์ปค๋ฎค๋ํฐ์ ๊ด์ฌ์ด ํ์ํ๊ฐ์? ๋ ์ด์ ํ๋์ด ๋ฐ์ํ์ง ์์ผ๋ฉด ์ด ๋ฌธ์ ๊ฐ ์ข ๋ฃ๋ ์ ์์ต๋๋ค. ์ด ๋ฌธ์ ์ "ํ ๋ก ์ฉ" ๋๋ "์ข์ ์ฒซ ๋ฒ์งธ ๋ฌธ์ "๋ก ๋ ์ด๋ธ์ ์ง์ ํ ์๋ ์์ต๋๋ค. ๊ทธ๋ฌ๋ฉด ์ด์ด ๋๊ฒ ์ต๋๋ค. ๊ทํ์ ๊ธฐ์ฌ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
์ถฉ๋!
์ด ํ๋ฌ๊ทธ์ธ์์๋ amazon์ ์ง์ํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ ๋ ์๋ ๊ฐฑ์ ๊ตฌ๋ ์ ์ํด @nochkin ์ด ๋ง๋ amazon์ ๊ตฌํ์ ์ฌ์ฉํด ์์ผ๋ฉฐ ์๋นํ ์์ ์ ์ ๋๋ค. ์ด ํฌํฌ๋ฅผ ๋ฆฌํฌ์งํ ๋ฆฌ์ ํตํฉํ๊ณ ๊ตฌํ์ ์ ์ง ๊ด๋ฆฌํ๋ ๋ ๋ง์ ๊ธฐ์ฌ์ ๊ธฐ๋ฐ์ ๊ฐ๋ ๊ฒ์ ๊ต์ฅํ ๊ฒ์ ๋๋ค!
๋์ค์ ์ด์ ๋ํ ๋ด์ค๊ฐ ๋์ค๊ฑฐ๋ ์์ด๋์ด๊ฐ ์ญ์ ๋ ์์ ์ ๋๊น?
๋๋ ๊ทธ๊ฒ์ด ๋จ์ด์ง ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ง ์๋๋ค. ์ฃผ์ ์ง์ฐ ์ง์ ์ ๋ช ๊ฐ์ง ๋๋ฝ๋ ๊ธฐ๋ฅ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค(๋ด ์ฌ์ฉ ์ฌ๋ก์์๋ ์ฌ์ํ์ง๋ง ๋ค๋ฅธ ์ฌ๋์๊ฒ๋ ์ค์ํ ์ ์์). ๋ด ์ฑ๋ ํ์ฌ ์ํ์ ๋ง์กฑํฉ๋๋ค.
ํผ์ฆ์ ๋๋จธ์ง ์กฐ๊ฐ์ ์ฌ์ ํ โโ๋ด ๋ ์ด๋์ ์๊ณ ๋๋ ๊ทธ ์์
์ ์์ํ์ต๋๋ค. ๋ถํํ๋ ์๋ฃ/ํ
์คํธ๋ ๋ค๋ฅธ ์ฐ์ ์์๋ก ์ธํด ์์๋ณด๋ค ์ค๋ ๊ฑธ๋ฆฝ๋๋ค.
์, ์ํฉ์ ์ดํดํฉ๋๋ค. ๊ทธ๋ฌ๋ฉด ์ด ์ํฉ์ ์ฃผ์ํ๊ฒ ์ต๋๋ค!
๋ต๋ณ ๊ฐ์ฌํฉ๋๋ค ๐คฃ ์กฐ๊ธ๋ง ๋ ์๊ฐ์ ๋ด์๊ธฐ ๋ฐ๋๋๋ค.
@nochkin @curiousdustin๋ ์ ๋ฉ์ง ์ํ์ ๋ฐํ์ผ๋ก ํ๋ณด(#1134)๋ฅผ ์งํํ์ต๋๋ค! ๐
ํ
์คํธ ์๋ฃ, ์ฐ๋ฆฌ ์ธก์์ ํ๋ฅญํ๊ฒ ์๋ํฉ๋๋ค! PR์ด ๋ณํฉ๋ ๋ react-native-iaphub ์ Amazon ์ง์์ ์ถ๊ฐํ ์์ ์
๋๋ค.
๊ธฐ๋ฅ์ ์ด์ง๋ง @nochkin ์ด ๋งํ ๊ฒ์ฒ๋ผ ์์ผ๋ก ์ฐ๋ฆฌ๊ฐ ํ ์ ์๋ ๋ช ๊ฐ์ง ๊ฐ์ ์ฌํญ์ด ์์ต๋๋ค.
์๋ ํ์ธ์, ์ต๊ทผ์ ์ด ๋ฌธ์ ์ ๋ํ ํ๋์ด ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์์ต๋๊น? ์๋๋ฉด ์ฌ์ ํ ์ปค๋ฎค๋ํฐ์ ๊ด์ฌ์ด ํ์ํ๊ฐ์? ๋ ์ด์ ํ๋์ด ๋ฐ์ํ์ง ์์ผ๋ฉด ์ด ๋ฌธ์ ๊ฐ ์ข ๋ฃ๋ ์ ์์ต๋๋ค. ์ด ๋ฌธ์ ์ "ํ ๋ก ์ฉ" ๋๋ "์ข์ ์ฒซ ๋ฒ์งธ ๋ฌธ์ "๋ก ๋ ์ด๋ธ์ ์ง์ ํ ์๋ ์์ต๋๋ค. ๊ทธ๋ฌ๋ฉด ์ด์ด ๋๊ฒ ์ต๋๋ค. ๊ทํ์ ๊ธฐ์ฌ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
ํด๊ฒฐ๋์์ผ๋ฉฐ ์ด์ 5.0.0 ๋ฆด๋ฆฌ์ค์ ์ผ๋ถ์
๋๋ค.
https://github.com/dooboolab/react-native-iap/releases/tag/5.0.0
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๊ณผ๊ฑฐ์ ์ด๋ฅผ ์ง์ํ๋ ์์ ์ด ์๋ ๊ฒ์ ๋ณด์์ง๋ง ๊ตฌ์์ผ๋ก ๋ณด์ด๋ฉฐ ํ์ฌ react-native-iap ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํจ๊ป ์ฌ์ฉํ ์ ์์ต๋๋ค.
https://github.com/dooboolab/react-native-iap/issues/370
๊ทธ๋์ ๋๋ https://github.com/nochkin/react-native-iap/tree/amazon-iap ์์ ๋ด ์์ ์ ํฌํฌ๋ฅผ ์์ํ์ต๋๋ค.
๋ด ์์ ์ ๊ฐ๋ฐ ํ๊ฒฝ์์ ์๋ํ๋ ๊ฒ ๊ฐ์ต๋๋ค. ๊ทธ๋ฌ๋ PR์ ์์ฑํ๊ธฐ ์ ์ ์ค์ ์ํ/๋ฒ ํ ํ ์คํฐ๊ฐ ํน์ ์ฃ์ง ์ผ์ด์ค๋ฅผ ๊ฒํ ํ๊ณ ์ ์ ํ๊ฒ ์ฐ๋งํ๋๋ก ํ๋ ๊ฒ์ด ์ข์ ๊ฒ์ ๋๋ค. ๋ด ์ฑ์ ๋ชจ๋ ๊ธฐ๋ฅ์ ์ฌ์ฉํ์ง ์์ ๊ฐ๋ฅ์ฑ์ด ๋งค์ฐ ๋๊ธฐ ๋๋ฌธ์ ๋๋ค.
๋๋ ๊ฐ๋ฅํ ํ ์๋์ react-native-iap API ์์ ๋จธ๋ฌผ๋ ค๊ณ ๋ ธ๋ ฅํ์ต๋๋ค. ์์ง ํ์ง ์์ ๋ช ๊ฐ์ง ๋ฐฉ๋ฒ์ด ์์ต๋๋ค(๋๊ตฐ๊ฐ ์ ๋๋ก ํ ์คํธํ ์ ์๋ ๋ฐฉ๋ฒ์ด ์์ผ๋ฉด ์ถ๊ฐํ ์ ์์ต๋๋ค).
๋ด ํฌํฌ์ ์ฃผ์ ๋์์ธ ๊ฒฐ์ ์ค ํ๋๋ Google๊ณผ Amazon์ ๊ฐ์งํ๋ ๋ฐฉ๋ฒ์ ๋๋ค. ์ฅ์น ๋ชจ๋ธ/์ ์กฐ์ ์ฒด๋ฅผ ๊ฐ์งํ๋ ๊ฒ์ ์ฌ์ฉ์๊ฐ Google Play๋ฅผ Kindle์ ์ค์นํ๊ณ Google์ ํตํด ์ฑ์ ๋ค์ด๋ก๋ํ ์ ์๊ธฐ ๋๋ฌธ์ ์ข์ ์ ๊ทผ ๋ฐฉ์์ด ์๋๋ผ๊ณ ์๊ฐํฉ๋๋ค(Play ๊ธฐ๋ฐ ์ฅ์น์ Amazon Appstore๋ฅผ ์ค์นํ ์ ์๋ ๊ฒฝ์ฐ ๊ทธ ๋ฐ๋). ์ด ๊ฒฝ์ฐ ํด๋น API๋ฅผ ํตํด IAP๋ฅผ ์ํํด์ผ ํฉ๋๋ค.
๋ด ํฌํฌ๋ ์ค์น ์์ค๋ฅผ ํ์ธํ๊ณ ๊ทธ์ ๋ฐ๋ผ ์๋ํฉ๋๋ค. dev ํ๊ฒฝ์์๋ ์ค์น ์์ค๊ฐ ์กด์ฌํ์ง ์์ผ๋ฏ๋ก ์ ๋๋ก ํ ์คํธํ ์ ์๋๋ก fallback์ ์ค์ ํ ์ ์์ต๋๋ค.
๋ด ํฌํฌ๊ฐ ์ ์คํธ๋ฆผ ๋ฆฌํฌ์งํ ๋ฆฌ์ ๋ณํฉ๋๋ ๋ฐ ๊ด์ฌ์ด ์๋ ๊ฒฝ์ฐ ์ด๋ฅผ ๋ฌธ์ํํ ๊ฒ์ ๋๋ค.