From 11ac8e25c250732753e033886f44c9b9c622ede0 Mon Sep 17 00:00:00 2001 From: Nazli Yurdakul Date: Mon, 1 Apr 2024 23:08:37 -0400 Subject: [PATCH 1/2] add metadata field to payment intent --- .../main/java/com/stripeterminalreactnative/Mappers.kt | 8 ++++++++ dev-app/android/build.gradle | 2 +- example-app/android/build.gradle | 2 +- ios/Mappers.swift | 7 ++++++- src/types/PaymentIntent.ts | 1 + 5 files changed, 17 insertions(+), 3 deletions(-) diff --git a/android/src/main/java/com/stripeterminalreactnative/Mappers.kt b/android/src/main/java/com/stripeterminalreactnative/Mappers.kt index 2c9e7493..fbc7e398 100644 --- a/android/src/main/java/com/stripeterminalreactnative/Mappers.kt +++ b/android/src/main/java/com/stripeterminalreactnative/Mappers.kt @@ -180,6 +180,14 @@ internal fun mapFromPaymentIntent(paymentIntent: PaymentIntent, uuid: String): R putString("sdkUuid", uuid) putString("paymentMethodId", paymentIntent.paymentMethodId) putMap("offlineDetails", mapFromOfflineDetails(paymentIntent?.offlineDetails)) + putMap( + "metadata", + nativeMapOf { + paymentIntent.metadata?.map { + putString(it.key, it.value) + } + } + ) } internal fun mapFromSetupIntent(setupIntent: SetupIntent, uuid: String): ReadableMap = nativeMapOf { diff --git a/dev-app/android/build.gradle b/dev-app/android/build.gradle index 92aac670..23f540ef 100644 --- a/dev-app/android/build.gradle +++ b/dev-app/android/build.gradle @@ -4,7 +4,7 @@ import org.apache.tools.ant.taskdefs.condition.Os buildscript { ext { - buildToolsVersion = "33.0.0" + buildToolsVersion = "33.0.1" minSdkVersion = 26 compileSdkVersion = 34 targetSdkVersion = 33 diff --git a/example-app/android/build.gradle b/example-app/android/build.gradle index 088ca7d0..5dd5d0b4 100644 --- a/example-app/android/build.gradle +++ b/example-app/android/build.gradle @@ -2,7 +2,7 @@ buildscript { ext { - buildToolsVersion = findProperty('android.buildToolsVersion') ?: '33.0.0' + buildToolsVersion = findProperty('android.buildToolsVersion') ?: '33.0.1' minSdkVersion = Integer.parseInt(findProperty('android.minSdkVersion') ?: '26') compileSdkVersion = Integer.parseInt(findProperty('android.compileSdkVersion') ?: '34') targetSdkVersion = Integer.parseInt(findProperty('android.targetSdkVersion') ?: '33') diff --git a/ios/Mappers.swift b/ios/Mappers.swift index ccaebef7..cf378d13 100644 --- a/ios/Mappers.swift +++ b/ios/Mappers.swift @@ -144,6 +144,10 @@ class Mappers { if let offlineDetails = paymentIntent.offlineDetails { offlineDetailsMap = mapFromOfflineDetails(offlineDetails) } + var metadataMap: NSDictionary? + if let refundMetadata = paymentIntent.metadata { + metadataMap = NSDictionary(dictionary: refundMetadata) + } let result: NSDictionary = [ "amount": paymentIntent.amount, "charges": mapFromCharges(paymentIntent.charges), @@ -153,7 +157,8 @@ class Mappers { "id": paymentIntent.stripeId, "sdkUuid": uuid, "paymentMethodId": paymentIntent.paymentMethodId, - "offlineDetails": offlineDetailsMap ?? NSNull() + "offlineDetails": offlineDetailsMap ?? NSNull(), + "metadata": metadataMap ?? NSNull(), ] return result } diff --git a/src/types/PaymentIntent.ts b/src/types/PaymentIntent.ts index 192d2495..09b54d77 100644 --- a/src/types/PaymentIntent.ts +++ b/src/types/PaymentIntent.ts @@ -12,6 +12,7 @@ export namespace PaymentIntent { paymentMethodId: string; paymentMethod: PaymentMethod.Type; offlineDetails: OfflineDetails; + metadata: Record; } export type Status = From 0af8410c38c94f08bd17c7c97a108ef16bd1f1d0 Mon Sep 17 00:00:00 2001 From: Nazli Yurdakul Date: Tue, 2 Apr 2024 14:27:18 -0400 Subject: [PATCH 2/2] fix metadata param name --- ios/Mappers.swift | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ios/Mappers.swift b/ios/Mappers.swift index cf378d13..a3c746bc 100644 --- a/ios/Mappers.swift +++ b/ios/Mappers.swift @@ -145,8 +145,8 @@ class Mappers { offlineDetailsMap = mapFromOfflineDetails(offlineDetails) } var metadataMap: NSDictionary? - if let refundMetadata = paymentIntent.metadata { - metadataMap = NSDictionary(dictionary: refundMetadata) + if let paymentMetadata = paymentIntent.metadata { + metadataMap = NSDictionary(dictionary: paymentMetadata) } let result: NSDictionary = [ "amount": paymentIntent.amount, @@ -515,7 +515,7 @@ class Mappers { default: return "unknown" } } - + class func mapFromCardPresentDetailsNetwork(_ type: NSNumber) -> String { switch type { case 0: return "visa"