@yuno-payments/yuno-sdk-react-native 1.0.17-rc.9 → 1.0.18
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.
- package/YunoSdk.podspec +1 -1
- package/android/build.gradle +1 -1
- package/android/src/main/java/com/yunosdkreactnative/YunoSdkModule.kt +77 -0
- package/ios/YunoSdk.m +9 -0
- package/ios/YunoSdk.podspec +1 -1
- package/ios/YunoSdk.swift +61 -0
- package/lib/commonjs/YunoSdk.js +46 -0
- package/lib/commonjs/YunoSdk.js.map +1 -1
- package/lib/commonjs/core/types/HeadlessTypes.js +4 -0
- package/lib/commonjs/core/types/HeadlessTypes.js.map +1 -1
- package/lib/module/YunoSdk.js +46 -0
- package/lib/module/YunoSdk.js.map +1 -1
- package/lib/module/core/types/HeadlessTypes.js +5 -0
- package/lib/module/core/types/HeadlessTypes.js.map +1 -1
- package/package.json +1 -1
- package/src/YunoSdk.ts +57 -0
- package/src/core/types/HeadlessTypes.ts +21 -0
- package/src/core/types/index.ts +3 -0
package/YunoSdk.podspec
CHANGED
package/android/build.gradle
CHANGED
|
@@ -107,7 +107,7 @@ dependencies {
|
|
|
107
107
|
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
|
|
108
108
|
|
|
109
109
|
// Yuno Android SDK
|
|
110
|
-
implementation "com.yuno.payments:android-sdk:2.
|
|
110
|
+
implementation "com.yuno.payments:android-sdk:2.8.1"
|
|
111
111
|
implementation "androidx.appcompat:appcompat:1.6.1"
|
|
112
112
|
|
|
113
113
|
// Jetpack Compose (required for YunoPaymentMethodsViewManager)
|
|
@@ -14,7 +14,10 @@ import com.yuno.sdk.payments.*
|
|
|
14
14
|
import com.yuno.sdk.ApiClientPayment
|
|
15
15
|
import com.yuno.sdk.ApiClientPayment.Companion.generateToken
|
|
16
16
|
import com.yuno.sdk.ApiClientPayment.Companion.getThreeDSecureChallenge
|
|
17
|
+
import com.yuno.sdk.ApiClientEnroll
|
|
18
|
+
import com.yuno.sdk.ApiClientEnroll.Companion.continueEnrollment
|
|
17
19
|
import com.yuno.sdk.payments.TokenCollectedData
|
|
20
|
+
import com.yuno.sdk.enrollment.EnrollmentCollectedData
|
|
18
21
|
import com.yuno.sdk.ThreeDSecureChallengeResponse
|
|
19
22
|
import com.yuno.presentation.core.components.PaymentSelected
|
|
20
23
|
import com.yuno.presentation.core.card.CardFormType
|
|
@@ -978,6 +981,80 @@ class YunoSdkModule(private val reactContext: ReactApplicationContext) :
|
|
|
978
981
|
}
|
|
979
982
|
}
|
|
980
983
|
|
|
984
|
+
// ==================== HEADLESS ENROLLMENT FLOW ====================
|
|
985
|
+
|
|
986
|
+
@ReactMethod
|
|
987
|
+
fun continueEnrollment(
|
|
988
|
+
enrollmentCollectedData: ReadableMap,
|
|
989
|
+
customerSession: String,
|
|
990
|
+
countryCode: String,
|
|
991
|
+
promise: Promise
|
|
992
|
+
) {
|
|
993
|
+
try {
|
|
994
|
+
Log.d(TAG, "continueEnrollment called with customerSession: $customerSession")
|
|
995
|
+
|
|
996
|
+
val activity = currentActivity
|
|
997
|
+
if (activity == null) {
|
|
998
|
+
promise.reject("ACTIVITY_UNAVAILABLE", "Current activity is null. Cannot continue enrollment.")
|
|
999
|
+
return
|
|
1000
|
+
}
|
|
1001
|
+
|
|
1002
|
+
// Convert ReadableMap to JSON String
|
|
1003
|
+
val jsonString = convertReadableMapToJson(enrollmentCollectedData)
|
|
1004
|
+
Log.d(TAG, "📦 EnrollmentCollectedData JSON received: $jsonString")
|
|
1005
|
+
|
|
1006
|
+
// Convert JSON String to EnrollmentCollectedData using Gson
|
|
1007
|
+
val gson = Gson()
|
|
1008
|
+
val collectedData = gson.fromJson(jsonString, EnrollmentCollectedData::class.java)
|
|
1009
|
+
|
|
1010
|
+
// Create API client for enrollment
|
|
1011
|
+
val apiClient = Yuno.apiClientEnroll(
|
|
1012
|
+
customerSession = customerSession,
|
|
1013
|
+
countryCode = countryCode,
|
|
1014
|
+
context = activity
|
|
1015
|
+
)
|
|
1016
|
+
|
|
1017
|
+
// Continue enrollment
|
|
1018
|
+
apiClient.continueEnrollment(collectedData, activity)
|
|
1019
|
+
.asFlow()
|
|
1020
|
+
.onEach { result ->
|
|
1021
|
+
try {
|
|
1022
|
+
when {
|
|
1023
|
+
result.containsKey("vaulted_token") && result["vaulted_token"] != null -> {
|
|
1024
|
+
val vaultedToken = result["vaulted_token"] as String
|
|
1025
|
+
Log.d(TAG, "✅ Vaulted token created successfully")
|
|
1026
|
+
|
|
1027
|
+
val response = Arguments.createMap().apply {
|
|
1028
|
+
putString("vaultedToken", vaultedToken)
|
|
1029
|
+
}
|
|
1030
|
+
promise.resolve(response)
|
|
1031
|
+
}
|
|
1032
|
+
result.containsKey("error") && result["error"] != null -> {
|
|
1033
|
+
val error = result["error"] as String
|
|
1034
|
+
Log.e(TAG, "❌ Enrollment failed: $error")
|
|
1035
|
+
promise.reject("ENROLLMENT_ERROR", error)
|
|
1036
|
+
}
|
|
1037
|
+
else -> {
|
|
1038
|
+
Log.e(TAG, "❌ Unknown response from enrollment")
|
|
1039
|
+
promise.reject("ENROLLMENT_ERROR", "Unknown error occurred")
|
|
1040
|
+
}
|
|
1041
|
+
}
|
|
1042
|
+
} catch (e: Exception) {
|
|
1043
|
+
Log.e(TAG, "❌ Error processing enrollment result: ${e.message}")
|
|
1044
|
+
promise.reject("ENROLLMENT_ERROR", e.message)
|
|
1045
|
+
}
|
|
1046
|
+
}
|
|
1047
|
+
.catch { e ->
|
|
1048
|
+
Log.e(TAG, "❌ Flow error during enrollment: ${e.message}")
|
|
1049
|
+
promise.reject("ENROLLMENT_FLOW_ERROR", e.message)
|
|
1050
|
+
}
|
|
1051
|
+
.launchIn(CoroutineScope(Dispatchers.Main))
|
|
1052
|
+
} catch (e: Exception) {
|
|
1053
|
+
Log.e(TAG, "❌ Error in continueEnrollment: ${e.message}")
|
|
1054
|
+
promise.reject("ENROLLMENT_ERROR", e.message)
|
|
1055
|
+
}
|
|
1056
|
+
}
|
|
1057
|
+
|
|
981
1058
|
/**
|
|
982
1059
|
* Helper function to convert ReadableMap to JSON string.
|
|
983
1060
|
*/
|
package/ios/YunoSdk.m
CHANGED
|
@@ -98,5 +98,14 @@ RCT_EXTERN_METHOD(
|
|
|
98
98
|
rejecter:(RCTPromiseRejectBlock)rejecter
|
|
99
99
|
)
|
|
100
100
|
|
|
101
|
+
// Headless Enrollment Flow
|
|
102
|
+
RCT_EXTERN_METHOD(
|
|
103
|
+
continueEnrollment:(NSDictionary *)enrollmentCollectedData
|
|
104
|
+
customerSession:(NSString *)customerSession
|
|
105
|
+
countryCode:(NSString *)countryCode
|
|
106
|
+
resolver:(RCTPromiseResolveBlock)resolver
|
|
107
|
+
rejecter:(RCTPromiseRejectBlock)rejecter
|
|
108
|
+
)
|
|
109
|
+
|
|
101
110
|
@end
|
|
102
111
|
|
package/ios/YunoSdk.podspec
CHANGED
package/ios/YunoSdk.swift
CHANGED
|
@@ -667,6 +667,67 @@ extension YunoSdk {
|
|
|
667
667
|
}
|
|
668
668
|
}
|
|
669
669
|
}
|
|
670
|
+
|
|
671
|
+
// MARK: - Headless Enrollment Flow
|
|
672
|
+
|
|
673
|
+
/**
|
|
674
|
+
* Continue enrollment to create a vaulted token from collected payment data.
|
|
675
|
+
* This method mirrors the native SDK's continueEnrollment() API.
|
|
676
|
+
*
|
|
677
|
+
* @param enrollmentCollectedData The enrollment data as NSDictionary
|
|
678
|
+
* @param customerSession The customer session ID
|
|
679
|
+
* @param countryCode The country code for the enrollment
|
|
680
|
+
* @param resolver Promise resolver
|
|
681
|
+
* @param rejecter Promise rejecter
|
|
682
|
+
*/
|
|
683
|
+
@objc
|
|
684
|
+
func continueEnrollment(
|
|
685
|
+
_ enrollmentCollectedData: NSDictionary,
|
|
686
|
+
customerSession: String,
|
|
687
|
+
countryCode: String,
|
|
688
|
+
resolver: @escaping RCTPromiseResolveBlock,
|
|
689
|
+
rejecter: @escaping RCTPromiseRejectBlock
|
|
690
|
+
) {
|
|
691
|
+
Task { @MainActor [weak self] in
|
|
692
|
+
guard let self = self else { return }
|
|
693
|
+
|
|
694
|
+
do {
|
|
695
|
+
// Convert NSDictionary to JSON Data
|
|
696
|
+
guard JSONSerialization.isValidJSONObject(enrollmentCollectedData) else {
|
|
697
|
+
rejecter("INVALID_DATA", "Invalid enrollment collected data", nil)
|
|
698
|
+
return
|
|
699
|
+
}
|
|
700
|
+
|
|
701
|
+
let jsonData = try JSONSerialization.data(withJSONObject: enrollmentCollectedData, options: [])
|
|
702
|
+
print("📦 EnrollmentCollectedData JSON sent to iOS SDK: \(String(data: jsonData, encoding: .utf8) ?? "Invalid JSON")")
|
|
703
|
+
|
|
704
|
+
// Decode to EnrollmentCollectedData using the native SDK's Codable model
|
|
705
|
+
let decoder = JSONDecoder()
|
|
706
|
+
let collectedData = try decoder.decode(EnrollmentCollectedData.self, from: jsonData)
|
|
707
|
+
|
|
708
|
+
// Create API client using the native SDK's factory method
|
|
709
|
+
let apiClient = Yuno.apiClientEnroll(
|
|
710
|
+
countryCode: countryCode,
|
|
711
|
+
customerSession: customerSession
|
|
712
|
+
)
|
|
713
|
+
|
|
714
|
+
// Continue enrollment using async/await (native SDK uses async throws)
|
|
715
|
+
let response = try await apiClient.continueEnrollment(data: collectedData)
|
|
716
|
+
|
|
717
|
+
// The native SDK returns [String: Any] with vaulted_token in "vaulted_token" key
|
|
718
|
+
if let vaultedToken = response["vaulted_token"] as? String {
|
|
719
|
+
let responseDict: [String: Any] = ["vaultedToken": vaultedToken]
|
|
720
|
+
resolver(responseDict)
|
|
721
|
+
} else if let error = response["error"] as? String {
|
|
722
|
+
rejecter("ENROLLMENT_ERROR", error, nil)
|
|
723
|
+
} else {
|
|
724
|
+
rejecter("ENROLLMENT_ERROR", "No vaulted token in response", nil)
|
|
725
|
+
}
|
|
726
|
+
} catch {
|
|
727
|
+
rejecter("ENROLLMENT_ERROR", "Failed to continue enrollment: \(error.localizedDescription)", error)
|
|
728
|
+
}
|
|
729
|
+
}
|
|
730
|
+
}
|
|
670
731
|
}
|
|
671
732
|
|
|
672
733
|
// Note: TokenCollectedData, CollectedData, CardData, and other related models
|
package/lib/commonjs/YunoSdk.js
CHANGED
|
@@ -563,6 +563,52 @@ class YunoSdk {
|
|
|
563
563
|
const country = countryCode || this.getCountryCode();
|
|
564
564
|
return native.getThreeDSecureChallenge(checkoutSession, country);
|
|
565
565
|
}
|
|
566
|
+
|
|
567
|
+
// ==================== HEADLESS ENROLLMENT FLOW ====================
|
|
568
|
+
|
|
569
|
+
/**
|
|
570
|
+
* Continue enrollment to create a vaulted token from collected payment data using the headless flow.
|
|
571
|
+
* This method allows you to save payment information without using the UI components.
|
|
572
|
+
*
|
|
573
|
+
* @param enrollmentCollectedData The enrollment data to process
|
|
574
|
+
* @param customerSession The customer session ID
|
|
575
|
+
* @param countryCode The country code for the enrollment (optional, uses initialized value if not provided)
|
|
576
|
+
* @returns Promise resolving to the vaulted token or rejecting with an error
|
|
577
|
+
*
|
|
578
|
+
* @example
|
|
579
|
+
* ```typescript
|
|
580
|
+
* import { YunoSdk, CardType } from '@yuno-payments/yuno-sdk-react-native';
|
|
581
|
+
*
|
|
582
|
+
* try {
|
|
583
|
+
* const result = await YunoSdk.continueEnrollment({
|
|
584
|
+
* customerSession: '73ed16c5-4481-4dce-af42-404b68e21027',
|
|
585
|
+
* paymentMethod: {
|
|
586
|
+
* type: 'CARD',
|
|
587
|
+
* card: {
|
|
588
|
+
* save: true,
|
|
589
|
+
* detail: {
|
|
590
|
+
* expirationMonth: 11,
|
|
591
|
+
* expirationYear: 25,
|
|
592
|
+
* number: '4000000000001091',
|
|
593
|
+
* securityCode: '123',
|
|
594
|
+
* holderName: 'John Doe',
|
|
595
|
+
* type: CardType.CREDIT,
|
|
596
|
+
* },
|
|
597
|
+
* },
|
|
598
|
+
* },
|
|
599
|
+
* }, 'customerSessionId', 'BR');
|
|
600
|
+
*
|
|
601
|
+
* console.log('Vaulted Token:', result.vaultedToken);
|
|
602
|
+
* } catch (error) {
|
|
603
|
+
* console.error('Enrollment failed:', error);
|
|
604
|
+
* }
|
|
605
|
+
* ```
|
|
606
|
+
*/
|
|
607
|
+
static async continueEnrollment(enrollmentCollectedData, customerSession, countryCode) {
|
|
608
|
+
const native = getYunoNative();
|
|
609
|
+
const country = countryCode || this.getCountryCode();
|
|
610
|
+
return native.continueEnrollment(enrollmentCollectedData, customerSession, country);
|
|
611
|
+
}
|
|
566
612
|
}
|
|
567
613
|
exports.YunoSdk = YunoSdk;
|
|
568
614
|
//# sourceMappingURL=YunoSdk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_enums","LINKING_ERROR","Platform","select","ios","default","getYunoNative","native","NativeModules","YunoSdk","Error","getYunoEventEmitter","NativeEventEmitter","countryCode","language","isInitialized","markAsInitialized","YunoLanguage","EN","initialize","params","apiKey","yunoConfig","iosConfig","androidConfig","config","lang","cardFlow","CardFlow","ONE_STEP","saveCardEnabled","keepLoader","isDynamicViewEnabled","cardFormDeployed","enrollmentPayment","checkInitialized","args","getCountryCode","startPaymentLite","code","startPayment","showPaymentStatus","continuePayment","checkoutSession","startPaymentSeamlessLite","statusString","getLanguage","hideLoader","receiveDeeplink","url","OS","console","warn","getLastOneTimeToken","getLastOneTimeTokenInfo","clearLastOneTimeToken","clearLastPaymentStatus","onPaymentStatus","listener","emitter","subscription","addListener","remove","onEnrollmentStatus","onOneTimeToken","onOneTimeTokenInfo","generateToken","tokenCollectedData","country","getThreeDSecureChallenge","exports"],"sourceRoot":"../../src","sources":["YunoSdk.ts"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_enums","LINKING_ERROR","Platform","select","ios","default","getYunoNative","native","NativeModules","YunoSdk","Error","getYunoEventEmitter","NativeEventEmitter","countryCode","language","isInitialized","markAsInitialized","YunoLanguage","EN","initialize","params","apiKey","yunoConfig","iosConfig","androidConfig","config","lang","cardFlow","CardFlow","ONE_STEP","saveCardEnabled","keepLoader","isDynamicViewEnabled","cardFormDeployed","enrollmentPayment","checkInitialized","args","getCountryCode","startPaymentLite","code","startPayment","showPaymentStatus","continuePayment","checkoutSession","startPaymentSeamlessLite","statusString","getLanguage","hideLoader","receiveDeeplink","url","OS","console","warn","getLastOneTimeToken","getLastOneTimeTokenInfo","clearLastOneTimeToken","clearLastPaymentStatus","onPaymentStatus","listener","emitter","subscription","addListener","remove","onEnrollmentStatus","onOneTimeToken","onOneTimeTokenInfo","generateToken","tokenCollectedData","country","getThreeDSecureChallenge","continueEnrollment","enrollmentCollectedData","customerSession","exports"],"sourceRoot":"../../src","sources":["YunoSdk.ts"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAeA,IAAAC,MAAA,GAAAD,OAAA;AAEA,MAAME,aAAa,GACjB,sFAAsF,GACtFC,qBAAQ,CAACC,MAAM,CAAC;EAAEC,GAAG,EAAE,uBAAuB;EAAEC,OAAO,EAAE;AAAG,CAAC,CAAC,GAC9D,sDAAsD,GACtD,+BAA+B;;AAEjC;AACA;AACA;AACA,SAASC,aAAaA,CAAA,EAAQ;EAC5B,MAAMC,MAAM,GAAGC,0BAAa,CAACC,OAAO;EACpC,IAAI,CAACF,MAAM,EAAE;IACX,MAAM,IAAIG,KAAK,CAACT,aAAa,CAAC;EAChC;EACA,OAAOM,MAAM;AACf;;AAEA;AACA;AACA;AACA;AACA,SAASI,mBAAmBA,CAAA,EAAuB;EACjD,MAAMJ,MAAM,GAAGD,aAAa,CAAC,CAAC;EAC9B,OAAO,IAAIM,+BAAkB,CAACL,MAAM,CAAC;AACvC;;AAEA;AACA;AACA;;AAQA;AACA;AACA;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAME,OAAO,CAAC;EACnB,OAAeI,WAAW,GAAkB,IAAI;EAChD,OAAeC,QAAQ,GAAwB,IAAI;EACnD,OAAeC,aAAa,GAAY,KAAK;;EAE7C;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,OAAOC,iBAAiBA,CACtBH,WAAmB,GAAG,IAAI,EAC1BC,QAAsB,GAAGG,mBAAY,CAACC,EAAE,EAClC;IACN,IAAI,CAACL,WAAW,GAAGA,WAAW;IAC9B,IAAI,CAACC,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACC,aAAa,GAAG,IAAI;EAC3B;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,aAAaI,UAAUA,CAACC,MAMvB,EAAiB;IAChB,MAAM;MACJC,MAAM;MACNR,WAAW;MACXS,UAAU,GAAG,CAAC,CAAC;MACfC,SAAS,GAAG,CAAC,CAAC;MACdC,aAAa,GAAG,CAAC;IACnB,CAAC,GAAGJ,MAAM;;IAEV;IACA,MAAMK,MAAkB,GAAG;MACzBC,IAAI,EAAEJ,UAAU,CAACI,IAAI,IAAIT,mBAAY,CAACC,EAAE;MACxCS,QAAQ,EAAEL,UAAU,CAACK,QAAQ,IAAIC,eAAQ,CAACC,QAAQ;MAClDC,eAAe,EAAER,UAAU,CAACQ,eAAe,IAAI,KAAK;MACpDC,UAAU,EAAET,UAAU,CAACS,UAAU,IAAI,KAAK;MAC1CC,oBAAoB,EAAEV,UAAU,CAACU,oBAAoB,IAAI,KAAK;MAC9DC,gBAAgB,EAAEX,UAAU,CAACW,gBAAgB,IAAI;IACnD,CAAC;;IAED;IACA,IAAI,CAACpB,WAAW,GAAGA,WAAW;IAC9B,IAAI,CAACC,QAAQ,GAAGW,MAAM,CAACC,IAAK;IAE5B,MAAMpB,aAAa,CAAC,CAAC,CAACa,UAAU,CAC9BE,MAAM,EACNR,WAAW,EACXY,MAAM,EACNF,SAAS,EACTC,aACF,CAAC;IAED,IAAI,CAACT,aAAa,GAAG,IAAI;EAC3B;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,aAAamB,iBAAiBA,CAACd,MAA2B,EAAiB;IACzE,IAAI,CAACe,gBAAgB,CAAC,CAAC;IAEvB,MAAMC,IAAI,GAAG;MACX,GAAGhB,MAAM;MACTP,WAAW,EAAEO,MAAM,CAACP,WAAW,IAAI,IAAI,CAACwB,cAAc,CAAC;IACzD,CAAC;IAED,OAAO/B,aAAa,CAAC,CAAC,CAAC4B,iBAAiB,CAACE,IAAI,CAAC;EAChD;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,aAAaE,gBAAgBA,CAC3BlB,MAAoB,EACpBP,WAAoB,EACL;IACf,IAAI,CAACsB,gBAAgB,CAAC,CAAC;IAEvB,MAAMI,IAAI,GAAG1B,WAAW,IAAI,IAAI,CAACwB,cAAc,CAAC,CAAC;IACjD,OAAO/B,aAAa,CAAC,CAAC,CAACgC,gBAAgB,CAAClB,MAAM,EAAEmB,IAAI,CAAC;EACvD;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,aAAaC,YAAYA,CAACC,iBAA0B,GAAG,IAAI,EAAiB;IAC1E,IAAI,CAACN,gBAAgB,CAAC,CAAC;IACvB,OAAO7B,aAAa,CAAC,CAAC,CAACkC,YAAY,CAACC,iBAAiB,CAAC;EACxD;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,aAAaC,eAAeA,CAC1BC,eAAuB,EACvB9B,WAAoB,EACpB4B,iBAA0B,GAAG,IAAI,EAClB;IACf,IAAI,CAACN,gBAAgB,CAAC,CAAC;IACvB,MAAMI,IAAI,GAAG1B,WAAW,IAAI,IAAI,CAACwB,cAAc,CAAC,CAAC;IACjD,OAAO/B,aAAa,CAAC,CAAC,CAACoC,eAAe,CACpCC,eAAe,EACfJ,IAAI,EACJE,iBACF,CAAC;EACH;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,aAAaG,wBAAwBA,CACnCxB,MAAyB,EACJ;IACrB,IAAI,CAACe,gBAAgB,CAAC,CAAC;IAEvB,MAAMC,IAAI,GAAG;MACX,GAAGhB,MAAM;MACTP,WAAW,EAAEO,MAAM,CAACP,WAAW,IAAI,IAAI,CAACwB,cAAc,CAAC;IACzD,CAAC;IAED,MAAMQ,YAAY,GAAG,MAAMvC,aAAa,CAAC,CAAC,CAACsC,wBAAwB,CACjER,IAAI,EACJ,IAAI,CAACU,WAAW,CAAC,CACnB,CAAC;IAED,OAAOD,YAAY;EACrB;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACE,aAAaE,UAAUA,CAAA,EAAkB;IACvC,IAAI,CAACZ,gBAAgB,CAAC,CAAC;IACvB,OAAO7B,aAAa,CAAC,CAAC,CAACyC,UAAU,CAAC,CAAC;EACrC;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,aAAaC,eAAeA,CAACC,GAAW,EAAiB;IACvD,IAAI/C,qBAAQ,CAACgD,EAAE,KAAK,KAAK,EAAE;MACzBC,OAAO,CAACC,IAAI,CAAC,0CAA0C,CAAC;MACxD;IACF;IAEA,IAAI,CAACjB,gBAAgB,CAAC,CAAC;IACvB,OAAO7B,aAAa,CAAC,CAAC,CAAC0C,eAAe,CAACC,GAAG,CAAC;EAC7C;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,aAAaI,mBAAmBA,CAAA,EAA2B;IACzD,OAAO/C,aAAa,CAAC,CAAC,CAAC+C,mBAAmB,CAAC,CAAC;EAC9C;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,aAAaC,uBAAuBA,CAAA,EAAqC;IACvE,OAAOhD,aAAa,CAAC,CAAC,CAACgD,uBAAuB,CAAC,CAAC;EAClD;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,aAAaC,qBAAqBA,CAAA,EAAkB;IAClD,OAAOjD,aAAa,CAAC,CAAC,CAACiD,qBAAqB,CAAC,CAAC;EAChD;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,aAAaC,sBAAsBA,CAAA,EAAkB;IACnD,OAAOlD,aAAa,CAAC,CAAC,CAACkD,sBAAsB,CAAC,CAAC;EACjD;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,OAAOC,eAAeA,CAACC,QAA2C,EAEhE;IACA,MAAMC,OAAO,GAAGhD,mBAAmB,CAAC,CAAC;IACrC,MAAMiD,YAAY,GAAGD,OAAO,CAACE,WAAW,CAAC,mBAAmB,EAAEH,QAAQ,CAAC;IACvE,OAAO;MAAEI,MAAM,EAAEA,CAAA,KAAMF,YAAY,CAACE,MAAM,CAAC;IAAE,CAAC;EAChD;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,OAAOC,kBAAkBA,CAACL,QAA8C,EAEtE;IACA,MAAMC,OAAO,GAAGhD,mBAAmB,CAAC,CAAC;IACrC,MAAMiD,YAAY,GAAGD,OAAO,CAACE,WAAW,CAAC,sBAAsB,EAAEH,QAAQ,CAAC;IAC1E,OAAO;MAAEI,MAAM,EAAEA,CAAA,KAAMF,YAAY,CAACE,MAAM,CAAC;IAAE,CAAC;EAChD;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,OAAOE,cAAcA,CAACN,QAAiC,EAErD;IACA,MAAMC,OAAO,GAAGhD,mBAAmB,CAAC,CAAC;IACrC,MAAMiD,YAAY,GAAGD,OAAO,CAACE,WAAW,CAAC,kBAAkB,EAAEH,QAAQ,CAAC;IACtE,OAAO;MAAEI,MAAM,EAAEA,CAAA,KAAMF,YAAY,CAACE,MAAM,CAAC;IAAE,CAAC;EAChD;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,OAAOG,kBAAkBA,CAACP,QAA+C,EAEvE;IACA,MAAMC,OAAO,GAAGhD,mBAAmB,CAAC,CAAC;IACrC,MAAMiD,YAAY,GAAGD,OAAO,CAACE,WAAW,CAAC,sBAAsB,EAAEH,QAAQ,CAAC;IAC1E,OAAO;MAAEI,MAAM,EAAEA,CAAA,KAAMF,YAAY,CAACE,MAAM,CAAC;IAAE,CAAC;EAChD;EAEA,OAAe3B,gBAAgBA,CAAA,EAAS;IACtC,IAAI,CAAC,IAAI,CAACpB,aAAa,EAAE;MACvB,MAAM,IAAIL,KAAK,CACb,8DACF,CAAC;IACH;EACF;EAEA,OAAe2B,cAAcA,CAAA,EAAW;IACtC,IAAI,CAAC,IAAI,CAACxB,WAAW,EAAE;MACrB,MAAM,IAAIH,KAAK,CAAC,wDAAwD,CAAC;IAC3E;IACA,OAAO,IAAI,CAACG,WAAW;EACzB;EAEA,OAAeiC,WAAWA,CAAA,EAAiB;IACzC,IAAI,CAAC,IAAI,CAAChC,QAAQ,EAAE;MAClB,MAAM,IAAIJ,KAAK,CAAC,oDAAoD,CAAC;IACvE;IACA,OAAO,IAAI,CAACI,QAAQ;EACtB;;EAEA;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,aAAaoD,aAAaA,CACxBC,kBAAsC,EACtCxB,eAAuB,EACvB9B,WAAoB,EACY;IAChC,MAAMN,MAAM,GAAGD,aAAa,CAAC,CAAC;IAC9B,MAAM8D,OAAO,GAAGvD,WAAW,IAAI,IAAI,CAACwB,cAAc,CAAC,CAAC;IAEpD,OAAO9B,MAAM,CAAC2D,aAAa,CAACC,kBAAkB,EAAExB,eAAe,EAAEyB,OAAO,CAAC;EAC3E;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,aAAaC,wBAAwBA,CACnC1B,eAAuB,EACvB9B,WAAoB,EACoB;IACxC,MAAMN,MAAM,GAAGD,aAAa,CAAC,CAAC;IAC9B,MAAM8D,OAAO,GAAGvD,WAAW,IAAI,IAAI,CAACwB,cAAc,CAAC,CAAC;IAEpD,OAAO9B,MAAM,CAAC8D,wBAAwB,CAAC1B,eAAe,EAAEyB,OAAO,CAAC;EAClE;;EAEA;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,aAAaE,kBAAkBA,CAC7BC,uBAAgD,EAChDC,eAAuB,EACvB3D,WAAoB,EACiB;IACrC,MAAMN,MAAM,GAAGD,aAAa,CAAC,CAAC;IAC9B,MAAM8D,OAAO,GAAGvD,WAAW,IAAI,IAAI,CAACwB,cAAc,CAAC,CAAC;IAEpD,OAAO9B,MAAM,CAAC+D,kBAAkB,CAC9BC,uBAAuB,EACvBC,eAAe,EACfJ,OACF,CAAC;EACH;AACF;AAACK,OAAA,CAAAhE,OAAA,GAAAA,OAAA","ignoreList":[]}
|
|
@@ -13,4 +13,8 @@ let CardType = exports.CardType = /*#__PURE__*/function (CardType) {
|
|
|
13
13
|
CardType["DEBIT"] = "DEBIT";
|
|
14
14
|
return CardType;
|
|
15
15
|
}({});
|
|
16
|
+
/**
|
|
17
|
+
* Headless Enrollment Flow Types
|
|
18
|
+
* These types mirror the native SDK's EnrollmentCollectedData structure
|
|
19
|
+
*/
|
|
16
20
|
//# sourceMappingURL=HeadlessTypes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["CardType","exports"],"sourceRoot":"../../../../src","sources":["core/types/HeadlessTypes.ts"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AAHA,IAKYA,QAAQ,GAAAC,OAAA,CAAAD,QAAA,0BAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAAA,OAARA,QAAQ;AAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["CardType","exports"],"sourceRoot":"../../../../src","sources":["core/types/HeadlessTypes.ts"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AAHA,IAKYA,QAAQ,GAAAC,OAAA,CAAAD,QAAA,0BAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAAA,OAARA,QAAQ;AAAA;AAqFpB;AACA;AACA;AACA","ignoreList":[]}
|
package/lib/module/YunoSdk.js
CHANGED
|
@@ -557,5 +557,51 @@ export class YunoSdk {
|
|
|
557
557
|
const country = countryCode || this.getCountryCode();
|
|
558
558
|
return native.getThreeDSecureChallenge(checkoutSession, country);
|
|
559
559
|
}
|
|
560
|
+
|
|
561
|
+
// ==================== HEADLESS ENROLLMENT FLOW ====================
|
|
562
|
+
|
|
563
|
+
/**
|
|
564
|
+
* Continue enrollment to create a vaulted token from collected payment data using the headless flow.
|
|
565
|
+
* This method allows you to save payment information without using the UI components.
|
|
566
|
+
*
|
|
567
|
+
* @param enrollmentCollectedData The enrollment data to process
|
|
568
|
+
* @param customerSession The customer session ID
|
|
569
|
+
* @param countryCode The country code for the enrollment (optional, uses initialized value if not provided)
|
|
570
|
+
* @returns Promise resolving to the vaulted token or rejecting with an error
|
|
571
|
+
*
|
|
572
|
+
* @example
|
|
573
|
+
* ```typescript
|
|
574
|
+
* import { YunoSdk, CardType } from '@yuno-payments/yuno-sdk-react-native';
|
|
575
|
+
*
|
|
576
|
+
* try {
|
|
577
|
+
* const result = await YunoSdk.continueEnrollment({
|
|
578
|
+
* customerSession: '73ed16c5-4481-4dce-af42-404b68e21027',
|
|
579
|
+
* paymentMethod: {
|
|
580
|
+
* type: 'CARD',
|
|
581
|
+
* card: {
|
|
582
|
+
* save: true,
|
|
583
|
+
* detail: {
|
|
584
|
+
* expirationMonth: 11,
|
|
585
|
+
* expirationYear: 25,
|
|
586
|
+
* number: '4000000000001091',
|
|
587
|
+
* securityCode: '123',
|
|
588
|
+
* holderName: 'John Doe',
|
|
589
|
+
* type: CardType.CREDIT,
|
|
590
|
+
* },
|
|
591
|
+
* },
|
|
592
|
+
* },
|
|
593
|
+
* }, 'customerSessionId', 'BR');
|
|
594
|
+
*
|
|
595
|
+
* console.log('Vaulted Token:', result.vaultedToken);
|
|
596
|
+
* } catch (error) {
|
|
597
|
+
* console.error('Enrollment failed:', error);
|
|
598
|
+
* }
|
|
599
|
+
* ```
|
|
600
|
+
*/
|
|
601
|
+
static async continueEnrollment(enrollmentCollectedData, customerSession, countryCode) {
|
|
602
|
+
const native = getYunoNative();
|
|
603
|
+
const country = countryCode || this.getCountryCode();
|
|
604
|
+
return native.continueEnrollment(enrollmentCollectedData, customerSession, country);
|
|
605
|
+
}
|
|
560
606
|
}
|
|
561
607
|
//# sourceMappingURL=YunoSdk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NativeModules","NativeEventEmitter","Platform","YunoLanguage","CardFlow","LINKING_ERROR","select","ios","default","getYunoNative","native","YunoSdk","Error","getYunoEventEmitter","countryCode","language","isInitialized","markAsInitialized","EN","initialize","params","apiKey","yunoConfig","iosConfig","androidConfig","config","lang","cardFlow","ONE_STEP","saveCardEnabled","keepLoader","isDynamicViewEnabled","cardFormDeployed","enrollmentPayment","checkInitialized","args","getCountryCode","startPaymentLite","code","startPayment","showPaymentStatus","continuePayment","checkoutSession","startPaymentSeamlessLite","statusString","getLanguage","hideLoader","receiveDeeplink","url","OS","console","warn","getLastOneTimeToken","getLastOneTimeTokenInfo","clearLastOneTimeToken","clearLastPaymentStatus","onPaymentStatus","listener","emitter","subscription","addListener","remove","onEnrollmentStatus","onOneTimeToken","onOneTimeTokenInfo","generateToken","tokenCollectedData","country","getThreeDSecureChallenge"],"sourceRoot":"../../src","sources":["YunoSdk.ts"],"mappings":"AAAA,SAASA,aAAa,EAAEC,kBAAkB,EAAEC,QAAQ,QAAQ,cAAc;
|
|
1
|
+
{"version":3,"names":["NativeModules","NativeEventEmitter","Platform","YunoLanguage","CardFlow","LINKING_ERROR","select","ios","default","getYunoNative","native","YunoSdk","Error","getYunoEventEmitter","countryCode","language","isInitialized","markAsInitialized","EN","initialize","params","apiKey","yunoConfig","iosConfig","androidConfig","config","lang","cardFlow","ONE_STEP","saveCardEnabled","keepLoader","isDynamicViewEnabled","cardFormDeployed","enrollmentPayment","checkInitialized","args","getCountryCode","startPaymentLite","code","startPayment","showPaymentStatus","continuePayment","checkoutSession","startPaymentSeamlessLite","statusString","getLanguage","hideLoader","receiveDeeplink","url","OS","console","warn","getLastOneTimeToken","getLastOneTimeTokenInfo","clearLastOneTimeToken","clearLastPaymentStatus","onPaymentStatus","listener","emitter","subscription","addListener","remove","onEnrollmentStatus","onOneTimeToken","onOneTimeTokenInfo","generateToken","tokenCollectedData","country","getThreeDSecureChallenge","continueEnrollment","enrollmentCollectedData","customerSession"],"sourceRoot":"../../src","sources":["YunoSdk.ts"],"mappings":"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EACrC;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,aAAaC,eAAeA,CAACC,GAAW,EAAiB;IACvD,IAAI9C,QAAQ,CAAC+C,EAAE,KAAK,KAAK,EAAE;MACzBC,OAAO,CAACC,IAAI,CAAC,0CAA0C,CAAC;MACxD;IACF;IAEA,IAAI,CAACjB,gBAAgB,CAAC,CAAC;IACvB,OAAOzB,aAAa,CAAC,CAAC,CAACsC,eAAe,CAACC,GAAG,CAAC;EAC7C;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,aAAaI,mBAAmBA,CAAA,EAA2B;IACzD,OAAO3C,aAAa,CAAC,CAAC,CAAC2C,mBAAmB,CAAC,CAAC;EAC9C;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,aAAaC,uBAAuBA,CAAA,EAAqC;IACvE,OAAO5C,aAAa,CAAC,CAAC,CAAC4C,uBAAuB,CAAC,CAAC;EAClD;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,aAAaC,qBAAqBA,CAAA,EAAkB;IAClD,OAAO7C,aAAa,CAAC,CAAC,CAAC6C,qBAAqB,CAAC,CAAC;EAChD;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,aAAaC,sBAAsBA,CAAA,EAAkB;IACnD,OAAO9C,aAAa,CAAC,CAAC,CAAC8C,sBAAsB,CAAC,CAAC;EACjD;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,OAAOC,eAAeA,CAACC,QAA2C,EAEhE;IACA,MAAMC,OAAO,GAAG7C,mBAAmB,CAAC,CAAC;IACrC,MAAM8C,YAAY,GAAGD,OAAO,CAACE,WAAW,CAAC,mBAAmB,EAAEH,QAAQ,CAAC;IACvE,O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","ignoreList":[]}
|
|
@@ -8,4 +8,9 @@ export let CardType = /*#__PURE__*/function (CardType) {
|
|
|
8
8
|
CardType["DEBIT"] = "DEBIT";
|
|
9
9
|
return CardType;
|
|
10
10
|
}({});
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Headless Enrollment Flow Types
|
|
14
|
+
* These types mirror the native SDK's EnrollmentCollectedData structure
|
|
15
|
+
*/
|
|
11
16
|
//# sourceMappingURL=HeadlessTypes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["CardType"],"sourceRoot":"../../../../src","sources":["core/types/HeadlessTypes.ts"],"mappings":"AAAA;AACA;AACA;AACA;;AAEA,WAAYA,QAAQ,0BAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAAA,OAARA,QAAQ;AAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["CardType"],"sourceRoot":"../../../../src","sources":["core/types/HeadlessTypes.ts"],"mappings":"AAAA;AACA;AACA;AACA;;AAEA,WAAYA,QAAQ,0BAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAAA,OAARA,QAAQ;AAAA;;AAqFpB;AACA;AACA;AACA","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yuno-payments/yuno-sdk-react-native",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.18",
|
|
4
4
|
"description": "Yuno React Native SDK empowers you to create seamless payment experiences in your native Android and iOS apps built with React Native.",
|
|
5
5
|
"main": "lib/commonjs/index",
|
|
6
6
|
"module": "lib/module/index",
|
package/src/YunoSdk.ts
CHANGED
|
@@ -10,6 +10,8 @@ import type {
|
|
|
10
10
|
TokenCollectedData,
|
|
11
11
|
HeadlessTokenResponse,
|
|
12
12
|
ThreeDSecureChallengeResponse,
|
|
13
|
+
EnrollmentCollectedData,
|
|
14
|
+
HeadlessEnrollmentResponse,
|
|
13
15
|
} from './core/types';
|
|
14
16
|
import { YunoStatus, YunoLanguage, CardFlow } from './core/enums';
|
|
15
17
|
|
|
@@ -635,4 +637,59 @@ export class YunoSdk {
|
|
|
635
637
|
|
|
636
638
|
return native.getThreeDSecureChallenge(checkoutSession, country);
|
|
637
639
|
}
|
|
640
|
+
|
|
641
|
+
// ==================== HEADLESS ENROLLMENT FLOW ====================
|
|
642
|
+
|
|
643
|
+
/**
|
|
644
|
+
* Continue enrollment to create a vaulted token from collected payment data using the headless flow.
|
|
645
|
+
* This method allows you to save payment information without using the UI components.
|
|
646
|
+
*
|
|
647
|
+
* @param enrollmentCollectedData The enrollment data to process
|
|
648
|
+
* @param customerSession The customer session ID
|
|
649
|
+
* @param countryCode The country code for the enrollment (optional, uses initialized value if not provided)
|
|
650
|
+
* @returns Promise resolving to the vaulted token or rejecting with an error
|
|
651
|
+
*
|
|
652
|
+
* @example
|
|
653
|
+
* ```typescript
|
|
654
|
+
* import { YunoSdk, CardType } from '@yuno-payments/yuno-sdk-react-native';
|
|
655
|
+
*
|
|
656
|
+
* try {
|
|
657
|
+
* const result = await YunoSdk.continueEnrollment({
|
|
658
|
+
* customerSession: '73ed16c5-4481-4dce-af42-404b68e21027',
|
|
659
|
+
* paymentMethod: {
|
|
660
|
+
* type: 'CARD',
|
|
661
|
+
* card: {
|
|
662
|
+
* save: true,
|
|
663
|
+
* detail: {
|
|
664
|
+
* expirationMonth: 11,
|
|
665
|
+
* expirationYear: 25,
|
|
666
|
+
* number: '4000000000001091',
|
|
667
|
+
* securityCode: '123',
|
|
668
|
+
* holderName: 'John Doe',
|
|
669
|
+
* type: CardType.CREDIT,
|
|
670
|
+
* },
|
|
671
|
+
* },
|
|
672
|
+
* },
|
|
673
|
+
* }, 'customerSessionId', 'BR');
|
|
674
|
+
*
|
|
675
|
+
* console.log('Vaulted Token:', result.vaultedToken);
|
|
676
|
+
* } catch (error) {
|
|
677
|
+
* console.error('Enrollment failed:', error);
|
|
678
|
+
* }
|
|
679
|
+
* ```
|
|
680
|
+
*/
|
|
681
|
+
static async continueEnrollment(
|
|
682
|
+
enrollmentCollectedData: EnrollmentCollectedData,
|
|
683
|
+
customerSession: string,
|
|
684
|
+
countryCode?: string
|
|
685
|
+
): Promise<HeadlessEnrollmentResponse> {
|
|
686
|
+
const native = getYunoNative();
|
|
687
|
+
const country = countryCode || this.getCountryCode();
|
|
688
|
+
|
|
689
|
+
return native.continueEnrollment(
|
|
690
|
+
enrollmentCollectedData,
|
|
691
|
+
customerSession,
|
|
692
|
+
country
|
|
693
|
+
);
|
|
694
|
+
}
|
|
638
695
|
}
|
|
@@ -87,3 +87,24 @@ export interface HeadlessTokenResponse {
|
|
|
87
87
|
token?: string;
|
|
88
88
|
error?: string;
|
|
89
89
|
}
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* Headless Enrollment Flow Types
|
|
93
|
+
* These types mirror the native SDK's EnrollmentCollectedData structure
|
|
94
|
+
*/
|
|
95
|
+
|
|
96
|
+
export interface EnrollmentMethod {
|
|
97
|
+
type: string;
|
|
98
|
+
card: CardData;
|
|
99
|
+
customer?: Customer;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
export interface EnrollmentCollectedData {
|
|
103
|
+
customerSession: string;
|
|
104
|
+
paymentMethod: EnrollmentMethod;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
export interface HeadlessEnrollmentResponse {
|
|
108
|
+
vaultedToken?: string;
|
|
109
|
+
error?: string;
|
|
110
|
+
}
|