diff --git a/android/build.gradle b/android/build.gradle index b1d451bbd..a0f288fbf 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -8,7 +8,7 @@ buildscript { } dependencies { - classpath 'com.android.tools.build:gradle:4.1.2' + classpath 'com.android.tools.build:gradle:4.2.1' // noinspection DifferentKotlinGradleVersion classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } @@ -131,7 +131,8 @@ dependencies { // noinspection GradleDynamicVersion api 'com.facebook.react:react-native:+' implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" - implementation 'com.stripe:stripe-android:16.10.2' + implementation "androidx.lifecycle:lifecycle-runtime-ktx:2.3.1" + implementation 'com.stripe:stripe-android:17.1.0' implementation 'com.google.android.material:material:1.3.0' implementation 'androidx.appcompat:appcompat:1.2.0' implementation 'androidx.legacy:legacy-support-v4:1.0.0' diff --git a/android/gradle.properties b/android/gradle.properties index 077eb1b31..0ca7aeb24 100644 --- a/android/gradle.properties +++ b/android/gradle.properties @@ -1,4 +1,4 @@ -StripeSdk_kotlinVersion=1.4.32 +StripeSdk_kotlinVersion=1.5.10 StripeSdk_compileSdkVersion=28 StripeSdk_buildToolsVersion=28.0.3 StripeSdk_targetSdkVersion=28 diff --git a/android/src/main/java/com/reactnativestripesdk/Mappers.kt b/android/src/main/java/com/reactnativestripesdk/Mappers.kt index c729aa2a0..d17557cf7 100644 --- a/android/src/main/java/com/reactnativestripesdk/Mappers.kt +++ b/android/src/main/java/com/reactnativestripesdk/Mappers.kt @@ -100,6 +100,7 @@ internal fun mapPaymentMethodType(type: PaymentMethod.Type?): String { PaymentMethod.Type.SepaDebit -> "SepaDebit" PaymentMethod.Type.Sofort -> "Sofort" PaymentMethod.Type.Upi -> "Upi" + PaymentMethod.Type.WeChatPay -> "WeChatPay" else -> "Unknown" } } @@ -124,6 +125,7 @@ internal fun mapToPaymentMethodType(type: String?): PaymentMethod.Type? { "SepaDebit" -> PaymentMethod.Type.SepaDebit "Sofort" -> PaymentMethod.Type.Sofort "Upi" -> PaymentMethod.Type.Upi + "WeChatPay" -> PaymentMethod.Type.WeChatPay else -> null } } diff --git a/android/src/main/java/com/reactnativestripesdk/PaymentMethodCreateParamsFactory.kt b/android/src/main/java/com/reactnativestripesdk/PaymentMethodCreateParamsFactory.kt index 917320c08..7a3a2ea24 100644 --- a/android/src/main/java/com/reactnativestripesdk/PaymentMethodCreateParamsFactory.kt +++ b/android/src/main/java/com/reactnativestripesdk/PaymentMethodCreateParamsFactory.kt @@ -3,7 +3,11 @@ package com.reactnativestripesdk import com.facebook.react.bridge.ReadableMap import com.stripe.android.model.* -class PaymentMethodCreateParamsFactory(private val clientSecret: String, private val params: ReadableMap, private val urlScheme: String?, cardParams: PaymentMethodCreateParams.Card?) { +class PaymentMethodCreateParamsFactory( + private val clientSecret: String, + private val params: ReadableMap, + cardParams: PaymentMethodCreateParams.Card? +) { private val billingDetailsParams = mapToBillingDetails(getMapOrNull(params, "billingDetails")) private val cardParams = cardParams @@ -58,7 +62,8 @@ class PaymentMethodCreateParamsFactory(private val clientSecret: String, private val bankName = getValOr(params, "bankName", null) val idealParams = PaymentMethodCreateParams.Ideal(bankName) - val createParams = PaymentMethodCreateParams.create(ideal = idealParams, billingDetails = billingDetailsParams) + val createParams = + PaymentMethodCreateParams.create(ideal = idealParams, billingDetails = billingDetailsParams) val setupFutureUsage = mapToPaymentIntentFutureUsage(getValOr(params, "setupFutureUsage")) return ConfirmPaymentIntentParams @@ -66,7 +71,6 @@ class PaymentMethodCreateParamsFactory(private val clientSecret: String, private paymentMethodCreateParams = createParams, clientSecret = clientSecret, setupFutureUsage = setupFutureUsage, - returnUrl = mapToReturnURL(urlScheme) ) } @@ -82,7 +86,6 @@ class PaymentMethodCreateParamsFactory(private val clientSecret: String, private .createWithPaymentMethodCreateParams( paymentMethodCreateParams = params, clientSecret = clientSecret, - returnUrl = mapToReturnURL(urlScheme) ) } @@ -99,14 +102,14 @@ class PaymentMethodCreateParamsFactory(private val clientSecret: String, private if (paymentMethodId != null) { val cvc = getValOr(params, "cvc", null) - val paymentMethodOptionParams = if (cvc != null) PaymentMethodOptionsParams.Card(cvc) else null + val paymentMethodOptionParams = + if (cvc != null) PaymentMethodOptionsParams.Card(cvc) else null return ConfirmPaymentIntentParams.createWithPaymentMethodId( paymentMethodId = paymentMethodId, paymentMethodOptions = paymentMethodOptionParams, clientSecret = clientSecret, setupFutureUsage = setupFutureUsage, - returnUrl = mapToReturnURL(urlScheme) ) } else { var card = cardParams @@ -119,7 +122,6 @@ class PaymentMethodCreateParamsFactory(private val clientSecret: String, private paymentMethodCreateParams = paymentMethodCreateParams, clientSecret = clientSecret, setupFutureUsage = setupFutureUsage, - returnUrl = mapToReturnURL(urlScheme) ) } } @@ -129,12 +131,12 @@ class PaymentMethodCreateParamsFactory(private val clientSecret: String, private val bankName = getValOr(params, "bankName", null) val idealParams = PaymentMethodCreateParams.Ideal(bankName) - val createParams = PaymentMethodCreateParams.create(ideal = idealParams, billingDetails = billingDetailsParams) + val createParams = + PaymentMethodCreateParams.create(ideal = idealParams, billingDetails = billingDetailsParams) return ConfirmSetupIntentParams.create( paymentMethodCreateParams = createParams, clientSecret = clientSecret, - returnUrl = mapToReturnURL(urlScheme) ) } @@ -148,7 +150,8 @@ class PaymentMethodCreateParamsFactory(private val clientSecret: String, private } val sepaParams = PaymentMethodCreateParams.SepaDebit(iban) - val createParams = PaymentMethodCreateParams.create(sepaDebit = sepaParams, billingDetails = billingDetails) + val createParams = + PaymentMethodCreateParams.create(sepaDebit = sepaParams, billingDetails = billingDetails) return ConfirmSetupIntentParams.create( paymentMethodCreateParams = createParams, @@ -158,7 +161,8 @@ class PaymentMethodCreateParamsFactory(private val clientSecret: String, private @Throws(PaymentMethodCreateParamsException::class) private fun createCardPaymentSetupParams(): ConfirmSetupIntentParams { - val paymentMethodCreateParams = PaymentMethodCreateParams.create(cardParams!!, billingDetailsParams) + val paymentMethodCreateParams = + PaymentMethodCreateParams.create(cardParams!!, billingDetailsParams) return ConfirmSetupIntentParams .create(paymentMethodCreateParams, clientSecret) } @@ -185,7 +189,6 @@ class PaymentMethodCreateParamsFactory(private val clientSecret: String, private paymentMethodCreateParams = params, clientSecret = clientSecret, setupFutureUsage = setupFutureUsage, - returnUrl = mapToReturnURL(urlScheme) ) } @@ -202,7 +205,6 @@ class PaymentMethodCreateParamsFactory(private val clientSecret: String, private return ConfirmSetupIntentParams.create( paymentMethodCreateParams = params, clientSecret = clientSecret, - returnUrl = mapToReturnURL(urlScheme) ) } @@ -215,7 +217,6 @@ class PaymentMethodCreateParamsFactory(private val clientSecret: String, private .createWithPaymentMethodCreateParams( paymentMethodCreateParams = params, clientSecret = clientSecret, - returnUrl = mapToReturnURL(urlScheme) ) } @@ -233,7 +234,6 @@ class PaymentMethodCreateParamsFactory(private val clientSecret: String, private paymentMethodCreateParams = params, clientSecret = clientSecret, setupFutureUsage = setupFutureUsage, - returnUrl = mapToReturnURL(urlScheme) ) } @@ -248,7 +248,6 @@ class PaymentMethodCreateParamsFactory(private val clientSecret: String, private .create( paymentMethodCreateParams = params, clientSecret = clientSecret, - returnUrl = mapToReturnURL(urlScheme) ) } @@ -264,7 +263,6 @@ class PaymentMethodCreateParamsFactory(private val clientSecret: String, private .createWithPaymentMethodCreateParams( paymentMethodCreateParams = params, clientSecret = clientSecret, - returnUrl = mapToReturnURL(urlScheme) ) } @@ -280,7 +278,6 @@ class PaymentMethodCreateParamsFactory(private val clientSecret: String, private .createWithPaymentMethodCreateParams( paymentMethodCreateParams = params, clientSecret = clientSecret, - returnUrl = mapToReturnURL(urlScheme) ) } @@ -296,7 +293,6 @@ class PaymentMethodCreateParamsFactory(private val clientSecret: String, private .createWithPaymentMethodCreateParams( paymentMethodCreateParams = params, clientSecret = clientSecret, - returnUrl = mapToReturnURL(urlScheme) ) } @@ -333,7 +329,6 @@ class PaymentMethodCreateParamsFactory(private val clientSecret: String, private .createWithPaymentMethodCreateParams( paymentMethodCreateParams = params, clientSecret = clientSecret, - returnUrl = mapToReturnURL(urlScheme) ) } @@ -349,7 +344,6 @@ class PaymentMethodCreateParamsFactory(private val clientSecret: String, private .createWithPaymentMethodCreateParams( paymentMethodCreateParams = params, clientSecret = clientSecret, - returnUrl = mapToReturnURL(urlScheme) ) } @@ -370,7 +364,10 @@ class PaymentMethodCreateParamsFactory(private val clientSecret: String, private .build() val params = PaymentMethodCreateParams.create( - auBecsDebit = PaymentMethodCreateParams.AuBecsDebit(bsbNumber = bsbNumber, accountNumber = accountNumber), + auBecsDebit = PaymentMethodCreateParams.AuBecsDebit( + bsbNumber = bsbNumber, + accountNumber = accountNumber + ), billingDetails = billingDetails ) @@ -378,7 +375,6 @@ class PaymentMethodCreateParamsFactory(private val clientSecret: String, private .createWithPaymentMethodCreateParams( paymentMethodCreateParams = params, clientSecret = clientSecret, - returnUrl = mapToReturnURL(urlScheme) ) } @@ -399,7 +395,10 @@ class PaymentMethodCreateParamsFactory(private val clientSecret: String, private .build() val params = PaymentMethodCreateParams.create( - auBecsDebit = PaymentMethodCreateParams.AuBecsDebit(bsbNumber = bsbNumber, accountNumber = accountNumber), + auBecsDebit = PaymentMethodCreateParams.AuBecsDebit( + bsbNumber = bsbNumber, + accountNumber = accountNumber + ), billingDetails = billingDetails ) @@ -407,7 +406,6 @@ class PaymentMethodCreateParamsFactory(private val clientSecret: String, private .create( paymentMethodCreateParams = params, clientSecret = clientSecret, - returnUrl = mapToReturnURL(urlScheme) ) } } diff --git a/android/src/main/java/com/reactnativestripesdk/StripeSdkModule.kt b/android/src/main/java/com/reactnativestripesdk/StripeSdkModule.kt index aa2e30e8b..f8dbdeb7a 100644 --- a/android/src/main/java/com/reactnativestripesdk/StripeSdkModule.kt +++ b/android/src/main/java/com/reactnativestripesdk/StripeSdkModule.kt @@ -9,12 +9,15 @@ import android.os.AsyncTask import android.os.Bundle import android.os.Parcelable import android.util.Log +import androidx.activity.ComponentActivity import androidx.appcompat.app.AppCompatActivity +import androidx.lifecycle.lifecycleScope import com.facebook.react.bridge.* import com.stripe.android.* import com.stripe.android.model.* import com.stripe.android.paymentsheet.PaymentSheetResult import com.stripe.android.view.AddPaymentMethodActivityStarter +import kotlinx.coroutines.launch import kotlinx.coroutines.runBlocking class StripeSdkModule(reactContext: ReactApplicationContext, cardFieldManager: StripeSdkCardViewManager) : ReactContextBaseJavaModule(reactContext) { @@ -308,11 +311,12 @@ class StripeSdkModule(reactContext: ReactApplicationContext, cardFieldManager: S private fun onFpxPaymentMethodResult(result: AddPaymentMethodActivityStarter.Result) { when (result) { is AddPaymentMethodActivityStarter.Result.Success -> { - stripe.confirmPayment(currentActivity!!, + val activity = currentActivity as ComponentActivity + + stripe.confirmPayment(activity, ConfirmPaymentIntentParams.createWithPaymentMethodId( result.paymentMethod.id!!, confirmPaymentClientSecret!!, - returnUrl = mapToReturnURL(urlScheme) )); } is AddPaymentMethodActivityStarter.Result.Failure -> { @@ -330,7 +334,7 @@ class StripeSdkModule(reactContext: ReactApplicationContext, cardFieldManager: S val billingDetailsParams = mapToBillingDetails(getMapOrNull(data, "billingDetails")) val instance = cardFieldManager.getCardViewInstance() val cardParams = instance?.cardParams ?: run { - promise.reject("Failed", "Card details not complete") + promise.resolve(createError("Failed", "Card details not complete")) return } val paymentMethodCreateParams = PaymentMethodCreateParams.create(cardParams, billingDetailsParams) @@ -358,23 +362,23 @@ class StripeSdkModule(reactContext: ReactApplicationContext, cardFieldManager: S } val address = getMapOrNull(params, "address") val instance = cardFieldManager.getCardViewInstance() - val cardParams = instance?.cardParams?.toParamMap() ?: run { + val cardParamsMap = instance?.cardParams?.toParamMap() ?: run { promise.resolve(createError(CreateTokenErrorType.Failed.toString(), "Card details not complete")) return } - val params = CardParams( - number = cardParams["number"] as String, - expMonth = cardParams["exp_month"] as Int, - expYear = cardParams["exp_year"] as Int, - cvc = cardParams["cvc"] as String, + val cardParams = CardParams( + number = cardParamsMap["number"] as String, + expMonth = cardParamsMap["exp_month"] as Int, + expYear = cardParamsMap["exp_year"] as Int, + cvc = cardParamsMap["cvc"] as String, address = mapToAddress(address), name = getValOr(params, "name", null) ) runBlocking { try { val token = stripe.createCardToken( - cardParams = params, + cardParams = cardParams, stripeAccountId = stripeAccountId ) promise.resolve(createResult("token", mapFromToken(token))) @@ -405,13 +409,31 @@ class StripeSdkModule(reactContext: ReactApplicationContext, cardFieldManager: S @ReactMethod fun handleCardAction(paymentIntentClientSecret: String, promise: Promise) { - val activity = currentActivity + val activity = currentActivity as ComponentActivity if (activity != null) { handleCardActionPromise = promise stripe.handleNextActionForPayment(activity, paymentIntentClientSecret) } } + private fun payWithWeChatPay(paymentIntentClientSecret: String, appId: String) { + val activity = currentActivity as ComponentActivity + + activity.lifecycleScope.launch { + stripe.createPaymentMethod(PaymentMethodCreateParams.createWeChatPay()).id?.let { paymentMethodId -> + val confirmPaymentIntentParams = + ConfirmPaymentIntentParams.createWithPaymentMethodId( + paymentMethodId = paymentMethodId, + clientSecret = paymentIntentClientSecret, + paymentMethodOptions = PaymentMethodOptionsParams.WeChatPay( + appId + ) + ) + stripe.confirmPayment(activity, confirmPaymentIntentParams) + } + } + } + @ReactMethod fun confirmPayment(paymentIntentClientSecret: String, params: ReadableMap, options: ReadableMap, promise: Promise) { confirmPromise = promise @@ -432,12 +454,23 @@ class StripeSdkModule(reactContext: ReactApplicationContext, cardFieldManager: S return } - val factory = PaymentMethodCreateParamsFactory(paymentIntentClientSecret, params, urlScheme, cardParams) + if (paymentMethodType == PaymentMethod.Type.WeChatPay) { + val appId = getValOr(params, "appId") ?: run { + promise.resolve(createError("Failed", "You must provide appId")) + return + } + payWithWeChatPay(paymentIntentClientSecret, appId) + + return + } + + val factory = PaymentMethodCreateParamsFactory(paymentIntentClientSecret, params, cardParams) try { + val activity = currentActivity as ComponentActivity val confirmParams = factory.createConfirmParams(paymentMethodType) confirmParams.shipping = mapToShippingDetails(getMapOrNull(params, "shippingDetails")) - stripe.confirmPayment(currentActivity!!, confirmParams) + stripe.confirmPayment(activity, confirmParams) } catch (error: PaymentMethodCreateParamsException) { promise.resolve(createError(ConfirmPaymentErrorType.Failed.toString(), error)) } @@ -479,11 +512,12 @@ class StripeSdkModule(reactContext: ReactApplicationContext, cardFieldManager: S return } - val factory = PaymentMethodCreateParamsFactory(setupIntentClientSecret, params, urlScheme, cardParams) + val factory = PaymentMethodCreateParamsFactory(setupIntentClientSecret, params, cardParams) try { + val activity = currentActivity as ComponentActivity val confirmParams = factory.createSetupParams(paymentMethodType) - stripe.confirmSetupIntent(currentActivity!!, confirmParams) + stripe.confirmSetupIntent(activity, confirmParams) } catch (error: PaymentMethodCreateParamsException) { promise.resolve(createError(ConfirmPaymentErrorType.Failed.toString(), error)) } diff --git a/e2e/payments.test.ts b/e2e/payments.test.ts index cc3366c0d..48c8837ec 100644 --- a/e2e/payments.test.ts +++ b/e2e/payments.test.ts @@ -17,6 +17,25 @@ describe('Example app payments scenarios (common)', () => { driver.reloadSession(); }); + it('WeChat pay payment scenario', function () { + this.retries(2); + homeScreen.goTo('Wallets'); + homeScreen.goTo('WeChat Pay'); + + $('~payment-screen').waitForDisplayed({ timeout: 15000 }); + + BasicPaymentScreen.pay({ email: 'test@stripe.com' }); + + const message = driver.isAndroid + ? 'WeChatPay registerApp fails' + : 'This PaymentIntent action requires an app, but the app is not either not installed or the request to open the app was denied.'; + const alert = getElementByText(message); + alert.waitForDisplayed({ + timeout: 10000, + }); + expect(alert.getText()).toEqual(message); + }); + it('BECS direct payment scenario', function () { this.retries(2); homeScreen.goTo('Bank Debits'); diff --git a/e2e/screenObject/HomeScreen.ts b/e2e/screenObject/HomeScreen.ts index 6ecd67fb4..84fc5ba6c 100644 --- a/e2e/screenObject/HomeScreen.ts +++ b/e2e/screenObject/HomeScreen.ts @@ -32,6 +32,7 @@ const SCREENS = [ 'Card element only', 'BECS Direct Debit payment', 'BECS Direct Debit set up', + 'WeChat Pay', ]; class HomeScreen { diff --git a/example/.env.example b/example/.env.example index 3c1b6d9b8..a281b5fcd 100644 --- a/example/.env.example +++ b/example/.env.example @@ -11,6 +11,9 @@ STRIPE_SECRET_KEY_MX=sk_test STRIPE_PUBLISHABLE_KEY_AU=pk_test STRIPE_SECRET_KEY_AU=sk_test +STRIPE_PUBLISHABLE_KEY_WECHAT=pk_test +STRIPE_SECRET_KEY_WECHAT=sk_test + # Required for webhook forwarding # See the README on how to do this with the Stripe CLI STRIPE_WEBHOOK_SECRET=whsec_ diff --git a/example/android/app/build.gradle b/example/android/app/build.gradle index 4773e80bb..1a9c122c7 100644 --- a/example/android/app/build.gradle +++ b/example/android/app/build.gradle @@ -191,6 +191,8 @@ dependencies { //noinspection GradleDynamicVersion implementation "com.facebook.react:react-native:+" // From node_modules implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.0.0" + implementation 'com.stripe:stripe-wechatpay:17.1.0' + implementation 'com.tencent.mm.opensdk:wechat-sdk-android-without-mta:6.7.0' debugImplementation("com.facebook.flipper:flipper:${FLIPPER_VERSION}") { exclude group:'com.facebook.fbjni' } diff --git a/example/android/build.gradle b/example/android/build.gradle index 89f229e8c..d97b4e768 100644 --- a/example/android/build.gradle +++ b/example/android/build.gradle @@ -12,7 +12,7 @@ buildscript { jcenter() } dependencies { - classpath('com.android.tools.build:gradle:4.1.2') + classpath('com.android.tools.build:gradle:4.2.1') // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files diff --git a/example/android/gradle.properties b/example/android/gradle.properties index 369dd639c..592708dd9 100644 --- a/example/android/gradle.properties +++ b/example/android/gradle.properties @@ -10,7 +10,7 @@ # Specifies the JVM arguments used for the daemon process. # The setting is particularly useful for tweaking memory settings. # Default value: -Xmx10248m -XX:MaxPermSize=256m -# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 + org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 # When configured, Gradle will run in incubating parallel mode. # This option should only be used with decoupled projects. More details, visit diff --git a/example/android/gradle/wrapper/gradle-wrapper.properties b/example/android/gradle/wrapper/gradle-wrapper.properties index 6885792c6..85dd13f53 100644 --- a/example/android/gradle/wrapper/gradle-wrapper.properties +++ b/example/android/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-all.zip diff --git a/example/ios/Podfile b/example/ios/Podfile index 8cce7ccae..82977436f 100644 --- a/example/ios/Podfile +++ b/example/ios/Podfile @@ -8,7 +8,7 @@ target 'StripeSdkExample' do use_react_native!(:path => config["reactNativePath"]) pod 'stripe-react-native', :path => '../..' - + pod 'Stripe', :git => 'https://github.com/stripe/stripe-ios.git', :branch => 'wechatpay-pm-beta' # Enables Flipper. # # Note that if you have use_frameworks! enabled, Flipper will not work and diff --git a/example/ios/Podfile.lock b/example/ios/Podfile.lock index 446206370..b6293a5ef 100644 --- a/example/ios/Podfile.lock +++ b/example/ios/Podfile.lock @@ -1,256 +1,278 @@ PODS: - boost-for-react-native (1.63.0) - DoubleConversion (1.1.6) - - FBLazyVector (0.63.4) - - FBReactNativeSpec (0.63.4): - - Folly (= 2020.01.13.00) - - RCTRequired (= 0.63.4) - - RCTTypeSafety (= 0.63.4) - - React-Core (= 0.63.4) - - React-jsi (= 0.63.4) - - ReactCommon/turbomodule/core (= 0.63.4) - - Folly (2020.01.13.00): + - FBLazyVector (0.64.2) + - FBReactNativeSpec (0.64.2): + - RCT-Folly (= 2020.01.13.00) + - RCTRequired (= 0.64.2) + - RCTTypeSafety (= 0.64.2) + - React-Core (= 0.64.2) + - React-jsi (= 0.64.2) + - ReactCommon/turbomodule/core (= 0.64.2) + - glog (0.3.5) + - RCT-Folly (2020.01.13.00): - boost-for-react-native - DoubleConversion - - Folly/Default (= 2020.01.13.00) - glog - - Folly/Default (2020.01.13.00): + - RCT-Folly/Default (= 2020.01.13.00) + - RCT-Folly/Default (2020.01.13.00): - boost-for-react-native - DoubleConversion - glog - - glog (0.3.5) - - RCTRequired (0.63.4) - - RCTTypeSafety (0.63.4): - - FBLazyVector (= 0.63.4) - - Folly (= 2020.01.13.00) - - RCTRequired (= 0.63.4) - - React-Core (= 0.63.4) - - React (0.63.4): - - React-Core (= 0.63.4) - - React-Core/DevSupport (= 0.63.4) - - React-Core/RCTWebSocket (= 0.63.4) - - React-RCTActionSheet (= 0.63.4) - - React-RCTAnimation (= 0.63.4) - - React-RCTBlob (= 0.63.4) - - React-RCTImage (= 0.63.4) - - React-RCTLinking (= 0.63.4) - - React-RCTNetwork (= 0.63.4) - - React-RCTSettings (= 0.63.4) - - React-RCTText (= 0.63.4) - - React-RCTVibration (= 0.63.4) - - React-callinvoker (0.63.4) - - React-Core (0.63.4): - - Folly (= 2020.01.13.00) + - RCTRequired (0.64.2) + - RCTTypeSafety (0.64.2): + - FBLazyVector (= 0.64.2) + - RCT-Folly (= 2020.01.13.00) + - RCTRequired (= 0.64.2) + - React-Core (= 0.64.2) + - React (0.64.2): + - React-Core (= 0.64.2) + - React-Core/DevSupport (= 0.64.2) + - React-Core/RCTWebSocket (= 0.64.2) + - React-RCTActionSheet (= 0.64.2) + - React-RCTAnimation (= 0.64.2) + - React-RCTBlob (= 0.64.2) + - React-RCTImage (= 0.64.2) + - React-RCTLinking (= 0.64.2) + - React-RCTNetwork (= 0.64.2) + - React-RCTSettings (= 0.64.2) + - React-RCTText (= 0.64.2) + - React-RCTVibration (= 0.64.2) + - React-callinvoker (0.64.2) + - React-Core (0.64.2): - glog - - React-Core/Default (= 0.63.4) - - React-cxxreact (= 0.63.4) - - React-jsi (= 0.63.4) - - React-jsiexecutor (= 0.63.4) + - RCT-Folly (= 2020.01.13.00) + - React-Core/Default (= 0.64.2) + - React-cxxreact (= 0.64.2) + - React-jsi (= 0.64.2) + - React-jsiexecutor (= 0.64.2) + - React-perflogger (= 0.64.2) - Yoga - - React-Core/CoreModulesHeaders (0.63.4): - - Folly (= 2020.01.13.00) + - React-Core/CoreModulesHeaders (0.64.2): - glog + - RCT-Folly (= 2020.01.13.00) - React-Core/Default - - React-cxxreact (= 0.63.4) - - React-jsi (= 0.63.4) - - React-jsiexecutor (= 0.63.4) + - React-cxxreact (= 0.64.2) + - React-jsi (= 0.64.2) + - React-jsiexecutor (= 0.64.2) + - React-perflogger (= 0.64.2) - Yoga - - React-Core/Default (0.63.4): - - Folly (= 2020.01.13.00) + - React-Core/Default (0.64.2): - glog - - React-cxxreact (= 0.63.4) - - React-jsi (= 0.63.4) - - React-jsiexecutor (= 0.63.4) + - RCT-Folly (= 2020.01.13.00) + - React-cxxreact (= 0.64.2) + - React-jsi (= 0.64.2) + - React-jsiexecutor (= 0.64.2) + - React-perflogger (= 0.64.2) - Yoga - - React-Core/DevSupport (0.63.4): - - Folly (= 2020.01.13.00) + - React-Core/DevSupport (0.64.2): - glog - - React-Core/Default (= 0.63.4) - - React-Core/RCTWebSocket (= 0.63.4) - - React-cxxreact (= 0.63.4) - - React-jsi (= 0.63.4) - - React-jsiexecutor (= 0.63.4) - - React-jsinspector (= 0.63.4) + - RCT-Folly (= 2020.01.13.00) + - React-Core/Default (= 0.64.2) + - React-Core/RCTWebSocket (= 0.64.2) + - React-cxxreact (= 0.64.2) + - React-jsi (= 0.64.2) + - React-jsiexecutor (= 0.64.2) + - React-jsinspector (= 0.64.2) + - React-perflogger (= 0.64.2) - Yoga - - React-Core/RCTActionSheetHeaders (0.63.4): - - Folly (= 2020.01.13.00) + - React-Core/RCTActionSheetHeaders (0.64.2): - glog + - RCT-Folly (= 2020.01.13.00) - React-Core/Default - - React-cxxreact (= 0.63.4) - - React-jsi (= 0.63.4) - - React-jsiexecutor (= 0.63.4) + - React-cxxreact (= 0.64.2) + - React-jsi (= 0.64.2) + - React-jsiexecutor (= 0.64.2) + - React-perflogger (= 0.64.2) - Yoga - - React-Core/RCTAnimationHeaders (0.63.4): - - Folly (= 2020.01.13.00) + - React-Core/RCTAnimationHeaders (0.64.2): - glog + - RCT-Folly (= 2020.01.13.00) - React-Core/Default - - React-cxxreact (= 0.63.4) - - React-jsi (= 0.63.4) - - React-jsiexecutor (= 0.63.4) + - React-cxxreact (= 0.64.2) + - React-jsi (= 0.64.2) + - React-jsiexecutor (= 0.64.2) + - React-perflogger (= 0.64.2) - Yoga - - React-Core/RCTBlobHeaders (0.63.4): - - Folly (= 2020.01.13.00) + - React-Core/RCTBlobHeaders (0.64.2): - glog + - RCT-Folly (= 2020.01.13.00) - React-Core/Default - - React-cxxreact (= 0.63.4) - - React-jsi (= 0.63.4) - - React-jsiexecutor (= 0.63.4) + - React-cxxreact (= 0.64.2) + - React-jsi (= 0.64.2) + - React-jsiexecutor (= 0.64.2) + - React-perflogger (= 0.64.2) - Yoga - - React-Core/RCTImageHeaders (0.63.4): - - Folly (= 2020.01.13.00) + - React-Core/RCTImageHeaders (0.64.2): - glog + - RCT-Folly (= 2020.01.13.00) - React-Core/Default - - React-cxxreact (= 0.63.4) - - React-jsi (= 0.63.4) - - React-jsiexecutor (= 0.63.4) + - React-cxxreact (= 0.64.2) + - React-jsi (= 0.64.2) + - React-jsiexecutor (= 0.64.2) + - React-perflogger (= 0.64.2) - Yoga - - React-Core/RCTLinkingHeaders (0.63.4): - - Folly (= 2020.01.13.00) + - React-Core/RCTLinkingHeaders (0.64.2): - glog + - RCT-Folly (= 2020.01.13.00) - React-Core/Default - - React-cxxreact (= 0.63.4) - - React-jsi (= 0.63.4) - - React-jsiexecutor (= 0.63.4) + - React-cxxreact (= 0.64.2) + - React-jsi (= 0.64.2) + - React-jsiexecutor (= 0.64.2) + - React-perflogger (= 0.64.2) - Yoga - - React-Core/RCTNetworkHeaders (0.63.4): - - Folly (= 2020.01.13.00) + - React-Core/RCTNetworkHeaders (0.64.2): - glog + - RCT-Folly (= 2020.01.13.00) - React-Core/Default - - React-cxxreact (= 0.63.4) - - React-jsi (= 0.63.4) - - React-jsiexecutor (= 0.63.4) + - React-cxxreact (= 0.64.2) + - React-jsi (= 0.64.2) + - React-jsiexecutor (= 0.64.2) + - React-perflogger (= 0.64.2) - Yoga - - React-Core/RCTSettingsHeaders (0.63.4): - - Folly (= 2020.01.13.00) + - React-Core/RCTSettingsHeaders (0.64.2): - glog + - RCT-Folly (= 2020.01.13.00) - React-Core/Default - - React-cxxreact (= 0.63.4) - - React-jsi (= 0.63.4) - - React-jsiexecutor (= 0.63.4) + - React-cxxreact (= 0.64.2) + - React-jsi (= 0.64.2) + - React-jsiexecutor (= 0.64.2) + - React-perflogger (= 0.64.2) - Yoga - - React-Core/RCTTextHeaders (0.63.4): - - Folly (= 2020.01.13.00) + - React-Core/RCTTextHeaders (0.64.2): - glog + - RCT-Folly (= 2020.01.13.00) - React-Core/Default - - React-cxxreact (= 0.63.4) - - React-jsi (= 0.63.4) - - React-jsiexecutor (= 0.63.4) + - React-cxxreact (= 0.64.2) + - React-jsi (= 0.64.2) + - React-jsiexecutor (= 0.64.2) + - React-perflogger (= 0.64.2) - Yoga - - React-Core/RCTVibrationHeaders (0.63.4): - - Folly (= 2020.01.13.00) + - React-Core/RCTVibrationHeaders (0.64.2): - glog + - RCT-Folly (= 2020.01.13.00) - React-Core/Default - - React-cxxreact (= 0.63.4) - - React-jsi (= 0.63.4) - - React-jsiexecutor (= 0.63.4) + - React-cxxreact (= 0.64.2) + - React-jsi (= 0.64.2) + - React-jsiexecutor (= 0.64.2) + - React-perflogger (= 0.64.2) - Yoga - - React-Core/RCTWebSocket (0.63.4): - - Folly (= 2020.01.13.00) + - React-Core/RCTWebSocket (0.64.2): - glog - - React-Core/Default (= 0.63.4) - - React-cxxreact (= 0.63.4) - - React-jsi (= 0.63.4) - - React-jsiexecutor (= 0.63.4) + - RCT-Folly (= 2020.01.13.00) + - React-Core/Default (= 0.64.2) + - React-cxxreact (= 0.64.2) + - React-jsi (= 0.64.2) + - React-jsiexecutor (= 0.64.2) + - React-perflogger (= 0.64.2) - Yoga - - React-CoreModules (0.63.4): - - FBReactNativeSpec (= 0.63.4) - - Folly (= 2020.01.13.00) - - RCTTypeSafety (= 0.63.4) - - React-Core/CoreModulesHeaders (= 0.63.4) - - React-jsi (= 0.63.4) - - React-RCTImage (= 0.63.4) - - ReactCommon/turbomodule/core (= 0.63.4) - - React-cxxreact (0.63.4): + - React-CoreModules (0.64.2): + - FBReactNativeSpec (= 0.64.2) + - RCT-Folly (= 2020.01.13.00) + - RCTTypeSafety (= 0.64.2) + - React-Core/CoreModulesHeaders (= 0.64.2) + - React-jsi (= 0.64.2) + - React-RCTImage (= 0.64.2) + - ReactCommon/turbomodule/core (= 0.64.2) + - React-cxxreact (0.64.2): - boost-for-react-native (= 1.63.0) - DoubleConversion - - Folly (= 2020.01.13.00) - glog - - React-callinvoker (= 0.63.4) - - React-jsinspector (= 0.63.4) - - React-jsi (0.63.4): + - RCT-Folly (= 2020.01.13.00) + - React-callinvoker (= 0.64.2) + - React-jsi (= 0.64.2) + - React-jsinspector (= 0.64.2) + - React-perflogger (= 0.64.2) + - React-runtimeexecutor (= 0.64.2) + - React-jsi (0.64.2): - boost-for-react-native (= 1.63.0) - DoubleConversion - - Folly (= 2020.01.13.00) - glog - - React-jsi/Default (= 0.63.4) - - React-jsi/Default (0.63.4): + - RCT-Folly (= 2020.01.13.00) + - React-jsi/Default (= 0.64.2) + - React-jsi/Default (0.64.2): - boost-for-react-native (= 1.63.0) - DoubleConversion - - Folly (= 2020.01.13.00) - glog - - React-jsiexecutor (0.63.4): + - RCT-Folly (= 2020.01.13.00) + - React-jsiexecutor (0.64.2): - DoubleConversion - - Folly (= 2020.01.13.00) - glog - - React-cxxreact (= 0.63.4) - - React-jsi (= 0.63.4) - - React-jsinspector (0.63.4) + - RCT-Folly (= 2020.01.13.00) + - React-cxxreact (= 0.64.2) + - React-jsi (= 0.64.2) + - React-perflogger (= 0.64.2) + - React-jsinspector (0.64.2) - react-native-config (1.4.2): - react-native-config/App (= 1.4.2) - react-native-config/App (1.4.2): - React-Core - react-native-safe-area-context (3.1.9): - React-Core - - React-RCTActionSheet (0.63.4): - - React-Core/RCTActionSheetHeaders (= 0.63.4) - - React-RCTAnimation (0.63.4): - - FBReactNativeSpec (= 0.63.4) - - Folly (= 2020.01.13.00) - - RCTTypeSafety (= 0.63.4) - - React-Core/RCTAnimationHeaders (= 0.63.4) - - React-jsi (= 0.63.4) - - ReactCommon/turbomodule/core (= 0.63.4) - - React-RCTBlob (0.63.4): - - FBReactNativeSpec (= 0.63.4) - - Folly (= 2020.01.13.00) - - React-Core/RCTBlobHeaders (= 0.63.4) - - React-Core/RCTWebSocket (= 0.63.4) - - React-jsi (= 0.63.4) - - React-RCTNetwork (= 0.63.4) - - ReactCommon/turbomodule/core (= 0.63.4) - - React-RCTImage (0.63.4): - - FBReactNativeSpec (= 0.63.4) - - Folly (= 2020.01.13.00) - - RCTTypeSafety (= 0.63.4) - - React-Core/RCTImageHeaders (= 0.63.4) - - React-jsi (= 0.63.4) - - React-RCTNetwork (= 0.63.4) - - ReactCommon/turbomodule/core (= 0.63.4) - - React-RCTLinking (0.63.4): - - FBReactNativeSpec (= 0.63.4) - - React-Core/RCTLinkingHeaders (= 0.63.4) - - React-jsi (= 0.63.4) - - ReactCommon/turbomodule/core (= 0.63.4) - - React-RCTNetwork (0.63.4): - - FBReactNativeSpec (= 0.63.4) - - Folly (= 2020.01.13.00) - - RCTTypeSafety (= 0.63.4) - - React-Core/RCTNetworkHeaders (= 0.63.4) - - React-jsi (= 0.63.4) - - ReactCommon/turbomodule/core (= 0.63.4) - - React-RCTSettings (0.63.4): - - FBReactNativeSpec (= 0.63.4) - - Folly (= 2020.01.13.00) - - RCTTypeSafety (= 0.63.4) - - React-Core/RCTSettingsHeaders (= 0.63.4) - - React-jsi (= 0.63.4) - - ReactCommon/turbomodule/core (= 0.63.4) - - React-RCTText (0.63.4): - - React-Core/RCTTextHeaders (= 0.63.4) - - React-RCTVibration (0.63.4): - - FBReactNativeSpec (= 0.63.4) - - Folly (= 2020.01.13.00) - - React-Core/RCTVibrationHeaders (= 0.63.4) - - React-jsi (= 0.63.4) - - ReactCommon/turbomodule/core (= 0.63.4) - - ReactCommon/turbomodule/core (0.63.4): + - React-perflogger (0.64.2) + - React-RCTActionSheet (0.64.2): + - React-Core/RCTActionSheetHeaders (= 0.64.2) + - React-RCTAnimation (0.64.2): + - FBReactNativeSpec (= 0.64.2) + - RCT-Folly (= 2020.01.13.00) + - RCTTypeSafety (= 0.64.2) + - React-Core/RCTAnimationHeaders (= 0.64.2) + - React-jsi (= 0.64.2) + - ReactCommon/turbomodule/core (= 0.64.2) + - React-RCTBlob (0.64.2): + - FBReactNativeSpec (= 0.64.2) + - RCT-Folly (= 2020.01.13.00) + - React-Core/RCTBlobHeaders (= 0.64.2) + - React-Core/RCTWebSocket (= 0.64.2) + - React-jsi (= 0.64.2) + - React-RCTNetwork (= 0.64.2) + - ReactCommon/turbomodule/core (= 0.64.2) + - React-RCTImage (0.64.2): + - FBReactNativeSpec (= 0.64.2) + - RCT-Folly (= 2020.01.13.00) + - RCTTypeSafety (= 0.64.2) + - React-Core/RCTImageHeaders (= 0.64.2) + - React-jsi (= 0.64.2) + - React-RCTNetwork (= 0.64.2) + - ReactCommon/turbomodule/core (= 0.64.2) + - React-RCTLinking (0.64.2): + - FBReactNativeSpec (= 0.64.2) + - React-Core/RCTLinkingHeaders (= 0.64.2) + - React-jsi (= 0.64.2) + - ReactCommon/turbomodule/core (= 0.64.2) + - React-RCTNetwork (0.64.2): + - FBReactNativeSpec (= 0.64.2) + - RCT-Folly (= 2020.01.13.00) + - RCTTypeSafety (= 0.64.2) + - React-Core/RCTNetworkHeaders (= 0.64.2) + - React-jsi (= 0.64.2) + - ReactCommon/turbomodule/core (= 0.64.2) + - React-RCTSettings (0.64.2): + - FBReactNativeSpec (= 0.64.2) + - RCT-Folly (= 2020.01.13.00) + - RCTTypeSafety (= 0.64.2) + - React-Core/RCTSettingsHeaders (= 0.64.2) + - React-jsi (= 0.64.2) + - ReactCommon/turbomodule/core (= 0.64.2) + - React-RCTText (0.64.2): + - React-Core/RCTTextHeaders (= 0.64.2) + - React-RCTVibration (0.64.2): + - FBReactNativeSpec (= 0.64.2) + - RCT-Folly (= 2020.01.13.00) + - React-Core/RCTVibrationHeaders (= 0.64.2) + - React-jsi (= 0.64.2) + - ReactCommon/turbomodule/core (= 0.64.2) + - React-runtimeexecutor (0.64.2): + - React-jsi (= 0.64.2) + - ReactCommon/turbomodule/core (0.64.2): - DoubleConversion - - Folly (= 2020.01.13.00) - glog - - React-callinvoker (= 0.63.4) - - React-Core (= 0.63.4) - - React-cxxreact (= 0.63.4) - - React-jsi (= 0.63.4) + - RCT-Folly (= 2020.01.13.00) + - React-callinvoker (= 0.64.2) + - React-Core (= 0.64.2) + - React-cxxreact (= 0.64.2) + - React-jsi (= 0.64.2) + - React-perflogger (= 0.64.2) - RNCMaskedView (0.1.10): - React - RNCPicker (1.15.0): @@ -261,23 +283,20 @@ PODS: - React-Core - RNScreens (2.15.0): - React-Core - - Stripe (21.7.0): - - Stripe/Stripe3DS2 (= 21.7.0) - - StripeCore (= 21.7.0) + - Stripe (21.5.1): + - Stripe/Stripe3DS2 (= 21.5.1) - stripe-react-native (0.1.5): - React - - Stripe (~> 21.7.0) - - Stripe/Stripe3DS2 (21.7.0): - - StripeCore (= 21.7.0) - - StripeCore (21.7.0) + - Stripe (~> 21.5.1) + - Stripe/Stripe3DS2 (21.5.1) - Yoga (1.14.0) DEPENDENCIES: - DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`) - FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`) - - FBReactNativeSpec (from `../node_modules/react-native/Libraries/FBReactNativeSpec`) - - Folly (from `../node_modules/react-native/third-party-podspecs/Folly.podspec`) + - FBReactNativeSpec (from `../node_modules/react-native/React/FBReactNativeSpec`) - glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`) + - RCT-Folly (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`) - RCTRequired (from `../node_modules/react-native/Libraries/RCTRequired`) - RCTTypeSafety (from `../node_modules/react-native/Libraries/TypeSafety`) - React (from `../node_modules/react-native/`) @@ -292,6 +311,7 @@ DEPENDENCIES: - React-jsinspector (from `../node_modules/react-native/ReactCommon/jsinspector`) - react-native-config (from `../node_modules/react-native-config`) - react-native-safe-area-context (from `../node_modules/react-native-safe-area-context`) + - React-perflogger (from `../node_modules/react-native/ReactCommon/reactperflogger`) - React-RCTActionSheet (from `../node_modules/react-native/Libraries/ActionSheetIOS`) - React-RCTAnimation (from `../node_modules/react-native/Libraries/NativeAnimation`) - React-RCTBlob (from `../node_modules/react-native/Libraries/Blob`) @@ -301,20 +321,20 @@ DEPENDENCIES: - React-RCTSettings (from `../node_modules/react-native/Libraries/Settings`) - React-RCTText (from `../node_modules/react-native/Libraries/Text`) - React-RCTVibration (from `../node_modules/react-native/Libraries/Vibration`) + - React-runtimeexecutor (from `../node_modules/react-native/ReactCommon/runtimeexecutor`) - ReactCommon/turbomodule/core (from `../node_modules/react-native/ReactCommon`) - "RNCMaskedView (from `../node_modules/@react-native-community/masked-view`)" - "RNCPicker (from `../node_modules/@react-native-picker/picker`)" - RNGestureHandler (from `../node_modules/react-native-gesture-handler`) - RNReanimated (from `../node_modules/react-native-reanimated`) - RNScreens (from `../node_modules/react-native-screens`) + - Stripe (from `https://github.com/stripe/stripe-ios.git`, branch `wechatpay-pm-beta`) - stripe-react-native (from `../..`) - Yoga (from `../node_modules/react-native/ReactCommon/yoga`) SPEC REPOS: trunk: - boost-for-react-native - - Stripe - - StripeCore EXTERNAL SOURCES: DoubleConversion: @@ -322,11 +342,11 @@ EXTERNAL SOURCES: FBLazyVector: :path: "../node_modules/react-native/Libraries/FBLazyVector" FBReactNativeSpec: - :path: "../node_modules/react-native/Libraries/FBReactNativeSpec" - Folly: - :podspec: "../node_modules/react-native/third-party-podspecs/Folly.podspec" + :path: "../node_modules/react-native/React/FBReactNativeSpec" glog: :podspec: "../node_modules/react-native/third-party-podspecs/glog.podspec" + RCT-Folly: + :podspec: "../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec" RCTRequired: :path: "../node_modules/react-native/Libraries/RCTRequired" RCTTypeSafety: @@ -351,6 +371,8 @@ EXTERNAL SOURCES: :path: "../node_modules/react-native-config" react-native-safe-area-context: :path: "../node_modules/react-native-safe-area-context" + React-perflogger: + :path: "../node_modules/react-native/ReactCommon/reactperflogger" React-RCTActionSheet: :path: "../node_modules/react-native/Libraries/ActionSheetIOS" React-RCTAnimation: @@ -369,6 +391,8 @@ EXTERNAL SOURCES: :path: "../node_modules/react-native/Libraries/Text" React-RCTVibration: :path: "../node_modules/react-native/Libraries/Vibration" + React-runtimeexecutor: + :path: "../node_modules/react-native/ReactCommon/runtimeexecutor" ReactCommon: :path: "../node_modules/react-native/ReactCommon" RNCMaskedView: @@ -381,50 +405,59 @@ EXTERNAL SOURCES: :path: "../node_modules/react-native-reanimated" RNScreens: :path: "../node_modules/react-native-screens" + Stripe: + :branch: wechatpay-pm-beta + :git: https://github.com/stripe/stripe-ios.git stripe-react-native: :path: "../.." Yoga: :path: "../node_modules/react-native/ReactCommon/yoga" +CHECKOUT OPTIONS: + Stripe: + :commit: c89caaff7f3bdf612461d407e01f7b64d2a429a1 + :git: https://github.com/stripe/stripe-ios.git + SPEC CHECKSUMS: boost-for-react-native: 39c7adb57c4e60d6c5479dd8623128eb5b3f0f2c DoubleConversion: cde416483dac037923206447da6e1454df403714 - FBLazyVector: 3bb422f41b18121b71783a905c10e58606f7dc3e - FBReactNativeSpec: f2c97f2529dd79c083355182cc158c9f98f4bd6e - Folly: b73c3869541e86821df3c387eb0af5f65addfab4 + FBLazyVector: e686045572151edef46010a6f819ade377dfeb4b + FBReactNativeSpec: 69dbb9ac6d6b54ac2fdece883108e6ac0ae85f81 glog: 40a13f7840415b9a77023fbcae0f1e6f43192af3 - RCTRequired: 082f10cd3f905d6c124597fd1c14f6f2655ff65e - RCTTypeSafety: 8c9c544ecbf20337d069e4ae7fd9a377aadf504b - React: b0a957a2c44da4113b0c4c9853d8387f8e64e615 - React-callinvoker: c3f44dd3cb195b6aa46621fff95ded79d59043fe - React-Core: d3b2a1ac9a2c13c3bcde712d9281fc1c8a5b315b - React-CoreModules: 0581ff36cb797da0943d424f69e7098e43e9be60 - React-cxxreact: c1480d4fda5720086c90df537ee7d285d4c57ac3 - React-jsi: a0418934cf48f25b485631deb27c64dc40fb4c31 - React-jsiexecutor: 93bd528844ad21dc07aab1c67cb10abae6df6949 - React-jsinspector: 58aef7155bc9a9683f5b60b35eccea8722a4f53a + RCT-Folly: ec7a233ccc97cc556cf7237f0db1ff65b986f27c + RCTRequired: 6d3e854f0e7260a648badd0d44fc364bc9da9728 + RCTTypeSafety: c1f31d19349c6b53085766359caac425926fafaa + React: bda6b6d7ae912de97d7a61aa5c160db24aa2ad69 + React-callinvoker: 9840ea7e8e88ed73d438edb725574820b29b5baa + React-Core: b5e385da7ce5f16a220fc60fd0749eae2c6120f0 + React-CoreModules: 17071a4e2c5239b01585f4aa8070141168ab298f + React-cxxreact: 9be7b6340ed9f7c53e53deca7779f07cd66525ba + React-jsi: 67747b9722f6dab2ffe15b011bcf6b3f2c3f1427 + React-jsiexecutor: 80c46bd381fd06e418e0d4f53672dc1d1945c4c3 + React-jsinspector: cc614ec18a9ca96fd275100c16d74d62ee11f0ae react-native-config: c98128a72bc2c3a1ca72caec0b021f0fa944aa29 react-native-safe-area-context: b6e0e284002381d2ff29fa4fff42b4d8282e3c94 - React-RCTActionSheet: 89a0ca9f4a06c1f93c26067af074ccdce0f40336 - React-RCTAnimation: 1bde3ecc0c104c55df246eda516e0deb03c4e49b - React-RCTBlob: a97d378b527740cc667e03ebfa183a75231ab0f0 - React-RCTImage: c1b1f2d3f43a4a528c8946d6092384b5c880d2f0 - React-RCTLinking: 35ae4ab9dc0410d1fcbdce4d7623194a27214fb2 - React-RCTNetwork: 29ec2696f8d8cfff7331fac83d3e893c95ef43ae - React-RCTSettings: 60f0691bba2074ef394f95d4c2265ec284e0a46a - React-RCTText: 5c51df3f08cb9dedc6e790161195d12bac06101c - React-RCTVibration: ae4f914cfe8de7d4de95ae1ea6cc8f6315d73d9d - ReactCommon: 73d79c7039f473b76db6ff7c6b159c478acbbb3b + React-perflogger: 25373e382fed75ce768a443822f07098a15ab737 + React-RCTActionSheet: af7796ba49ffe4ca92e7277a5d992d37203f7da5 + React-RCTAnimation: 6a2e76ab50c6f25b428d81b76a5a45351c4d77aa + React-RCTBlob: 02a2887023e0eed99391b6445b2e23a2a6f9226d + React-RCTImage: ce5bf8e7438f2286d9b646a05d6ab11f38b0323d + React-RCTLinking: ccd20742de14e020cb5f99d5c7e0bf0383aefbd9 + React-RCTNetwork: dfb9d089ab0753e5e5f55fc4b1210858f7245647 + React-RCTSettings: b14aef2d83699e48b410fb7c3ba5b66cd3291ae2 + React-RCTText: 41a2e952dd9adc5caf6fb68ed46b275194d5da5f + React-RCTVibration: 24600e3b1aaa77126989bc58b6747509a1ba14f3 + React-runtimeexecutor: a9904c6d0218fb9f8b19d6dd88607225927668f9 + ReactCommon: 149906e01aa51142707a10665185db879898e966 RNCMaskedView: 5a8ec07677aa885546a0d98da336457e2bea557f RNCPicker: 5256da29a92406cac439ac6605719e233714a86a RNGestureHandler: 7a5833d0f788dbd107fbb913e09aa0c1ff333c39 RNReanimated: e03f7425cb7a38dcf1b644d680d1bfc91c3337ad RNScreens: 2ad555d4d9fa10b91bb765ca07fe9b29d59573f0 - Stripe: 90596971ef49bade169f68bc59369a796b30a045 - stripe-react-native: f1b034cb702aa214078d9441b0a4313ac00c020d - StripeCore: c09b492efc3b269a6ff875ad738ca366db97e03b - Yoga: 4bd86afe9883422a7c4028c00e34790f560923d6 + Stripe: 515db5536fd659b5d79a0898ce1b882b61ab597e + stripe-react-native: 2910a88d5b292dab5e21bb0969d9913336498222 + Yoga: 575c581c63e0d35c9a83f4b46d01d63abc1100ac -PODFILE CHECKSUM: 0f58dfe67906daa74ee6ff868f720d3c1014bac9 +PODFILE CHECKSUM: 38d37b19cb1e0751ab057dacdb7fa28697bf391e COCOAPODS: 1.10.1 diff --git a/example/ios/StripeSdkExample/Info.plist b/example/ios/StripeSdkExample/Info.plist index 1d5f481fd..e6d54752c 100644 --- a/example/ios/StripeSdkExample/Info.plist +++ b/example/ios/StripeSdkExample/Info.plist @@ -32,6 +32,16 @@ stripe-example + + CFBundleTypeRole + Editor + CFBundleURLName + com.stripe.react.native + CFBundleURLSchemes + + weixin + + CFBundleVersion 1 diff --git a/example/package.json b/example/package.json index a5135a59c..b9fa84b55 100644 --- a/example/package.json +++ b/example/package.json @@ -36,6 +36,6 @@ "express": "^4.17.1", "metro-react-native-babel-preset": "^0.59.0", "path": "^0.12.7", - "stripe": "^8.0.1" + "stripe": "^8.161.0" } } diff --git a/example/server/index.ts b/example/server/index.ts index 07779aaeb..8a4f10b0b 100644 --- a/example/server/index.ts +++ b/example/server/index.ts @@ -60,6 +60,10 @@ function getKeys(payment_method?: string) { publishable_key = process.env.STRIPE_PUBLISHABLE_KEY_MX; secret_key = process.env.STRIPE_SECRET_KEY_MX; break; + case 'wechat_pay': + publishable_key = process.env.STRIPE_PUBLISHABLE_KEY_WECHAT; + secret_key = process.env.STRIPE_SECRET_KEY_WECHAT; + break; default: publishable_key = process.env.STRIPE_PUBLISHABLE_KEY; secret_key = process.env.STRIPE_SECRET_KEY; @@ -83,12 +87,14 @@ app.post( currency, request_three_d_secure, payment_method_types = [], + client = 'ios', }: { email: string; items: Order; currency: string; payment_method_types: string[]; request_three_d_secure: 'any' | 'automatic'; + client: 'ios' | 'android'; } = req.body; const { secret_key } = getKeys(payment_method_types[0]); @@ -111,14 +117,17 @@ app.post( sofort: { preferred_language: 'en', }, + wechat_pay: { + app_id: 'wx65907d6307c3827d', + client: client, + }, }, payment_method_types: payment_method_types, }; try { - const paymentIntent: Stripe.PaymentIntent = await stripe.paymentIntents.create( - params - ); + const paymentIntent: Stripe.PaymentIntent = + await stripe.paymentIntents.create(params); // Send publishable key and PaymentIntent client_secret to client. res.send({ clientSecret: paymentIntent.client_secret, @@ -187,9 +196,8 @@ app.post( customer: customers.data[0].id, }; - const paymentIntent: Stripe.PaymentIntent = await stripe.paymentIntents.create( - params - ); + const paymentIntent: Stripe.PaymentIntent = + await stripe.paymentIntents.create(params); // Send publishable key and PaymentIntent client_secret to client. res.send({ diff --git a/example/src/App.tsx b/example/src/App.tsx index 6bcdddbe2..fc915f87e 100644 --- a/example/src/App.tsx +++ b/example/src/App.tsx @@ -31,6 +31,7 @@ import P24PaymentScreen from './screens/P24PaymentScreen'; import AuBECSDebitPaymentScreen from './screens/AuBECSDebitPaymentScreen'; import AfterpayClearpayPaymentScreen from './screens/AfterpayClearpayPaymentScreen'; import AuBECSDebitSetupPaymentScreen from './screens/AuBECSDebitSetupPaymentScreen'; +import WeChatPaymentScreen from './screens/WeChatPaymentScreen'; const Stack = createStackNavigator(); @@ -151,6 +152,10 @@ export default function App() { name="AfterpayClearpayPaymentScreen" component={AfterpayClearpayPaymentScreen} /> + diff --git a/example/src/components/PaymentScreen.tsx b/example/src/components/PaymentScreen.tsx index e69327122..c87691239 100644 --- a/example/src/components/PaymentScreen.tsx +++ b/example/src/components/PaymentScreen.tsx @@ -18,7 +18,8 @@ const PaymentScreen: React.FC = ({ paymentMethod, children }) => { await initStripe({ publishableKey, merchantIdentifier: 'merchant.com.stripe.react.native', - urlScheme: 'stripe-example', + urlScheme: + paymentMethod === 'wechat_pay' ? undefined : 'stripe-example', setUrlSchemeOnAndroid: true, }); setLoading(false); diff --git a/example/src/screens/HomeScreen.tsx b/example/src/screens/HomeScreen.tsx index 9ae50bf9b..8bc252b09 100644 --- a/example/src/screens/HomeScreen.tsx +++ b/example/src/screens/HomeScreen.tsx @@ -277,6 +277,7 @@ export default function HomeScreen() { /> )} +