@hayanmind/monetai-react-native 0.2.5 → 0.2.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -77,5 +77,6 @@ def kotlin_version = getExtOrDefault("kotlinVersion")
77
77
  dependencies {
78
78
  implementation "com.facebook.react:react-android"
79
79
  implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
80
+ implementation "com.android.billingclient:billing-ktx:6.1.0"
80
81
  }
81
82
 
@@ -1,3 +1,5 @@
1
1
  <manifest xmlns:android="http://schemas.android.com/apk/res/android"
2
2
  package="com.hayanmind.monetaireactnative">
3
+ <uses-permission android:name="android.permission.INTERNET" />
4
+ <uses-permission android:name="com.android.vending.BILLING" />
3
5
  </manifest>
@@ -1,2 +1,4 @@
1
1
  <manifest xmlns:android="http://schemas.android.com/apk/res/android">
2
+ <uses-permission android:name="android.permission.INTERNET" />
3
+ <uses-permission android:name="com.android.vending.BILLING" />
2
4
  </manifest>
@@ -3,10 +3,297 @@ package com.hayanmind.monetaireactnative
3
3
  import android.content.Context
4
4
  import android.content.SharedPreferences
5
5
  import android.util.Log
6
+ import com.android.billingclient.api.*
6
7
  import com.facebook.react.bridge.ReactApplicationContext
7
8
  import com.facebook.react.bridge.ReactContextBaseJavaModule
8
9
  import com.facebook.react.bridge.ReactMethod
9
10
  import com.facebook.react.bridge.Promise
