React-native-iap: ๋ณด๋ฅ˜์ค‘์ธ ๊ตฌ๋งค๋ฅผ ์ˆ˜๋™์œผ๋กœ ์ทจ์†Œํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

์— ๋งŒ๋“  2019๋…„ 07์›” 29์ผ  ยท  8์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: dooboolab/react-native-iap

react-native-iap ๋ฒ„์ „

3.3.7

๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ๋ฒ„์ „

0.59.8

์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ ํ”Œ๋žซํผ (IOS ๋˜๋Š” Android ๋˜๋Š” ๋‘˜ ๋‹ค?)

๊ธฐ๊ณ„์  ์ธ์กฐ ์ธ๊ฐ„

์˜ˆ์ƒ๋˜๋Š” ํ–‰๋™

๊ตฌ๋งค๋ฅผ ์š”์ฒญํ•  ๋•Œ ์„œ๋ฒ„์—์„œ ์˜์ˆ˜์ฆ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ํ™•์ธ์— ์‹คํŒจํ•˜๋ฉด ํ™•์ธ์„ ํ˜ธ์ถœํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ์†Œ๋น„ ๊ตฌ๋งค๋ฅผ ํ˜ธ์ถœํ•˜์ง€ ์•Š์œผ๋ฉด ๋งค๋ฒˆ ์‹คํ–‰๋˜๋Š” purchaseUpdatedListener ํ•จ์ˆ˜ ๋Œ€์‹  ์ˆ˜๋™์œผ๋กœ ๊ตฌ๋งค๋ฅผ ์ทจ์†Œ ํ•  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ์›ํ•ฉ๋‹ˆ๋‹ค.

์‹ค์ œ ํ–‰๋™

๊ตฌ๋งค๊ฐ€ ์™„๋ฃŒ๋˜์ง€ ์•Š์œผ๋ฉด ๋ณด๋ฅ˜์ค‘์ธ ๊ตฌ๋งค๋ฅผ ์ทจ์†Œ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์•ˆ๋“œ๋กœ์ด๋“œ์—์„œ๋Š” ์ž๋™์œผ๋กœ ์ทจ์†Œ ๋  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ ค์•ผํ•ฉ๋‹ˆ๋‹ค.

ํ…Œ์ŠคํŠธ ๋œ ํ™˜๊ฒฝ (์—๋ฎฌ๋ ˆ์ดํ„ฐ? ์‹ค์ œ ์žฅ์น˜?)

์‹ค์ œ ์žฅ์น˜

ํ–‰๋™์„ ์žฌํ˜„ํ•˜๋Š” ๋‹จ๊ณ„

๊ตฌ๋งค๋ฅผํ•˜๊ณ  ์Šน์ธ ๊ตฌ๋งค ๋˜๋Š” ์†Œ๋น„ ๊ตฌ๋งค๋ฅผ ํ˜ธ์ถœํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

1๏ธโƒฃ good first issue โ“ question ๐Ÿ™ help wanted ๐Ÿค– android

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

@hyochan , finishTransactionIOS ๋กœ ์ „ํ™”๋ฅผ ๊ฑธ์–ด ์™„๋ฃŒ๋˜์ง€ ์•Š์€ ๊ตฌ๋งค๋ฅผ ์ทจ์†Œํ•˜๊ณ  ๊ตฌ๋งค ๋‚ด์—ญ์—์„œ ํ•ด๋‹น ๊ตฌ๋งค๋ฅผ ์ œ๊ฑฐํ•˜๋Š” iOS์™€ ๊ฐ™์€ ๊ธฐ๋Šฅ์ด ์žˆ๋‚˜์š”? ๊ตฌ๋…์ด ์•„์ง ํ™œ์„ฑํ™”๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜์žˆ๋Š” ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์ด ์žˆ๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ์ง€๊ธˆ ํ•  ์ผ์€ ์˜์ˆ˜์ฆ ๊ธฐ๋ก์—์„œ ๋งˆ์ง€๋ง‰ ๊ฑฐ๋ž˜์˜ ๋งŒ๋ฃŒ์ผ์„ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ตฌ๋งค๊ฐ€ ์™„๋ฃŒ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ๊ตฌ๋งค ๋‚ด์—ญ์— ๊ธฐ๋ก๋˜๊ณ  ์‹ถ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์•ˆํƒ€๊น๊ฒŒ๋„ ์ง€๊ธˆ์€ ๋ฐ”๋กœ ๊ทธ ์ผ์ด ์ผ์–ด๋‚˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  Android์™€ ๋‹ฌ๋ฆฌ ์™„๋ฃŒ๋˜์ง€ ์•Š์€ ๊ตฌ๋งค๋Š” ์ž ์‹œ ํ›„์— ์ทจ์†Œ๋˜์ง€ ์•Š์œผ๋ฉฐ purchaseUpdateListener ์— ์˜ํ•ด ํŠธ๋ฆฌ๊ฑฐ๋˜๋Š” ๊ฒƒ์„ ๋ฉˆ์ถ”์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ iOS์™€ ์•ˆ๋“œ๋กœ์ด๋“œ์—์„œ๋„ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ ์™„๋ฃŒ๋˜์ง€ ์•Š์€ ๊ตฌ๋งค๋ฅผ ์ทจ์†Œํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ํŠนํžˆ iOS์—์„œ๋Š” ๊ตฌ๋…์˜ ์œ ํšจ์„ฑ์„ ํ™•์ธํ•˜๋Š” ๋” ํšจ์œจ์ ์ธ ๋ฐฉ๋ฒ•์ด ์—†๋‹ค๋ฉด ๊ตฌ๋งค ๋‚ด์—ญ์ด ๊ธฐ๋ก๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  8 ๋Œ“๊ธ€

