React-native-iap: ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. SKU๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋จผ์ € getItems๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ์ œํ’ˆ์„ ๊ฐ€์ ธ ์˜ค์‹ญ์‹œ์˜ค.

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

3.0.0์˜ react-native-iap

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

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

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

์„ฑ๊ณต์ ์ธ ๊ตฌ๋… ํ›„ ์˜์ˆ˜์ฆ ๋ฐ›๊ธฐ

์‹ค์ œ ํ–‰๋™

๊ตฌ๋… ์˜ค๋ฅ˜
"sku๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋จผ์ € getItems๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ์ œํ’ˆ์„ ๊ฐ€์ ธ ์˜ค์‹ญ์‹œ์˜ค."

ํ…Œ์ŠคํŠธ ๋œ ํ™˜๊ฒฝ (์‹ค์ œ ์žฅ์น˜)

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

const itemSkus = Platform.select ({
ios : [
''
],
android : [
'sub_1'
]
});

1 ๋‹จ๊ณ„:
async componentDidMount () {
const msg = await RNIap.initConnection ();
const ํ•ญ๋ชฉ = ๋Œ€๊ธฐ RNIap.getProducts (itemSkus);
RNIap.getProducts (items) .then ((์ œํ’ˆ) => {
}). catch ((์˜ค๋ฅ˜) => {
console.log ( "inApp getProducts ์˜ค๋ฅ˜", error.message);
})
}

2 ๋‹จ๊ณ„ : ๊ตฌ๋… ์ „ํ™”
_subscribe () {

  RNIap.buySubscription('sub_1').then(purchase => {
    console.log("inApp Subscription transactionReceipt ",purchase.transactionReceipt);
   }).catch((error) => {
    console.log("inApp Subscription error",error.message);
   })
}

"SKU๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋จผ์ € getItems๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ์ œํ’ˆ์„ ๊ฐ€์ ธ ์˜ค์‹ญ์‹œ์˜ค."๋ผ๋Š” ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ™ help wanted ๐Ÿค– android

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

๊ตฌ๋…์„ ๊ตฌ๋งคํ•˜๊ณ  ์žˆ์ง€๋งŒ getProducts ์žˆ์Šต๋‹ˆ๋‹ค. ๋Œ€์‹  getSubscription ๋ฅผ ์‚ฌ์šฉํ•ด๋ณด์„ธ์š”.

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

์—ฌ๊ธฐ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€

๊ตฌ๋…์„ ๊ตฌ๋งคํ•˜๊ณ  ์žˆ์ง€๋งŒ getProducts ์žˆ์Šต๋‹ˆ๋‹ค. ๋Œ€์‹  getSubscription ๋ฅผ ์‚ฌ์šฉํ•ด๋ณด์„ธ์š”.

getSubscriptions๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋„ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์—๋„ ๋ฌธ์ œ๊ฐ€์žˆ๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์–ด๋–ค ์ƒ๊ฐ? ํšจ์ฐฌ

๊ทธ๋ฆฌ๊ณ ์ด ํŒจํ‚ค์ง€ (ํŠนํžˆ ์• ํ”Œ ์ธ์•ฑ)์— ๋Œ€ํ•ด ์‚ฌ์šฉํ•  ์ˆ˜์žˆ๋Š” ์™„์ „ํ•œ ๊ตฌํ˜„์ด ์žˆ๋‹ค๋ฉด ๊ทธ์— ๋Œ€ํ•œ ๋งํฌ๋ฅผ ์ œ๊ณต ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ๋‹ค๋ฆฌ๊ณ  RNIap.initConnection ();
const ์ œํ’ˆ = ๋Œ€๊ธฐ RNIap.getSubscriptions (itemSkus);
const subs = ๊ธฐ๋‹ค๋ฆฌ๊ณ  RNIap.getAvailablePurchases ();

์œ„์˜ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
ํ•˜์ง€๋งŒ ๊ตฌ๋… ํ•ญ๋ชฉ์— ๊ฐ€๋ฉด ํ•ญ๋ชฉ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค๋Š” ์˜ค๋ฅ˜๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ๊ตฌ๋… ํ•ญ๋ชฉ์— ๋Œ€ํ•œ ์•„๋ž˜ ์ฝ”๋“œ๋ฅผ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.

RNIap.requestSubscription (itemSkus [0]). then ((๊ฒฐ๊ณผ) => {
console.log ( '๊ฒฐ๊ณผ ์š”์ฒญ', ๊ฒฐ๊ณผ);
}). catch ((e) => {
console.log ( '์˜ค๋ฅ˜ ์š”์ฒญ', e);
});

๋‚˜๋Š” ๋˜ํ•œ ๋‚ด๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” itemSkus๋ฅผ ๊ต์ฐจ ๊ฒ€์ฆํ–ˆ์Šต๋‹ˆ๋‹ค.

getSubscriptions ์—์„œ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€๋งŒ Android์—์„œ๋งŒ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ํ•จ์ˆ˜๊ฐ€ ๊ฐ€๋” ํ˜ธ์ถœ๋˜์ง€ ์•Š๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค.

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