@@ -34,30 +34,58 @@ class PaymentActivity : FragmentActivity() {
3434
3535 private fun purchaseProduct () {
3636 PoolakeyKotlinBridge .payment.purchaseProduct(
37- this @PaymentActivity ,
38- PurchaseRequest (productId!! , REQUEST_CODE , payload, dynamicPriceToken)
37+ activityResultRegistry ,
38+ PurchaseRequest (productId!! , payload, dynamicPriceToken)
3939 ) {
4040 purchaseFlowBegan {
4141 // Bazaar's billing screen has opened successfully
4242 paymentCallback?.onStart()
4343 }
44- failedToBeginFlow { throwable ->
44+ failedToBeginFlow {
4545 // Failed to open Bazaar's billing screen
46- if (throwable is DynamicPriceNotSupportedException ) {
46+ if (it is DynamicPriceNotSupportedException ) {
4747 dynamicPriceToken = null
4848 purchaseProduct()
4949 } else {
50- paymentCallback?.onFailure(throwable.message, throwable.stackTrace.joinToString(" \n " ))
50+ paymentCallback?.onFailure(
51+ it.localizedMessage,
52+ it.stackTrace.joinToString(" \n " )
53+ )
5154 }
5255 finish()
5356 }
57+ purchaseSucceed {
58+ // User purchased the product
59+ paymentCallback?.onSuccess(
60+ it.orderId,
61+ it.purchaseToken,
62+ it.payload,
63+ it.packageName,
64+ it.purchaseState.ordinal,
65+ it.purchaseTime,
66+ it.productId,
67+ it.originalJson,
68+ it.dataSignature
69+ )
70+ finish()
71+ }
72+ purchaseCanceled {
73+ // User canceled the purchase
74+ paymentCallback?.onCancel()
75+ finish()
76+
77+ }
78+ purchaseFailed {
79+ paymentCallback?.onFailure(it.localizedMessage, it.stackTrace.joinToString(" \n " ))
80+ finish()
81+ }
5482 }
5583 }
5684
5785 private fun subscribeProduct () {
5886 PoolakeyKotlinBridge .payment.subscribeProduct(
59- this @PaymentActivity ,
60- PurchaseRequest (productId!! , REQUEST_CODE , payload, dynamicPriceToken)
87+ activityResultRegistry ,
88+ PurchaseRequest (productId!! , payload, dynamicPriceToken)
6189 ) {
6290 purchaseFlowBegan {
6391 // Bazaar's billing screen has opened successfully
@@ -76,34 +104,29 @@ class PaymentActivity : FragmentActivity() {
76104 finish()
77105 }
78106 }
79- }
80- }
81-
82- override fun onActivityResult (requestCode : Int , resultCode : Int , data : Intent ? ) {
83- super .onActivityResult(requestCode, resultCode, data)
84- PoolakeyKotlinBridge .payment.onActivityResult(requestCode, resultCode, data) {
85- purchaseSucceed { purchaseInfo ->
107+ purchaseSucceed {
86108 // User purchased the product
87109 paymentCallback?.onSuccess(
88- purchaseInfo .orderId,
89- purchaseInfo .purchaseToken,
90- purchaseInfo .payload,
91- purchaseInfo .packageName,
92- purchaseInfo .purchaseState.ordinal,
93- purchaseInfo .purchaseTime,
94- purchaseInfo .productId,
95- purchaseInfo .originalJson,
96- purchaseInfo .dataSignature
110+ it .orderId,
111+ it .purchaseToken,
112+ it .payload,
113+ it .packageName,
114+ it .purchaseState.ordinal,
115+ it .purchaseTime,
116+ it .productId,
117+ it .originalJson,
118+ it .dataSignature
97119 )
98120 finish()
99121 }
100122 purchaseCanceled {
101123 // User canceled the purchase
102124 paymentCallback?.onCancel()
103125 finish()
126+
104127 }
105- purchaseFailed { throwable ->
106- paymentCallback?.onFailure(throwable.message, throwable .stackTrace.joinToString(" \n " ))
128+ purchaseFailed {
129+ paymentCallback?.onFailure(it.localizedMessage, it .stackTrace.joinToString(" \n " ))
107130 finish()
108131 }
109132 }
@@ -115,7 +138,6 @@ class PaymentActivity : FragmentActivity() {
115138 }
116139
117140 companion object {
118-
119141 private const val REQUEST_CODE : Int = 1000
120142 private const val KEY_PRODUCT_ID = " productId"
121143 private const val KEY_PAYLOAD = " payload"
0 commit comments