-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathReactNativeSdkPaymentModuleModule.kt
More file actions
73 lines (63 loc) · 2.31 KB
/
ReactNativeSdkPaymentModuleModule.kt
File metadata and controls
73 lines (63 loc) · 2.31 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
package com.lyracom.reactnativesdkpaymentmodule
import android.util.Log
import androidx.fragment.app.FragmentActivity
import com.facebook.react.bridge.Promise
import com.facebook.react.bridge.ReactApplicationContext
import com.facebook.react.bridge.ReadableMap
import com.facebook.react.bridge.WritableMap
import com.lyra.sdk.Lyra
import com.lyra.sdk.callback.LyraHandler
import com.lyra.sdk.callback.LyraResponse
import com.lyra.sdk.exception.LyraException
import com.lyra.sdk.exception.LyraMobException
import org.json.JSONException
class ReactNativeSdkPaymentModuleModule(reactContext: ReactApplicationContext) :
NativeReactNativeSdkPaymentModuleSpec(reactContext) {
private var lyraSDK: Lyra? = Lyra
private var context: ReactApplicationContext = reactContext
override fun getFormTokenVersion(): Double {
Log.d(name, "getFormTokenVersion")
return lyraSDK!!.getFormTokenVersion().toDouble()
}
override fun getSDKVersion(): String {
Log.d(name, "getSDKVersion")
return lyraSDK!!.getSDKVersion()
}
override fun initialize(publicKey: String, options: ReadableMap, promise: Promise) {
try {
lyraSDK!!.initialize(context.applicationContext, publicKey, options.toHashMap())
promise.resolve(null)
} catch (lyraMobException: LyraMobException) {
promise.reject(lyraMobException)
}
}
override fun process(formToken: String, options: ReadableMap, promise: Promise) {
Log.d(name, "process")
try{
lyraSDK!!.process((context.currentActivity as FragmentActivity).supportFragmentManager,
formToken, object : LyraHandler {
override fun onSuccess(lyraResponse: LyraResponse) {
var map: WritableMap? = null
try {
map = Util.convertJsonToMap(lyraResponse)
promise.resolve(map)
} catch (ex: JSONException) {
Log.e(name, ex.message, ex)
}
}
override fun onError(lyraException: LyraException, lyraResponse: LyraResponse?) {
promise.reject(lyraException)
}
}, options.toHashMap()
)
} catch(lyraMobException: LyraMobException){
promise.reject(lyraMobException)
}
}
override fun cancelProcess() {
lyraSDK!!.cancelProcess()
}
companion object {
const val NAME = NativeReactNativeSdkPaymentModuleSpec.NAME
}
}