11
+ import org.json.JSONObject
12
+ import org.json.JSONArray
13
+ import java.net.HttpURLConnection
14
+ import java.net.URL
15
+ import java.util.concurrent.Executors
16
+ import kotlinx.coroutines.CoroutineScope
17
+ import kotlinx.coroutines.Dispatchers
18
+ import kotlinx.coroutines.launch
19
+ import kotlinx.coroutines.withContext
20
+ import kotlinx.coroutines.CompletableDeferred
21
+
22
+ // 하드코딩된 엔드포인트 URL
23
+ private const val MAPPING_URL = "https://monetai-api-414410537412.us-central1.run.app/sdk/transaction-id-to-user-id/android"
24
+ private const val RECEIPT_VALIDATION_URL = "https://monetai-api-414410537412.us-central1.run.app/sdk/transaction-id-to-user-id/android/receipt"
25
+
26
+ // MARK: - 영수증 검증 및 전송 로직
27
+ class ReceiptValidator private constructor(private val context: Context) {
28
+ companion object {
29
+ @Volatile
30
+ private var INSTANCE: ReceiptValidator? = null
31
+
32
+ fun getInstance(context: Context): ReceiptValidator {
33
+ return INSTANCE ?: synchronized(this) {
34
+ INSTANCE ?: ReceiptValidator(context.applicationContext).also { INSTANCE = it }
35
+ }
36
+ }
37
+ }
38
+
39
+ private val sharedPreferences: SharedPreferences by lazy {
40
+ context.getSharedPreferences("MonetaiPrefs", Context.MODE_PRIVATE)
41
+ }
42
+
43
+ suspend fun sendReceipt() {
44
+ Log.d("Monetai", "[Debug] sendReceipt 시작")
45
+
46
+ val userId = sharedPreferences.getString("MonetaiAppAccountToken", null)
47
+ val packageName = context.packageName
48
+ val sdkKey = sharedPreferences.getString("MonetaiSdkKey", null)
49
+
50
+ Log.d("Monetai", "[Debug] userId: ${if (userId != null) "존재" else "null"}")
51
+ Log.d("Monetai", "[Debug] packageName: $packageName")
52
+ Log.d("Monetai", "[Debug] sdkKey: ${if (sdkKey != null) "존재" else "null"}")
53
+
54
+ if (userId == null || sdkKey == null) {
55
+ val errorMsg = "필요한 정보가 누락되었습니다 - userId: ${userId != null}, sdkKey: ${sdkKey != null}"
56
+ Log.e("Monetai", "[Error] $errorMsg")
57
+ throw IllegalStateException(errorMsg)
58
+ }
59
+
60
+ Log.d("Monetai", "[Debug] queryAndSyncPurchaseHistory 호출")
61
+ // queryPurchaseHistoryAsync를 사용해서 모든 구매 내역 조회
62
+ queryAndSyncPurchaseHistory(userId, packageName, sdkKey)
63
+ }
64
+
65
+ private suspend fun queryAndSyncPurchaseHistory(userId: String, packageName: String, sdkKey: String) {
66
+ Log.d("Monetai", "[Debug] queryAndSyncPurchaseHistory 시작")
67
+
68
+ val deferred = CompletableDeferred<Unit>()
69
+
70
+ val billingClient = BillingClient.newBuilder(context)
71
+ .setListener { billingResult, purchases ->
72
+ // 구매 내역 조회용이므로 더미 리스너
73
+ Log.d("Monetai", "[Debug] 더미 리스너 호출됨: ${billingResult.responseCode}")
74
+ }
75
+ .enablePendingPurchases()
76
+ .build()
77
+
78
+ billingClient.startConnection(object : BillingClientStateListener {
79
+ override fun onBillingSetupFinished(billingResult: BillingResult) {
80
+ Log.d("Monetai", "[Debug] onBillingSetupFinished: ${billingResult.responseCode}")
81
+
82
+ if (billingResult.responseCode == BillingClient.BillingResponseCode.OK) {
83
+ Log.d("Monetai", "[Debug] 인앱 구매 내역 조회 시작")
84
+ // 인앱 구매 내역 조회
85
+ val inappParams = QueryPurchaseHistoryParams.newBuilder()
86
+ .setProductType(BillingClient.ProductType.INAPP)
87
+ .build()
88
+
89
+ billingClient.queryPurchaseHistoryAsync(inappParams) { result1, inappPurchases ->
90
+ Log.d("Monetai", "[Debug] 인앱 구매 내역 조회 완료: ${result1.responseCode}, 개수: ${inappPurchases?.size ?: 0}")
91
+
92
+ // 구독 내역 조회
93
+ Log.d("Monetai", "[Debug] 구독 내역 조회 시작")
94
+ val subsParams = QueryPurchaseHistoryParams.newBuilder()
95
+ .setProductType(BillingClient.ProductType.SUBS)
96
+ .build()
97
+
98
+ billingClient.queryPurchaseHistoryAsync(subsParams) { result2, subsPurchases ->
99
+ try {
100
+ Log.d("Monetai", "[Debug] 구독 내역 조회 완료: ${result2.responseCode}, 개수: ${subsPurchases?.size ?: 0}")
101
+
102
+ val allPurchases = (inappPurchases ?: emptyList()) + (subsPurchases ?: emptyList())
103
+
104
+ // 디버깅 로그 추가
105
+ Log.d("Monetai", "[Debug] 전체 구매 내역 개수: ${allPurchases.size}")
106
+ Log.d("Monetai", "[Debug] 인앱 구매 개수: ${inappPurchases?.size ?: 0}")
107
+ Log.d("Monetai", "[Debug] 구독 구매 개수: ${subsPurchases?.size ?: 0}")
108
+
109
+ allPurchases.forEachIndexed { index, purchase ->
110
+ Log.d("Monetai", "[Debug] 구매 $index: purchaseToken=${purchase.purchaseToken}, productIds=${purchase.products}, purchaseTime=${purchase.purchaseTime}")
111
+ }
112
+
113
+ if (allPurchases.isNotEmpty()) {
114
+ sendPurchaseHistoryToServer(userId, packageName, sdkKey, allPurchases)
115
+ Log.d("Monetai", "[Debug] 구매 내역 서버 전송 완료")
116
+ } else {
117
+ Log.d("Monetai", "[Debug] 구매 내역이 없습니다")
118
+ }
119
+
120
+ billingClient.endConnection()
121
+ deferred.complete(Unit)
122
+ } catch (e: Exception) {
123
+ Log.e("Monetai", "[Error] 구매 내역 처리 중 에러: ${e.message}")
124
+ billingClient.endConnection()
125
+ deferred.completeExceptionally(e)
126
+ }
127
+ }
128
+ }
129
+ } else {
130
+ Log.e("Monetai", "[Error] Billing setup failed: ${billingResult.debugMessage}")
131
+ billingClient.endConnection()
132
+ deferred.completeExceptionally(Exception("Billing setup failed: ${billingResult.debugMessage}"))
133
+ }
134
+ }
135
+
136
+ override fun onBillingServiceDisconnected() {
137
+ Log.d("Monetai", "[Debug] Billing service disconnected")
138
+ if (!deferred.isCompleted) {
139
+ deferred.completeExceptionally(Exception("Billing service disconnected"))
140
+ }
141
+ }
142
+ })
143
+
144
+ // 콜백이 완료될 때까지 기다림
145
+ deferred.await()
146
+ }
147
+
148
+ private fun sendPurchaseHistoryToServer(
149
+ userId: String,
150
+ packageName: String,
151
+ sdkKey: String,
152
+ purchases: List<PurchaseHistoryRecord>
153
+ ) {
154
+ val purchasesList = purchases.map { purchase ->
155
+ JSONObject().apply {
156
+ put("purchaseToken", purchase.purchaseToken)
157
+ // PurchaseHistoryRecord에는 orderId가 없음
158
+ }
159
+ }
160
+
161
+ val payload = JSONObject().apply {
162
+ put("packageName", packageName)
163
+ put("userId", userId)
164
+ put("sdkKey", sdkKey)
165
+ put("purchases", JSONArray(purchasesList))
166
+ }
167
+
168
+ CoroutineScope(Dispatchers.IO).launch {
169
+ try {
170
+ val url = URL(RECEIPT_VALIDATION_URL)
171
+ val connection = url.openConnection() as HttpURLConnection
172
+ connection.requestMethod = "POST"
173
+ connection.setRequestProperty("Content-Type", "application/json")
174
+ connection.doOutput = true
175
+
176
+ connection.outputStream.use { os ->
177
+ os.write(payload.toString().toByteArray())
178
+ }
179
+
180
+ val responseCode = connection.responseCode
181
+ Log.d("Monetai", "[Debug] 구매 내역 동기화 응답: $responseCode")
182
+ } catch (e: Exception) {
183
+ Log.e("Monetai", "[Error] 구매 내역 동기화 실패: ${e.message}")
184
+ }
185
+ }
186
+ }
187
+ }
188
+
189
+ // MARK: - Billing Client Manager
190
+ class BillingManager private constructor(private val context: Context) :
191
+ PurchasesUpdatedListener, BillingClientStateListener {
192
+
193
+ companion object {
194
+ @Volatile
195
+ private var INSTANCE: BillingManager? = null
196
+
197
+ fun getInstance(context: Context): BillingManager {
198
+ return INSTANCE ?: synchronized(this) {
199
+ INSTANCE ?: BillingManager(context.applicationContext).also { INSTANCE = it }
200
+ }
201
+ }
202
+ }
203
+
204
+ private var billingClient: BillingClient? = null
205
+ private val sharedPreferences: SharedPreferences by lazy {
206
+ context.getSharedPreferences("MonetaiPrefs", Context.MODE_PRIVATE)
207
+ }
208
+
209
+ fun startObserving() {
210
+ Log.d("Monetai", "[Debug] BillingManager startObserving")
211
+
212
+ billingClient = BillingClient.newBuilder(context)
213
+ .setListener(this)
214
+ .enablePendingPurchases()
215
+ .build()
216
+
217
+ billingClient?.startConnection(this)
218
+ }
219
+
220
+ override fun onBillingSetupFinished(billingResult: BillingResult) {
221
+ Log.d("Monetai", "[Debug] onBillingSetupFinished: ${billingResult.responseCode}")
222
+
223
+ if (billingResult.responseCode == BillingClient.BillingResponseCode.OK) {
224
+ Log.d("Monetai", "[Debug] Billing client ready - waiting for new purchases")
225
+ } else {
226
+ Log.e("Monetai", "[Error] Billing setup failed: ${billingResult.debugMessage}")
227
+ }
228
+ }
229
+
230
+ override fun onBillingServiceDisconnected() {
231
+ Log.d("Monetai", "[Debug] onBillingServiceDisconnected")
232
+ }
233
+
234
+ override fun onPurchasesUpdated(billingResult: BillingResult, purchases: MutableList<Purchase>?) {
235
+ Log.d("Monetai", "[Debug] onPurchasesUpdated: ${billingResult.responseCode}, count: ${purchases?.size ?: 0}")
236
+
237
+ if (billingResult.responseCode == BillingClient.BillingResponseCode.OK && purchases != null) {
238
+ for (purchase in purchases) {
239
+ handlePurchase(purchase)
240
+ }
241
+ } else {
242
+ Log.e("Monetai", "[Error] Purchase update failed: ${billingResult.debugMessage}")
243
+ }
244
+ }
245
+
246
+ private fun handlePurchase(purchase: Purchase) {
247
+ val purchaseToken = purchase.purchaseToken
248
+
249
+ Log.d("Monetai", "[Debug] handlePurchase: purchaseToken=$purchaseToken, state=${purchase.purchaseState}")
250
+
251
+ if (purchase.purchaseState == Purchase.PurchaseState.PURCHASED) {
252
+ sendMapping(purchaseToken)
253
+ }
254
+ }
255
+
256
+ private fun sendMapping(purchaseToken: String) {
257
+ Log.d("Monetai", "[Debug] sendMapping: $purchaseToken")
258
+
259
+ val userId = sharedPreferences.getString("MonetaiAppAccountToken", null)
260
+ val packageName = context.packageName
261
+ val sdkKey = sharedPreferences.getString("MonetaiSdkKey", null)
262
+
263
+ if (userId == null || sdkKey == null) {
264
+ Log.e("Monetai", "[Error] no userId or sdkKey set")
265
+ return
266
+ }
267
+
268
+ val payload = JSONObject().apply {
269
+ put("purchaseToken", purchaseToken)
270
+ put("packageName", packageName)
271
+ put("userId", userId)
272
+ put("sdkKey", sdkKey)
273
+ }
274
+
275
+ Log.d("Monetai", "[Debug] POST to $MAPPING_URL: $payload")
276
+
277
+ CoroutineScope(Dispatchers.IO).launch {
278
+ try {
279
+ val url = URL(MAPPING_URL)
280
+ val connection = url.openConnection() as HttpURLConnection
281
+ connection.requestMethod = "POST"
282
+ connection.setRequestProperty("Content-Type", "application/json")
283
+ connection.doOutput = true
284
+
285
+ connection.outputStream.use { os ->
286
+ os.write(payload.toString().toByteArray())
287
+ }
288
+
289
+ val responseCode = connection.responseCode
290
+ Log.d("Monetai", "[Debug] Mapping POST succeeded: $responseCode")
291
+ } catch (e: Exception) {
292
+ Log.e("Monetai", "[Error] Mapping POST failed: ${e.message}")
293
+ }
294
+ }
295
+ }
296
+ }
10
297
 