์‹คํŒจํ•œ ๊ฒฐ๊ณผ๋ผ๋„ ์™„๋ฃŒ๋œ ํŠธ๋žœ์žญ์…˜์— ๋Œ€ํ•ด acknowledgePurchase ๋ฐ consumePurchase ๋ฅผ ํ˜ธ์ถœํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์ž์‹ ์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ณด์ƒ์„์ฃผ์ง€ ์•Š๋Š” ๋“ฑ ๋…ผ๋ฆฌ๋ฅผ ์ง„ํ–‰ํ• ๋ฟ์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ ์•ฑ์— ๋‚จ์•„ ์žˆ์ง€ ์•Š๋„๋ก consmePurchase ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

@hyochan ๊ทธ๋ ‡๊ฒŒํ•˜๋ฉด ๊ฒฐ์ œ๊ฐ€ ์Šน์ธ๋˜๊ณ  ์‚ฌ์šฉ์ž ๊ณ„์ •์— ๋ณด์ƒ์—†์ด ๋Œ€๊ธˆ์ด ์ฒญ๊ตฌ๋ฉ๋‹ˆ๋‹ค.

@tmjordan ์˜ค, ๋ฌด์Šจ ๋œป์ธ์ง€

@hyochan ์€ ์‚ฌ์šฉ์ž๊ฐ€ ์ œํ’ˆ์„ ๊ตฌ๋งคํ•  ๋•Œ ์˜์ˆ˜์ฆ์„ ํ™•์ธํ•˜๊ณ  ๊ตฌ๋งค ์ƒํƒœ๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ์ฃผ์–ด์ง„ ์˜์ˆ˜์ฆ์„ Google ์„œ๋ฒ„๋กœ ์ „์†กํ•ฉ๋‹ˆ๋‹ค (๊ฒฐ์ œ๊ฐ€ ์Šน์ธ๋˜์—ˆ๊ฑฐ๋‚˜ ๋ณด๋ฅ˜ ์ค‘ ๋˜๋Š” ์ทจ์†Œ ๋œ ๊ฒฝ์šฐ).
ํ™•์ธ ํ”„๋กœ์„ธ์Šค ์ค‘์— Google ์„œ๋ฒ„ (์˜ˆ : ๋‚ด ๋ฐฑ์—”๋“œ)์—์„œ ์ „์†ก๋˜์ง€ ์•Š๋Š” ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ ์˜์ˆ˜์ฆ์„ ํ™•์ธํ•  ์ˆ˜ ์—†์œผ๋ฉฐ Google์—์„œ ์ทจ์†Œ ํ•  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๋Œ€์‹  ์ˆ˜๋™์œผ๋กœ ๊ตฌ๋งค๋ฅผ ์ทจ์†Œํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค ( ๊ทธ ์‹œ๊ฐ„ ๋™์•ˆ ๋‚˜๋Š” ๋‹ค๋ฅธ ๊ตฌ๋งค๋ฅผ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค) ๋‚ด๊ฐ€ aknowledgepurchase์— ์ „ํ™”ํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ์†Œ๋น„ ๊ตฌ๋งค๋ฅผํ•˜์ง€ ์•Š์œผ๋ฉด.
๊ฐ€๋Šฅํ•œ์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. Google์—์„œ ๊ตฌ๋งค ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹ ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์•„์ง ํ™•์ธ ๋˜๋Š” ์†Œ๋น„ํ•˜์ง€ ์•Š์€ ๊ตฌ๋งค๋ฅผ ์ˆ˜๋™์œผ๋กœ ์ทจ์†Œ ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ ๊ฒฐ์ œ๊ฐ€ ์Šน์ธ๋˜๋ฉด ์‚ฌ์šฉ์ž์—๊ฒŒ ํ™˜๋ถˆ๋ฉ๋‹ˆ๋‹ค.
Google์— ์˜ํ•ด ์ทจ์†Œ ๋  ๋•Œ๊นŒ์ง€ ๋งค๋ฒˆ ๋™์ผํ•œ ๊ตฌ๋งค๊ฐ€ ํŠธ๋ฆฌ๊ฑฐ๋˜๋Š” ๋Œ€์‹ .

