react-native-iap": "^2.3.17
iOS
finishTransaction
์ด ํธ์ถ ๋ ๋๋ง ๊ฒฐ์ ๊ฐ ์ด๋ฃจ์ด์ ธ์ผํฉ๋๋ค.
์ ์ฉ ์นด๋์ ๊ฐ์ ๊ฒฐ์ ์๋จ์ด ์ถ๊ฐ ๋ ํ ๊ธ์ก์ด ๊ฐ์ง๋ฉ๋๋ค.
๊ทธ๋ฌ๋ RNIap.buyProductWithoutFinishTransaction(sku)
๋ฐฉ๋ฒ์ ๋๋ฌํ์ต๋๋ค.
์ค์ ๊ธฐ๊ธฐ-iPhone 6s
ComponentDidMount(){
await RNIap.initConnection();
await RNIap.consumeAllItems();
const prod = await RNIap.getProducts(product);
}
async componentWillUnmount() {
RNIap.endConnection()
}
buyProduct(sku){
await RNIap.clearTransaction();
RNIap.buyProductWithoutFinishTransaction(sku)
.then(purchase => {
// not reached
if(calltoserverisSuccess){
RNIap.finishTransaction();
}
})
.catch(error => {
// code enters catch case if ever
}}
์ฃ์กํ์ง๋ง ์ฝ๋์ ๊ตฌ๋ฌธ ์ค๋ฅ๊ฐ ๋ง์ ๊ฒ ๊ฐ์ต๋๋ค. ๋ฆฌํฌ์งํ ๋ฆฌ์ ์์ ํ๋ก์ ํธ๋ฅผ ์ฐธ์กฐํ๊ณ ๋จผ์ ์ฝ๋์ ๋น๊ตํ์ญ์์ค.
๋ฟก ๋นต๋จ
๋ต์ฅ์ ๋ณด๋ด ์ฃผ์
์ ๊ฐ์ฌํฉ๋๋ค. ์ฌ๊ธฐ์ ๊ฒ์ ๋ ์ฝ๋๋ ๋จ์ง ์์ผ ๋ฟ์ด๋ฉฐ ์ค์ ์ ํ๋ฆฌ์ผ์ด์
์์ ์ฌ์ฉ๋๋ ์ ํํ ์ฝ๋๋ ์๋๋๋ค.
๋๋ ๋ฌธ์ ๊ฐ ๋ฌด์์ธ์ง ์ค๋ช
ํ๋ ค๊ณ ๋
ธ๋ ฅํ ๊ฒ์
๋๋ค
RNIap.initConnection();
๋ฅผ ํธ์ถํ์ฌ ์์๋ ์ฐ๊ฒฐRNIap.getProducts(product)
ํธ์ถํ์ฌ ์ ํ์ ๊ฐ์ ธ ์์ ์ํ์ ์ ์ฅํฉ๋๋ค.์ฌ์ฉ์๊ฐ ๊ตฌ๋งค ๋ฒํผ์ ํด๋ฆญ ํ ๋
RNIap.clearTransaction();
๋ ๋ณด๋ฅ์ค์ธ ํธ๋์ญ์
์ด ๋จ์ ์์ง ์์์ง ํ์ธํ๊ธฐ ์ํด ํธ์ถ๋ฉ๋๋ค.RNIap.buyProductWithoutFinishTransaction(sku)
๋ ์ฑ๊ณตํ ๊ฒฝ์ฐ ํธ์ถ๋ฉ๋๋ค. ์๋ฒ๊ฐ ์ฑ๊ณต ์ฌ๋ก๋ฅผ true๋ก ์ ๊ณตํ๋ฉด ์ ํ๋ฆฌ์ผ์ด์
์๋ฒ์ ๋ํ ํธ์ถ์ด ํธ๋ฆฌ๊ฑฐ๋๊ณ ์ง๋ถ์ ์๋ฃํ๊ธฐ ์ํด RNIap.finishTransaction();
๊ฐ ํธ์ถ๋ฉ๋๋ค.componentWillUnmount ()
RNIap.endConnection()
.์ด ํ๋ก์ธ์ค๋ ์ฌ์ฉ์๊ฐ ์ด๋ฏธ ๊ฒฐ์ ์๋จ์ ์ถ๊ฐ ํ ๊ฒฝ์ฐ ์ ์์ ์ผ๋ก ์๋ํฉ๋๋ค. ์ฌ์ฉ์๊ฐ ๊ฒฐ์ ์๋จ์ ์ถ๊ฐํ์ง ์์ ๊ฒฝ์ฐ ๊ฒฐ์ ์๋จ ํ์ด์ง๋ฅผ ์ถ๊ฐํด์ผํ๋ฉฐ RNIap.finishTransaction();
๋๋ฌํ๊ธฐ ์ ์ ๊ธ์ก์ด ์ฒญ๊ตฌ๋ฉ๋๋ค.
์ธ๋ถ ์ฌํญ ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ์ด์ ๋ฌธ์ ๊ฐ ๋ช ํ ํด ๋ณด์ ๋๋ค. cc @JJMoon
์ซ๋ผ๋ฆฌ
@ zohaibahmed-22์ด ์๋ ๋ฐ์ค ํ ์คํธ ์ผ์ด์ค์ ๋๊น?
@JJMoon ์๋์, ์ค์ ํ๊ฒฝ ์ฌ๋ก์ ๋๋ค.
์ฌ์ฉ์๊ฐ ๋ก๊ทธ ์์ ์ํ์ด๊ฑฐ๋ ์ ์ฉ ์นด๋ ์ ๋ณด๊ฐ ์์ ๋์ด ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค๋ ๊ฒ์ ์ดํดํฉ๋๋ค.
๋ฐฉ๋ฒ์ด ์ ๋๋ก ์๋ํ๋ฉด์ด ์ค๋ฅ์ ์์ธ์ ๋ค๋ฅธ ๊ณณ์ ์์ต๋๋ค.
์ด ์์
์ ์ค๋นํด์ผ ์ฑ, viewDidDisappear ๋ฑ์ด ์ข
๋ฃ๋ฉ๋๋ค.
์๋ ๋ฐ์ค ๋ชจ๋์์์ด ์ฆ์์ ๋ค์ ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก ๋ฐ์ํฉ๋๋ค.
์ ์๋ ๋ฐ์ค ๊ณ์ ์ ๋ง๋ค ๋ ์ฒซ ๋ฒ์งธ ๊ตฌ๋งค๊ฐ ์๋ํ์ง ์์ต๋๋ค.
๋ ๋ฒ์งธ๋ก ์ฅ์น๋ ๋ก๊ทธ์ธ ์ํ์ด๋ฉฐ ์ ์์ ์ผ๋ก ์๋ํฉ๋๋ค.
์ด ์ค๋ฅ์ ๋ํ ๋จ์๊ฐ ์์ต๋๋ค.
@dooboolab @JJMoon ์ด๊ฑฐ ํ ๋ฒ๋ณด์ธ์
https://forums.developer.apple.com/thread/6431
https://forums.developer.apple.com/thread/64489
@dooboolab ๊ณผ @JJMoon ๋ iOS ์ฝ๋๋ฅผ ์ดํด๋ณผ ๋ ๋ฌธ์ ๋ฅผ ๋ฐ๊ฒฌํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์์ updatedTransactions์ ๋ฐฉ๋ฒ ์ฐ๋ฆฌ๋์ ์ค๋ฅ ๋ฉ์์ง๊ฐ ๋ํ๋ ๋ SKPaymentTransactionStateDeferred
๋๋ SKPaymentTransactionStateFailed
์ฐ๋ฆฌ๊ฐ ์๊ฐํ์ง ์์ต๋๋ค finishTransaction
.
๋๋ถ๋ถ์ ๊ฒฝ์ฐ SKPaymentTransactionStateFailed
๊ฒฐ๊ณผ ๋ค์๋ ์์ ์ค๋ ๋ 6431 ์์ ์ธ๊ธ ํ๋๋ก SKPaymentTransactionStatePurchased
๊ฐ์ต๋๋ค. Objective-C ์ฝ๋์ ๋ํด ์ ๋ชจ๋ฅด๊ฒ ์ผ๋ฏ๋ก ์คํจ์ ํธ๋์ญ์
์ ์ง์ฐ๋ ์ง ์น์ ํ๊ฒ ํ์ธํ๊ณ ํ์ธํ์ญ์์ค.
@anandwahed ๋์ํฉ๋๋ค. ๊ทธ๊ฒ์ ๋ด ์๋ชป์ด์ผ. ๊ทธ ์ฃ์กํฉ๋๋ค.
Apple์ ์ค๋ ๋๋ฅผ ์ดํด๋ณด๊ณ ๋ฌธ์ ๋ฅผ ์ฒ๋ฆฌํ๊ฒ ์ต๋๋ค.
@anandwahed ์คํจํ์ ๋ finish transaction
์ฌ๋ฐ๋ฅธ ๋ฐฉ๋ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ด ์ค๋ ๋๋ฅผ ์ฐพ์๋ณด์ธ์. https://stackoverflow.com/questions/11008636/inapp-purchase-skpaymentqueue-finish-transaction-doesnt-work
์คํจ์ ์์์ฆ์ด ์์ด ๊ตฌ๋งค ์ํ์ ์ ์ฉํ์ง ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ง์ง๋ง ๊ฑฐ๋๊ฐ ํญ์ '๊ตฌ๋งค'๋ฅผ ์๋ฏธํ๋ ๊ฒ์ ์๋๋๋ค.
ํํธ ์ค๋ ๋ 6431์ ์กฐ์ฌํ๊ฒ ์ต๋๋ค.
๋ฐฉ๊ธ ์ค๋ ๋ 6431์ ์ฝ์์ต๋๋ค (https://forums.developer.apple.com/thread/6431#14562).
๊ฒฐ๋ก . 2015 ๋
์ดํ๋ก ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์ง ์์์ต๋๋ค. ์์ฐ ..
์ด '์์ ํคํธ ํ๋ฆ'ํจ๊ณผ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์๋ ๋ ๊ฐ์ง๊ฐ ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ ๊ฐ์ง๋ฅผ ๋ฐฐ์ ์ต๋๋ค.
A. ์คํจํ๋ฉด finishTransaction
์ํด์ผํฉ๋๋ค. (์ต์
์ ์ ๋ฌด์ ๊ด๊ณ์์ด ํญ์)
B. Storekit ํ๋ฆ์ ์คํจ์ ์ฑ๊ณต์ ๋ชจ๋๋ฐ์ต๋๋ค. (๊ทธ๊ฒ์ ๋์)
์ด ์ค๋ ๋๋ฅผ ์ฝ๊ณ ์ด ๋ฌธ์ ๋ก ๋์๊ฐ๋ ๊ฒ์ด ์ข์ต๋๋ค.
์ด๋ ์ชฝ์ ์ ํ ํ๋๋ (1 ๋๋ 2)๋ ์ค์ค๋ก ๊ฒฐ์ ํฉ๋๋ค.
์คํจ ์๋ต์ ์ํด ์ฝ๋ฐฑ์ด ํ์ํ ์ ์์ต๋๋ค.
@JJMoon ์ ์ฐ๋ฆฌ๊ฐ buyProductWithoutFinishTransaction์ ์ฌ์ฉํด์๋ ์๋๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๊น?
@ maxs15 ๊ทธ๋ฐ ๋ป์ด ์๋๋๋ค. ํผ๋์ค๋ฌ์์ ์ฃ์กํฉ๋๋ค.
StoreKit ํ๋ฆ์ ๋ชจ๋ ๊ตฌ๋งค์์ ๋ฐ์ํ ์ ์์ต๋๋ค. ์ด ๋ชจ๋์ด ์๋๋ผ iOS ๋ฌธ์ ์
๋๋ค.
์ง๊ธ์ ๋๋ ๋จ์๊ฐ ์๋ค. ์ด๊ฒ์ ๋ชจ๋ ๊ธฐ๋ณธ iOS ์ฑ์์ ๋ฐ์ํฉ๋๋ค. ๊ถ๋ฆฌ?
์ฐ๋ฆฌ๋ ์์ ์๊ฐ์ ๋ ๋ง์ด ๋ฐ๊ตด ํ ๊ฒ์
๋๋ค.
์ค๋์ด ๋ฌธ์ ๋ฅผ ์์ฑํ๊ธฐ ๋๋ฌธ์์ด ๋ฌธ์ ๋ฅผ ๋๋ฒ๊น
ํ๋ ค๊ณ ํ์ต๋๋ค. ์ง๋ถ finishTransanction
๋ฐ ์๋ฃ๋์์ง๋ง payMethod๊ฐ ๋ณ๊ฒฝ๋์์ ๋ callback
๋ฐ์ง ๋ชปํ์ต๋๋ค. console.log
์์ฑ์ ๋๋ฒ๊ทธํ๋ ค๊ณ ํ์ง๋ง dev
ํ๊ฒฝ์์ ์ค์ ์ฒญ๊ตฌ๋ฅผ ํ
์คํธ ํ ์ ์์ต๋๋ค. ๋๊ตฌ๋ ์ง์ด ํ๋ก์ธ์ค๋ฅผ ๋๋ฒ๊น
ํ๋ ๋ฐฉ๋ฒ์ ์ ์ํ์ฌ debug
real purchase
์ด๊ฒ์ ํ ์ ์์ต๋๊น? sandbox
๋ชจ๋์์ ์ฌ์ฉํด์ผํฉ๋๊น? ์๋ ๋ฐ์ค์์ ์๋ฒฝํ๊ฒ ์๋ํ๋ฏ๋ก ์ด๊ฒ์ ๋๋ฒ๊น
ํ๋ ๋ฐฉ๋ฒ์ ๋ชจ๋ฆ
๋๋ค. ์ด๊ฒ์ ๋งค์ฐ ๊บผ๋ คํฉ๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๊ฒ์ด ๋งค์ฐ ์ค์ํ๋ค๊ณ ์๊ฐํ๋ฏ๋ก ๋ช ๊ฐ์ง ์์ด๋์ด๋ฅผ ์์ง ํด ๋ณด๊ฒ ์ต๋๋ค.
์๋ ๋ฐ์ค ์ฌ์ฉ์๊ฐ ์๋ ์ฌ์ฉ์๋ก ๊ตฌ๋งค๋ฅผ ์๋ ํ ๋ ํญ์ ์ด ์ค๋ฅ๊ฐ ๋ฐ์ ํฉ๋๋ค.
@hyochan ์ค์ ์๋ฒ (๊ทํ์)๋ฅผ ์ฐ๊ฒฐํ๋ฉด ๋๋ฒ๊ทธ ๋ชจ๋์ด๋ ๋ฆด๋ฆฌ์ค ๋ชจ๋์ด๋ ์๊ด ์์ต๋๋ค. ๋ ๊ฐ์ง ์ต์ ์ด ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
@JJMoon ๊ทธ๋, ๋๋ ์ด๋ฏธ ๊ทธ๊ฒ์ ์์ ๋์ง๋ง ์ฌ์ ํ ios์์ ๋ผ์ด๋ธ ๊ตฌ๋งค ํ ์คํธ๋ฅผ ํ ์ ์์์ต๋๋ค. ์ด stackoverflow๊ฐ ์ฌ์ค์ ๋๊น? ๊ทธ๋ ๋ค๋ฉด์ด ๋ฌธ์ ๋ฅผ ์ด๋ป๊ฒ ํด๊ฒฐํ ์ ์์ต๋๊น? ๋ผ์ด๋ธ ๊ตฌ๋งค๋ฅผ ํ ์คํธํด์ผํฉ๋๋ค.
์ด ๋ฌธ์ ์ ์ง๋ฉด ํ ์ฌ๋์ ๋๊ตฌ๋์ด ๋ฌธ์ ์ ์ง๋ฉด ํ ์ ์๋ค๊ณ ํ์ ํฉ๋๋ค. ๋ฌธ์ ์ ๋ชฉ์ ์ค๋ช
๋ in-app purchase fail when payment method added live
. ์ด๊ฒ์ ์ด๋ป๊ฒ ๋๋ฒ๊น
ํ ์ ์์ต๋๊น? @anandwahed ์ด ๋ฌธ์ ์ ๋ํด Apple์ ์ฐ๋ฝ ํ ์ ์ด ์์ต๋๊น?
@hyochan ์๋์, Apple ์ง์ํ์ ์ฐ๋ฝํ์ง ์์์ต๋๋ค.
apple
์ ๋ฌธ์ํด์ผํ๋ค๊ณ ์๊ฐํ๋๋ฐ sandbox
ํ๊ฒฝ์์ ์ฌํ ํ ์์๋ ๋ค๋ฅธ ํ
์คํธ ์ผ์ด์ค๊ฐ ์๋ค๋ ์ฌ์ค์ด ์ ๋ง ๋์ฐํด ๋ณด์
๋๋ค. ๋ฌธ์ ๋ฅผ ์ดํดํ๊ณ ์ถ์ ๋ถ๋ค์ ์ํด ํ๋ฉด์ ๋
นํํ๊ณ ์ฌ๊ธฐ ์์ ์์ต๋๋ค . @anandwahed Apple์ ๋ฌธ์ ํด ์ฃผ์๊ฒ ์ต๋๊น? ๊ทธ๋ค์ด ๊ทธ๋ ๊ฒ ์ง์ํ์ง ์๋๋ค๋ ๊ฒ์ ์๊ณ ์๊ธฐ ๋๋ฌธ์ ๋ ๋ง์ ์ฌ๋๋ค์ด ๊ทธ๋ค๊ณผ ์ ์ดํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ชจ์ฌ ๋ด
์๋ค.
์ค๋ ์ฐ๋ฆฌ๋ Apple๋ก๋ถํฐ ๋ต๋ณ ์ ๋ฐ์์ต๋๋ค. failure
์ดํ์ ์ฝ๋ฐฑ์ด ๋ค์ ๋ฐํ ๋ ์ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ # 348์์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ฐ๊ตฌํ๊ณ ์์ง๋ง ์ด๊ฒ์ด ๋งค์ฐ ๋ถ์พ ํ ์ ์์ต๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด 2.4.0-beta1
๋ก ๋ฆด๋ฆฌ์คํ์ต๋๋ค. PR
# 348์ด์ด ๋ฒ์ ์ ์ถ๊ฐ๋์์ผ๋ฉฐ์ด ๊ธฐ๋ฅ์ ๋ํ ์ถ๊ฐ ์ ๋ณด๋ ๋ณผ ์ ์์ต๋๋ค. ์ด๊ฒ์ ํ
์คํธ ์ค์
๋๋ค.
๋ผ์ด๋ธ ๊ตฌ๋งค์์ ์ด๊ฒ์ ํ ์คํธํ์ผ๋ฉฐ ์๋ํ๋ ๊ฒ ๊ฐ์ต๋๋ค. ๊ทธ๋ฌ๋ ์คํจ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ์๋ง ๋ฆฌ์ค๋๋ฅผ ์ถ๊ฐํด์ผํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ์ฑ๊ณต์ ์ธ ๊ฒฐ๊ณผ๋ก ๋ณต์ ๋ ์ ์์ต๋๋ค.
์ฌ๋ฌ๋ถ,์ด ๋ฌธ์ ์ ์๊ฐ์ ํฌ์ ํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค! ๐
ํ์ฌ ๋ฌธ์๋ addAdditionalSuccessPurchaseListenerIOS
์ฌ์ฉ์ ๋ํด ๋ ๋ช
ํํด์ผํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๊ฒ์ด ์ ๊ฐ 414 ๋ฒ์์ ๋ค๋ฃจ๋ ค๊ณ ํ ๊ฒ์
๋๋ค.
๊ทธ๋ฌ๋ ์ด๊ฒ์ API ๊ฐ์ ์ ์ฌ์ง๊ฐ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ์์ '์์ ํคํธ ํ๋ฆ'์ ๋ ์ ์์ฉ ํ ์์๋ API์ ๋ณ๊ฒฝ ์ฌํญ์ ๋ํด ํ ๋ก ํ ์ ์์ต๋๊น? ์๋ฅผ ๋ค์ด, RxJS๋ฅผ ์ฌ์ฉํ๋ ๊ฒ :
const observable = RNIap.buyProduct('com.example.coins100')
.subscribe(
purchase => console.log(purchase), // successful payment
err => console.log(err) // err.code and err.message are available
)
์๋๋ฉด iOS์ ๋ํ ์ถ๊ฐ ๊ตฌ๋ ์ ๋ ์ ์จ๊ธฐ๋ ๋ค๋ฅธ ๊ฒ์ด ์์ต๋๊น?
@Edgpaez ํ๋ฅญํ์ง๋ง android
์์ ์ํ๋๋ ๊ตฌ๋งค ๋์์ด ๋ณ๊ฒฝ๋ฉ๋๋ค. ๋ด๊ฐ ์กฐ์ฌ ํ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค version 3
์์์ด ๋ชจ๋์ 2019
.
์๋ ํ์ธ์ @hyochan , AFAICT, ํจํค์ง์ ๋ด๋ถ ๋์์ ๋ณ๊ฒฝํ ํ์๋ ์์ผ๋ฉฐ ๊ณต์ฉ ์ธํฐํ์ด์ค ๋ง ๋ณ๊ฒฝํ ์ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ promise๋ฅผ ํด๊ฒฐํ๋ buyItemByType ๋ฉ์๋๋ฅผ ์ ์งํ๊ณ index.js ์ Rx๋ฅผ ์ถ๊ฐ ํ ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด index.js์ ๋ค์๊ณผ ๊ฐ์ ๋ด์ฉ์ด ์์ต๋๋ค.
export const buyProduct = (sku) => Platform.select({
android: () => Observable.of(RNIapModule.buyItemByType(ANDROID_ITEM_TYPE_IAP, sku, null, 0)), // returns an observable that emits when the RNIapModule.buyItemByType promise resolves
ios: ... // ios would do the same but taking into account the usage of addAdditionalSuccessPurchaseListenerIOS
})();
๋ด ๋ชฉํ๋์ด ํน์ ๊ตฌํ์ด ์๋๋ผ '์์ ํคํธ ํ๋ฆ'์ ๋ํ ์ธ๋ถ ์ ๋ณด๋ฅผ ์จ๊ธฐ๋ ๊ฒ์
๋๋ค.
์ด๊ฒ์ด ์ข์ ์๊ฐ์ด๋ผ๊ณ ์๊ฐํ์ญ๋๊น?
PR์ ๊ด์ฌ์ด ์์ผ์ญ๋๊น?
@Edgpaez ์ข์. ์ด์ ์ธ๋ถ ์ฌํญ์ ์ดํดํฉ๋๋ค. ๊ทธ๋ฌ๋ RxJS
๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์ feature
๋ฅผ ๊ตฌํํ๊ธฐ์๋ ๋๋ฌด ๋ง์ ๊ฒ ๊ฐ์ต๋๋ค.
๋ํ ์๋ ๋ด์ฉ์ด ๋ค๋ฅผ ๊ฒ ๊ฐ์ต๋๋ค.
RNIap.buyProduct('com.example.coins100')
.subscribe(
purchase => console.log(purchase), // successful payment
err => console.log(err) // err.code and err.message are available
)
์๋์ ๊ฐ์ ๋ ๊ฐ์ง ํญ๋ชฉ์ ๋ํด buyProduct
๋ก ์ ํํ๋ฉด
RNIap.buyProduct('com.example.coins100');
RNIap.buyProduct('com.example.coins200');
์ด๋ ๊ฒ์ด ๋จผ์ ๋๋ ์ง ๋ณด์ฅ ํ ์ ์์ผ๋ฏ๋ก sendEvent
์์ JS
๊น์ง ๊ธฐ๋ณธ์ ์ผ๋ก ์ฒ๋ฆฌํด์ผํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
๊ตฌํ์ด ๋ค์๊ณผ ๊ฐ์์ผํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
RNIap.buyProduct('com.example.coins100');
RNIap.buyProduct('com.example.coins200');
// receiving events
const subs = RNIap.purchaseUpdateListener(purchase => {
...
});
๋ด๊ฐ ๋์น ๊ฒ์ด ์์ผ๋ฉด ์๋ ค์ฃผ์ธ์.
# 423์์ ์ถ๊ฐ ๋ ผ์๋ฅผ ์ฒ๋ฆฌํ๊ฒ ์ต๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
apple
์ ๋ฌธ์ํด์ผํ๋ค๊ณ ์๊ฐํ๋๋ฐsandbox
ํ๊ฒฝ์์ ์ฌํ ํ ์์๋ ๋ค๋ฅธ ํ ์คํธ ์ผ์ด์ค๊ฐ ์๋ค๋ ์ฌ์ค์ด ์ ๋ง ๋์ฐํด ๋ณด์ ๋๋ค. ๋ฌธ์ ๋ฅผ ์ดํดํ๊ณ ์ถ์ ๋ถ๋ค์ ์ํด ํ๋ฉด์ ๋ นํํ๊ณ ์ฌ๊ธฐ ์์ ์์ต๋๋ค . @anandwahed Apple์ ๋ฌธ์ ํด ์ฃผ์๊ฒ ์ต๋๊น? ๊ทธ๋ค์ด ๊ทธ๋ ๊ฒ ์ง์ํ์ง ์๋๋ค๋ ๊ฒ์ ์๊ณ ์๊ธฐ ๋๋ฌธ์ ๋ ๋ง์ ์ฌ๋๋ค์ด ๊ทธ๋ค๊ณผ ์ ์ดํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ชจ์ฌ ๋ด ์๋ค.