11
298
  class MonetaiReactNativeModule(reactContext: ReactApplicationContext) :
12
299
  ReactContextBaseJavaModule(reactContext) {
@@ -80,14 +367,35 @@ class MonetaiReactNativeModule(reactContext: ReactApplicationContext) :
80
367
 
81
368
  @ReactMethod
82
369
  fun startObserving(useStoreKit2: Boolean, promise: Promise) {
83
- Log.w(TAG, "startObserving: Android 플랫폼에서는 지원하지 않는 기능입니다")
84
- promise.resolve(null)
370
+ try {
371
+ Log.d(TAG, "startObserving: Android에서 Google Play Billing 시작")
372
+ BillingManager.getInstance(reactApplicationContext).startObserving()
373
+ promise.resolve(null)
374
+ } catch (e: Exception) {
375
+ promise.reject("ERROR_START_OBSERVING", "구매 관찰 시작 실패", e)
376
+ }
85
377
  }
86
378
 
87
379
  @ReactMethod
88
380
  fun sendReceipt(promise: Promise) {
89
- Log.w(TAG, "sendReceipt: Android 플랫폼에서는 지원하지 않는 기능입니다")
90
- promise.resolve(null)
381
+ try {
382
+ Log.d(TAG, "sendReceipt: Android에서 구매 영수증 전송 시작")
383
+ Log.d(TAG, "sendReceipt: ReceiptValidator.sendReceipt() 호출")
384
+
385
+ CoroutineScope(Dispatchers.IO).launch {
386
+ try {
387
+ ReceiptValidator.getInstance(reactApplicationContext).sendReceipt()
388
+ Log.d(TAG, "sendReceipt: ReceiptValidator.sendReceipt() 완료")
389
+ promise.resolve(null)
390
+ } catch (e: Exception) {
391
+ Log.e(TAG, "sendReceipt: 코루틴 내부 에러 발생 - ${e.message}", e)
392
+ promise.reject("ERROR_SEND_RECEIPT", "영수증 전송 실패: ${e.message}", e)
393
+ }
394
+ }
395
+ } catch (e: Exception) {
396
+ Log.e(TAG, "sendReceipt: 에러 발생 - ${e.message}", e)
397
+ promise.reject("ERROR_SEND_RECEIPT", "영수증 전송 실패: ${e.message}", e)
398
+ }
91
399
  }
92
400
 
93
401
  @ReactMethod
@@ -45,8 +45,8 @@ class MonetaiSDK {
45
45
  * 모넷AI SDK를 초기화합니다
46
46
  * @param userId 사용자 고유 ID (필수)
47
47
  * @param useStoreKit2 StoreKit2를 사용할지 여부 (기본값: false)
48
- * - true: iOS 15+ 기기에서 StoreKit2 사용 (권장)
49
- * - false: 모든 기기에서 StoreKit1 사용
48
+ * - iOS: true는 iOS 15+ 기기에서 StoreKit2 사용 (권장), false는 StoreKit1 사용
49
+ * - Android: Google Play Billing Library 사용 (useStoreKit2 값 무시)
50
50
  * @returns 성공 시 Promise<void>
51
51
  */
52
52
  async initialize({
@@ -70,12 +70,10 @@ class MonetaiSDK {
70
70
  // 트랜잭션 관찰 시작
71
71
  await MonetaiReactNative.startObserving(useStoreKit2);
72
72
 
73
- // iOS 영수증 전송 (ios 플랫폼에서만 호출)
74
- if (_reactNative.Platform.OS === 'ios') {
75
- MonetaiReactNative.sendReceipt().catch(err => {
76
- console.error('Failed to send receipt', err);
77
- });
78
- }
73
+ // 영수증 전송 (iOS는 App Store 영수증, Android는 Google Play 영수증)
74
+ MonetaiReactNative.sendReceipt().catch(err => {
75
+ console.error('Failed to send receipt', err);
76
+ });
79
77
  const result = await ApiRequest.initialize({
80
78
  sdkKey,
81
79
  userId
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_mitt","_interopRequireDefault","_dayjs","_ApiRequest","_interopRequireWildcard","ApiRequest","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","LINKING_ERROR","Platform","select","ios","MonetaiReactNative","NativeModules","Proxy","Error","MonetaiSDK","exposureTimeSec","initialized","pendingEvents","emitter","mitt","getEmitter","getExposureTimeSec","initialize","sdkKey","userId","useStoreKit2","setSdkKey","setUserId","startObserving","OS","sendReceipt","catch","err","console","error","result","campaign","exposure_time_sec","pendingPromises","map","eventName","value","createdAt","createEvent","log","Promise","all","then","emit","organizationId","platform","version","group","logEvent","getSdkKey","getUserId","push","Date","predict","prediction","discountInfo","getAppUserDiscount","hasActiveDiscount","app_user_id","dayjs","ended_at","isAfter","startedAt","endedAt","clone","add","createAppUserDiscount","toDate","getInitialized","reset","monetaiSDK","_default","exports"],"sourceRoot":"../../src","sources":["MonetaiSDK.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","_mitt","_interopRequireDefault","_dayjs","_ApiRequest","_interopRequireWildcard","ApiRequest","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","LINKING_ERROR","Platform","select","ios","MonetaiReactNative","NativeModules","Proxy","Error","MonetaiSDK","exposureTimeSec","initialized","pendingEvents","emitter","mitt","getEmitter","getExposureTimeSec","initialize","sdkKey","userId","useStoreKit2","setSdkKey","setUserId","startObserving","sendReceipt","catch","err","console","error","result","campaign","exposure_time_sec","pendingPromises","map","eventName","value","createdAt","createEvent","log","Promise","all","then","emit","organizationId","platform","version","group","logEvent","getSdkKey","getUserId","push","Date","predict","prediction","discountInfo","getAppUserDiscount","hasActiveDiscount","app_user_id","dayjs","ended_at","isAfter","startedAt","endedAt","clone","add","createAppUserDiscount","toDate","getInitialized","reset","monetaiSDK","_default","exports"],"sourceRoot":"../../src","sources":["MonetaiSDK.ts"],"mappings":"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","ignoreList":[]}
@@ -6,8 +6,8 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.getSDKVersion = getSDKVersion;
7
7
  function getSDKVersion() {
8
8
  // __SDK_VERSION__이 정의되어 있으면 해당 값을 사용
9
- if (typeof "0.2.5" === 'string') {
10
- return "0.2.5";
9
+ if (typeof "0.2.8" === 'string') {
10
+ return "0.2.8";
11
11
  }
12
12
 
13
13
  // 그렇지 않으면, package.json을 lazy하게 불러와 version을 반환
@@ -39,8 +39,8 @@ class MonetaiSDK {
39
39
  * 모넷AI SDK를 초기화합니다
40
40
  * @param userId 사용자 고유 ID (필수)
41
41
  * @param useStoreKit2 StoreKit2를 사용할지 여부 (기본값: false)
42
- * - true: iOS 15+ 기기에서 StoreKit2 사용 (권장)
43
- * - false: 모든 기기에서 StoreKit1 사용
42
+ * - iOS: true는 iOS 15+ 기기에서 StoreKit2 사용 (권장), false는 StoreKit1 사용
43
+ * - Android: Google Play Billing Library 사용 (useStoreKit2 값 무시)
44
44
  * @returns 성공 시 Promise<void>
45
45
  */
46
46
  async initialize({
@@ -64,12 +64,10 @@ class MonetaiSDK {
64
64
  // 트랜잭션 관찰 시작
65
65
  await MonetaiReactNative.startObserving(useStoreKit2);
66
66
 
67
- // iOS 영수증 전송 (ios 플랫폼에서만 호출)
68
- if (Platform.OS === 'ios') {
69
- MonetaiReactNative.sendReceipt().catch(err => {
70
- console.error('Failed to send receipt', err);
71
- });
72
- }
67
+ // 영수증 전송 (iOS는 App Store 영수증, Android는 Google Play 영수증)
68
+ MonetaiReactNative.sendReceipt().catch(err => {
69
+ console.error('Failed to send receipt', err);
70
+ });
73
71
  const result = await ApiRequest.initialize({
74
72
  sdkKey,
75
73
  userId
@@ -1 +1 @@
1
- {"version":3,"names":["NativeModules","Platform","mitt","dayjs","ApiRequest","createAppUserDiscount","LINKING_ERROR","select","ios","default","MonetaiReactNative","Proxy","get","Error","MonetaiSDK","exposureTimeSec","initialized","pendingEvents","emitter","getEmitter","getExposureTimeSec","initialize","sdkKey","userId","useStoreKit2","setSdkKey","setUserId","startObserving","OS","sendReceipt","catch","err","console","error","result","campaign","exposure_time_sec","pendingPromises","map","eventName","value","createdAt","createEvent","log","Promise","all","then","emit","organizationId","platform","version","group","logEvent","getSdkKey","getUserId","push","Date","predict","prediction","discountInfo","getAppUserDiscount","hasActiveDiscount","app_user_id","ended_at","isAfter","startedAt","endedAt","clone","add","toDate","getInitialized","reset","monetaiSDK"],"sourceRoot":"../../src","sources":["MonetaiSDK.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["NativeModules","Platform","mitt","dayjs","ApiRequest","createAppUserDiscount","LINKING_ERROR","select","ios","default","MonetaiReactNative","Proxy","get","Error","MonetaiSDK","exposureTimeSec","initialized","pendingEvents","emitter","getEmitter","getExposureTimeSec","initialize","sdkKey","userId","useStoreKit2","setSdkKey","setUserId","startObserving","sendReceipt","catch","err","console","error","result","campaign","exposure_time_sec","pendingPromises","map","eventName","value","createdAt","createEvent","log","Promise","all","then","emit","organizationId","platform","version","group","logEvent","getSdkKey","getUserId","push","Date","predict","prediction","discountInfo","getAppUserDiscount","hasActiveDiscount","app_user_id","ended_at","isAfter","startedAt","endedAt","clone","add","toDate","getInitialized","reset","monetaiSDK"],"sourceRoot":"../../src","sources":["MonetaiSDK.ts"],"mappings":"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","ignoreList":[]}
package/lib/module/lib.js CHANGED
@@ -2,8 +2,8 @@
2
2
 
3
3
  export function getSDKVersion() {
4
4
  // __SDK_VERSION__이 정의되어 있으면 해당 값을 사용
5
- if (typeof "0.2.5" === 'string') {
6
- return "0.2.5";
5
+ if (typeof "0.2.8" === 'string') {
6
+ return "0.2.8";
7
7
  }
8
8
 
9
9
  // 그렇지 않으면, package.json을 lazy하게 불러와 version을 반환
@@ -13,8 +13,8 @@ declare class MonetaiSDK {
13
13
  * 모넷AI SDK를 초기화합니다
14
14
  * @param userId 사용자 고유 ID (필수)
15
15
  * @param useStoreKit2 StoreKit2를 사용할지 여부 (기본값: false)
16
- * - true: iOS 15+ 기기에서 StoreKit2 사용 (권장)
17
- * - false: 모든 기기에서 StoreKit1 사용
16
+ * - iOS: true는 iOS 15+ 기기에서 StoreKit2 사용 (권장), false는 StoreKit1 사용
17
+ * - Android: Google Play Billing Library 사용 (useStoreKit2 값 무시)
18
18
  * @returns 성공 시 Promise<void>
19
19
  */
20
20
  initialize({ sdkKey, userId, useStoreKit2, }: {
@@ -1 +1 @@
1
- {"version":3,"file":"MonetaiSDK.d.ts","sourceRoot":"","sources":["../../../../src/MonetaiSDK.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,aAAa,EAAE,MAAM,SAAS,CAAC;AAqB/D,KAAK,aAAa,GAAG;IACnB,kBAAkB,EAAE,IAAI,CAAC;CAC1B,CAAC;AAEF,cAAM,UAAU;IACd,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,WAAW,CAAS;IAG5B,OAAO,CAAC,aAAa,CAIb;IAGR,OAAO,CAAC,OAAO,CAAyB;IAGjC,UAAU;IAIV,kBAAkB;IAIzB;;;;;;;OAOG;IACU,UAAU,CAAC,EACtB,MAAM,EACN,MAAM,EACN,YAAoB,GACrB,EAAE;QACD,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,YAAY,CAAC,EAAE,OAAO,CAAC;KACxB,GAAG,OAAO,CAAC;QACV,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,EAAE,cAAc,CAAC;QACzB,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,WAAW,GAAG,IAAI,CAAC;KAC3B,CAAC;IAyDW,QAAQ,CAAC,EAAE,SAAS,EAAE,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE;IAmB7C,OAAO,IAAI,OAAO,CAAC;QAC9B,UAAU,EAAE,aAAa,CAAC;QAC1B,SAAS,EAAE,WAAW,CAAC;KACxB,CAAC;IAuCK,cAAc;IAIR,SAAS,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAUnC,SAAS,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAUnC,KAAK;CAInB;AAGD,QAAA,MAAM,UAAU,YAAmB,CAAC;AACpC,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"MonetaiSDK.d.ts","sourceRoot":"","sources":["../../../../src/MonetaiSDK.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,aAAa,EAAE,MAAM,SAAS,CAAC;AAqB/D,KAAK,aAAa,GAAG;IACnB,kBAAkB,EAAE,IAAI,CAAC;CAC1B,CAAC;AAEF,cAAM,UAAU;IACd,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,WAAW,CAAS;IAG5B,OAAO,CAAC,aAAa,CAIb;IAGR,OAAO,CAAC,OAAO,CAAyB;IAGjC,UAAU;IAIV,kBAAkB;IAIzB;;;;;;;OAOG;IACU,UAAU,CAAC,EACtB,MAAM,EACN,MAAM,EACN,YAAoB,GACrB,EAAE;QACD,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,YAAY,CAAC,EAAE,OAAO,CAAC;KACxB,GAAG,OAAO,CAAC;QACV,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,EAAE,cAAc,CAAC;QACzB,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,WAAW,GAAG,IAAI,CAAC;KAC3B,CAAC;IAuDW,QAAQ,CAAC,EAAE,SAAS,EAAE,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE;IAmB7C,OAAO,IAAI,OAAO,CAAC;QAC9B,UAAU,EAAE,aAAa,CAAC;QAC1B,SAAS,EAAE,WAAW,CAAC;KACxB,CAAC;IAuCK,cAAc;IAIR,SAAS,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAUnC,SAAS,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAUnC,KAAK;CAInB;AAGD,QAAA,MAAM,UAAU,YAAmB,CAAC;AACpC,eAAe,UAAU,CAAC"}
@@ -13,8 +13,8 @@ declare class MonetaiSDK {
13
13
  * 모넷AI SDK를 초기화합니다
14
14
  * @param userId 사용자 고유 ID (필수)
15
15
  * @param useStoreKit2 StoreKit2를 사용할지 여부 (기본값: false)
16
- * - true: iOS 15+ 기기에서 StoreKit2 사용 (권장)
17
- * - false: 모든 기기에서 StoreKit1 사용
16
+ * - iOS: true는 iOS 15+ 기기에서 StoreKit2 사용 (권장), false는 StoreKit1 사용
17
+ * - Android: Google Play Billing Library 사용 (useStoreKit2 값 무시)
18
18
  * @returns 성공 시 Promise<void>
19
19
  */
20
20
  initialize({ sdkKey, userId, useStoreKit2, }: {
@@ -1 +1 @@
1
- {"version":3,"file":"MonetaiSDK.d.ts","sourceRoot":"","sources":["../../../../src/MonetaiSDK.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,aAAa,EAAE,MAAM,SAAS,CAAC;AAqB/D,KAAK,aAAa,GAAG;IACnB,kBAAkB,EAAE,IAAI,CAAC;CAC1B,CAAC;AAEF,cAAM,UAAU;IACd,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,WAAW,CAAS;IAG5B,OAAO,CAAC,aAAa,CAIb;IAGR,OAAO,CAAC,OAAO,CAAyB;IAGjC,UAAU;IAIV,kBAAkB;IAIzB;;;;;;;OAOG;IACU,UAAU,CAAC,EACtB,MAAM,EACN,MAAM,EACN,YAAoB,GACrB,EAAE;QACD,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,YAAY,CAAC,EAAE,OAAO,CAAC;KACxB,GAAG,OAAO,CAAC;QACV,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,EAAE,cAAc,CAAC;QACzB,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,WAAW,GAAG,IAAI,CAAC;KAC3B,CAAC;IAyDW,QAAQ,CAAC,EAAE,SAAS,EAAE,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE;IAmB7C,OAAO,IAAI,OAAO,CAAC;QAC9B,UAAU,EAAE,aAAa,CAAC;QAC1B,SAAS,EAAE,WAAW,CAAC;KACxB,CAAC;IAuCK,cAAc;IAIR,SAAS,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAUnC,SAAS,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAUnC,KAAK;CAInB;AAGD,QAAA,MAAM,UAAU,YAAmB,CAAC;AACpC,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"MonetaiSDK.d.ts","sourceRoot":"","sources":["../../../../src/MonetaiSDK.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,aAAa,EAAE,MAAM,SAAS,CAAC;AAqB/D,KAAK,aAAa,GAAG;IACnB,kBAAkB,EAAE,IAAI,CAAC;CAC1B,CAAC;AAEF,cAAM,UAAU;IACd,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,WAAW,CAAS;IAG5B,OAAO,CAAC,aAAa,CAIb;IAGR,OAAO,CAAC,OAAO,CAAyB;IAGjC,UAAU;IAIV,kBAAkB;IAIzB;;;;;;;OAOG;IACU,UAAU,CAAC,EACtB,MAAM,EACN,MAAM,EACN,YAAoB,GACrB,EAAE;QACD,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,YAAY,CAAC,EAAE,OAAO,CAAC;KACxB,GAAG,OAAO,CAAC;QACV,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,EAAE,cAAc,CAAC;QACzB,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,WAAW,GAAG,IAAI,CAAC;KAC3B,CAAC;IAuDW,QAAQ,CAAC,EAAE,SAAS,EAAE,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE;IAmB7C,OAAO,IAAI,OAAO,CAAC;QAC9B,UAAU,EAAE,aAAa,CAAC;QAC1B,SAAS,EAAE,WAAW,CAAC;KACxB,CAAC;IAuCK,cAAc;IAIR,SAAS,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAUnC,SAAS,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAUnC,KAAK;CAInB;AAGD,QAAA,MAAM,UAAU,YAAmB,CAAC;AACpC,eAAe,UAAU,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hayanmind/monetai-react-native",
3
- "version": "0.2.5",
3
+ "version": "0.2.8",
4
4
  "description": ".",
5
5
  "source": "./src/index.tsx",
6
6
  "main": "./lib/commonjs/index.js",
package/src/MonetaiSDK.ts CHANGED
@@ -54,8 +54,8 @@ class MonetaiSDK {
54
54
  * 모넷AI SDK를 초기화합니다
55
55
  * @param userId 사용자 고유 ID (필수)
56
56
  * @param useStoreKit2 StoreKit2를 사용할지 여부 (기본값: false)
57
- * - true: iOS 15+ 기기에서 StoreKit2 사용 (권장)
58
- * - false: 모든 기기에서 StoreKit1 사용
57
+ * - iOS: true는 iOS 15+ 기기에서 StoreKit2 사용 (권장), false는 StoreKit1 사용
58
+ * - Android: Google Play Billing Library 사용 (useStoreKit2 값 무시)
59
59
  * @returns 성공 시 Promise<void>
60
60
  */
61
61
  public async initialize({
@@ -89,12 +89,10 @@ class MonetaiSDK {
89
89
  // 트랜잭션 관찰 시작
90
90
  await MonetaiReactNative.startObserving(useStoreKit2);
91
91
 
92
- // iOS 영수증 전송 (ios 플랫폼에서만 호출)
93
- if (Platform.OS === 'ios') {
94
- MonetaiReactNative.sendReceipt().catch((err: any) => {
95
- console.error('Failed to send receipt', err);
96
- });
97
- }
92
+ // 영수증 전송 (iOS는 App Store 영수증, Android는 Google Play 영수증)
93
+ MonetaiReactNative.sendReceipt().catch((err: any) => {
94
+ console.error('Failed to send receipt', err);
95
+ });
98
96
 
99
97
  const result = await ApiRequest.initialize({ sdkKey, userId });
100
98
  this.exposureTimeSec = result.campaign?.exposure_time_sec ?? null;