@tmjordan ์ข‹์€ ๊ด€์ ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ๋งค์šฐ ํ•ฉ๋ฆฌ์ ์œผ๋กœ ๋“ค๋ฆฌ์ง€๋งŒ pending ๊ตฌ๋งค๊ฐ€ ์‹ค์ œ๋กœ ์ฒญ๊ตฌ๋˜๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. pending ๊ตฌ๋งค๋Š” acknowledged ๋•Œ๋„ ์ฒญ๊ตฌ๋˜์ง€ ์•Š์•„์•ผํ•˜๋ฉฐ ์˜คํžˆ๋ ค ์ œ๊ฑฐ๋˜์–ด์•ผํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๊ฒฝํ—˜์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์„ ์‚ดํŽด๋ณผ ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

@hyochan , finishTransactionIOS ๋กœ ์ „ํ™”๋ฅผ ๊ฑธ์–ด ์™„๋ฃŒ๋˜์ง€ ์•Š์€ ๊ตฌ๋งค๋ฅผ ์ทจ์†Œํ•˜๊ณ  ๊ตฌ๋งค ๋‚ด์—ญ์—์„œ ํ•ด๋‹น ๊ตฌ๋งค๋ฅผ ์ œ๊ฑฐํ•˜๋Š” iOS์™€ ๊ฐ™์€ ๊ธฐ๋Šฅ์ด ์žˆ๋‚˜์š”? ๊ตฌ๋…์ด ์•„์ง ํ™œ์„ฑํ™”๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜์žˆ๋Š” ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์ด ์žˆ๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ์ง€๊ธˆ ํ•  ์ผ์€ ์˜์ˆ˜์ฆ ๊ธฐ๋ก์—์„œ ๋งˆ์ง€๋ง‰ ๊ฑฐ๋ž˜์˜ ๋งŒ๋ฃŒ์ผ์„ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ตฌ๋งค๊ฐ€ ์™„๋ฃŒ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ๊ตฌ๋งค ๋‚ด์—ญ์— ๊ธฐ๋ก๋˜๊ณ  ์‹ถ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์•ˆํƒ€๊น๊ฒŒ๋„ ์ง€๊ธˆ์€ ๋ฐ”๋กœ ๊ทธ ์ผ์ด ์ผ์–ด๋‚˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  Android์™€ ๋‹ฌ๋ฆฌ ์™„๋ฃŒ๋˜์ง€ ์•Š์€ ๊ตฌ๋งค๋Š” ์ž ์‹œ ํ›„์— ์ทจ์†Œ๋˜์ง€ ์•Š์œผ๋ฉฐ purchaseUpdateListener ์— ์˜ํ•ด ํŠธ๋ฆฌ๊ฑฐ๋˜๋Š” ๊ฒƒ์„ ๋ฉˆ์ถ”์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ iOS์™€ ์•ˆ๋“œ๋กœ์ด๋“œ์—์„œ๋„ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ ์™„๋ฃŒ๋˜์ง€ ์•Š์€ ๊ตฌ๋งค๋ฅผ ์ทจ์†Œํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ํŠนํžˆ iOS์—์„œ๋Š” ๊ตฌ๋…์˜ ์œ ํšจ์„ฑ์„ ํ™•์ธํ•˜๋Š” ๋” ํšจ์œจ์ ์ธ ๋ฐฉ๋ฒ•์ด ์—†๋‹ค๋ฉด ๊ตฌ๋งค ๋‚ด์—ญ์ด ๊ธฐ๋ก๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋น„์Šทํ•œ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค

  1. ์‚ฌ์šฉ์ž (์‹œ๊ฐ„์— ๋ฏผ๊ฐํ•œ) ์ œํ’ˆ ๊ตฌ๋งค๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ์ด ์ œํ’ˆ์€ ์ฆ‰์‹œ ๋ฐ˜ํ™˜๋˜์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.
  2. ์„œ๋ฒ„๊ฐ€ ์ œํ’ˆ์„ ๋ฐ˜ํ™˜ํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. ์žฌ ์‹œ๋„ํ•˜์—ฌ ๋ฐ˜ํ’ˆ์ด ๋Šฆ์–ด ์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  3. purchaseUpdateListener ๋Š” finishTransactionIOS๊ฐ€ ํ˜ธ์ถœ ๋  ๋•Œ๊นŒ์ง€ ์—ฌ๋Ÿฌ ๋ฒˆ ํŠธ๋ฆฌ๊ฑฐ๋˜์ง€๋งŒ ์ด๋Š” ๋ฐ”๋žŒ์งํ•œ ๊ฒฐ๊ณผ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ์ด ๋‹จ๊ณ„์—์„œ ๊ฑฐ๋ž˜๋ฅผ ์ทจ์†Œํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

๊ฑฐ๋ž˜๋ฅผ ์ทจ์†Œํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ?

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