diff --git a/MiaSample/app/build.gradle b/MiaSample/app/build.gradle index 26219c9..a72f056 100644 --- a/MiaSample/app/build.gradle +++ b/MiaSample/app/build.gradle @@ -13,7 +13,7 @@ android { compileSdkVersion 28 defaultConfig { applicationId "eu.nets.mia.sample" - minSdkVersion 22 + minSdkVersion 21 targetSdkVersion 28 versionCode Integer.parseInt(VERSION_CODE) versionName VERSION_NAME @@ -60,7 +60,7 @@ dependencies { implementation 'com.squareup.retrofit2:converter-gson:2.4.0' implementation 'org.nanohttpd:nanohttpd:2.3.1' - implementation('eu.nets.mia:mia-sdk:1.2.0@aar') { transitive = true; changing=true; } + implementation('eu.nets.mia:mia-sdk:1.2.1@aar') { transitive = true; changing=true; } } apply plugin: 'com.google.gms.google-services' diff --git a/MiaSample/app/gradle.properties b/MiaSample/app/gradle.properties index 6d700e0..9c131db 100644 --- a/MiaSample/app/gradle.properties +++ b/MiaSample/app/gradle.properties @@ -1,12 +1,11 @@ -#Tue Dec 18 16:17:08 EET 2018 -VERSION_NAME=1.2.0 -VERSION_CODE=22 -TEST_SECRET_KEY = "YOUR TEST SECRET KEY HERE" +#Tue Jun 02 08:47:08 EEST 2020 +PROD_BASE_URL="https\://api.dibspayment.eu/" +VERSION_NAME=1.2.1 +TEST_CHECKOUT_JS="https\://test.checkout.dibspayment.eu/v1/checkout.js?v\=1" +VERSION_CODE=26 +PROD_CHECKOUT_KEY = "YOUR PROD CHECKOUT KEY HERE" TEST_CHECKOUT_KEY ="YOUR TEST CHECKOUT KEY HERE" -TEST_BASE_URL = "https://test.api.dibspayment.eu/" -TEST_CHECKOUT_JS="https://test.checkout.dibspayment.eu/v1/checkout.js?v=1" - +PROD_CHECKOUT_JS="https\://checkout.dibspayment.eu/v1/checkout.js?v\=1" +TEST_SECRET_KEY = "YOUR TEST SECRET KEY HERE" +TEST_BASE_URL="https\://test.api.dibspayment.eu/" PROD_SECRET_KEY = "YOUR PROD SECRET KEY HERE" -PROD_CHECKOUT_KEY = "YOUR PROD CHECKOUT KEY HERE" -PROD_BASE_URL = "https://api.dibspayment.eu/" -PROD_CHECKOUT_JS = "https://checkout.dibspayment.eu/v1/checkout.js?v=1" \ No newline at end of file diff --git a/MiaSample/app/src/main/java/eu/nets/miasample/activity/MainActivity.kt b/MiaSample/app/src/main/java/eu/nets/miasample/activity/MainActivity.kt index 54169f3..9865aae 100644 --- a/MiaSample/app/src/main/java/eu/nets/miasample/activity/MainActivity.kt +++ b/MiaSample/app/src/main/java/eu/nets/miasample/activity/MainActivity.kt @@ -62,10 +62,13 @@ class MainActivity : AppCompatActivity(), MainActivityView { const val CURRENCY_SEK = "SEK" const val CURRENCY_DKK = "DKK" const val CURRENCY_NOK = "NOK" + const val CURRENCY_EUR = "EUR" + //end //integration types const val EASY_HOSTED_PAYMENT_WINDOW = "HostedPaymentPage" const val MERCHANT_HOSTED_PAYMENT_WINDOW = "EmbeddedCheckout" + //end //easy hosted payment window helper constants const val RETURN_URL = "http://localhost/redirect.php" @@ -74,6 +77,7 @@ class MainActivity : AppCompatActivity(), MainActivityView { const val CONSUMER_DATA_NONE = "None" const val CONSUMER_DATA_MERCHANT_INJECTED = "Injected by merchant" const val CONSUMER_DATA_NO_SHIPPING_ADDR = "No shipping address" + //end val SCREEN_SELECTED = "screen_selected" val SCREEN_PROFILE = "screen_profile" @@ -157,7 +161,8 @@ class MainActivity : AppCompatActivity(), MainActivityView { val currencies: List = ArrayList(Arrays.asList( CURRENCY_SEK, CURRENCY_DKK, - CURRENCY_NOK + CURRENCY_NOK, + CURRENCY_EUR )) val spinnerAdapter = CurrencyAdapter(this, android.R.layout.simple_spinner_item, currencies) diff --git a/MiaSample/app/src/main/java/eu/nets/miasample/network/interceptor/HeaderInterceptor.kt b/MiaSample/app/src/main/java/eu/nets/miasample/network/interceptor/HeaderInterceptor.kt index 24579ce..2e8286c 100644 --- a/MiaSample/app/src/main/java/eu/nets/miasample/network/interceptor/HeaderInterceptor.kt +++ b/MiaSample/app/src/main/java/eu/nets/miasample/network/interceptor/HeaderInterceptor.kt @@ -43,7 +43,10 @@ class HeaderInterceptor : Interceptor { builder.addHeader("Content-Type", "application/json") builder.addHeader("Authorization", APIManager.secretKey) - + /** + * @param commercePlatformTag This is critical to identify the platform from which the payment is initiated + */ + builder.addHeader("commercePlatformTag", "AndroidSDK") return builder.build() } diff --git a/README.md b/README.md index 09bbeef..1178fb3 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Easy - Android SDK v1.2.0 +# Easy - Android SDK v1.2.1 ---- ![Logo](readme-files/NetsLogo.jpg) @@ -18,7 +18,7 @@ MiA Easy Android SDK is a library which facilitates the Embedded DIBS Easy Check ---- In your `build.gradle` application level file, add: ```gradle -implementation('eu.nets.mia:mia-sdk:1.2.0') { transitive = true;} +implementation('eu.nets.mia:mia-sdk:1.2.1') { transitive = true;} ``` **Note:** the library is available through both `jcenter()` and `mavenCentral()` repositories. @@ -92,6 +92,21 @@ override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) } ``` +**IMPORTANT**: While making the API call for creating a payment or subscription, make sure you add **"commercePlatformTag" : "AndroidSDK"** in the request header. This is critical to identify the platform from which the payment is initiated. +```kotlin +private fun addHeader(request: Request): Request { + val builder = request.newBuilder().method(request.method(), request.body()) + + builder.addHeader("Content-Type", "application/json") + builder.addHeader("Authorization", APIManager.secretKey) + /** + * @param commercePlatformTag This is critical to identify the platform from which the payment is initiated + */ + builder.addHeader("commercePlatformTag", "AndroidSDK") + return builder.build() + } +``` + # Contact ---- If you have any question or feedback, please contact us via email: [mobile-acceptance@nets.eu](mailto:mobile-acceptance@nets.eu) diff --git a/ReactNative/react-native-rn-mia/android/build.gradle b/ReactNative/react-native-rn-mia/android/build.gradle index f57b6e3..7edfc7c 100644 --- a/ReactNative/react-native-rn-mia/android/build.gradle +++ b/ReactNative/react-native-rn-mia/android/build.gradle @@ -75,7 +75,7 @@ dependencies { implementation 'com.facebook.react:react-native:+' // From node_modules // Mia SDK - implementation 'eu.nets.mia:mia-sdk:1.2.0' + implementation 'eu.nets.mia:mia-sdk:1.2.1' } def configureReactNativePom(def pom) { diff --git a/Xamarin/DLL Files/MiASDKBinding.dll b/Xamarin/DLL Files/MiASDKBinding.dll index ae51b82..d7a05f7 100644 Binary files a/Xamarin/DLL Files/MiASDKBinding.dll and b/Xamarin/DLL Files/MiASDKBinding.dll differ diff --git a/apk/mia-sdk-android-release-sample-1.2.0.apk b/apk/mia-sdk-android-release-sample-1.2.1.apk similarity index 69% rename from apk/mia-sdk-android-release-sample-1.2.0.apk rename to apk/mia-sdk-android-release-sample-1.2.1.apk index 131d8f4..aa38f09 100644 Binary files a/apk/mia-sdk-android-release-sample-1.2.0.apk and b/apk/mia-sdk-android-release-sample-1.2.1.apk differ diff --git a/documentation/Start - Overview of MiA Android SDK.html b/documentation/Start - Overview of MiA Android SDK.html index 04f8967..fb1cb79 100644 --- a/documentation/Start - Overview of MiA Android SDK.html +++ b/documentation/Start - Overview of MiA Android SDK.html @@ -7,10 +7,10 @@

MiA - EASY Android SDK v1.2.0

  • Nets Easy technical documentation can be found here.
  • Nets Easy API documentation can be found here.
  • Nets Easy checkout guide (Re-direct) can be found here.
  • -
  • Easy - Android SDK can be found here.
  • +
  • Easy - iOS SDK can be found here.

  • Requirements:
    -Minimum compatible Android API version is 22 - Android 5.1 Lollipop. +Minimum compatible Android API version is 21 - Android 5.0 Lollipop.

    Table of contents:


    @@ -76,7 +76,7 @@

    Installation

  • Please add the following line in your application's build.gradle file.
  • dependencies {
    -	implementation('eu.nets.mia:mia-sdk:1.2.0') { transitive = true;}
    +	implementation('eu.nets.mia:mia-sdk:1.2.1') { transitive = true;}
     

    Getting started


    @@ -305,7 +305,25 @@

    Getting started

    "reservedAmount": 0 } -

    Important: Once a purchase is completed, the customer must receive a confirmation of the order and a receipt in the form of an on-screen-display and e-mail. Meaning that after you call Charge Payment, you already have the payment information retrieved at previous step, and display it to the user.

    +

    Important: +

    +

    Subscriptions (Recurring API)


    @@ -422,6 +440,21 @@

    Subscriptions ` in the request header. This is critical to identify the platform from which the payment is initiated.

    + +
     override fun addHeader(request: Request): Request {
    +      val builder = request.newBuilder().method(request.method(), request.body())
    +		builder.addHeader("Content-Type", "application/json")
    +		builder.addHeader("Authorization", APIManager.secretKey)
    +		/**
    +		 * @param commercePlatformTag This is critical to identify the platform from which the payment is initiated
    +		 */
    +		builder.addHeader("commercePlatformTag", "AndroidSDK")
    +		return builder.build()
    +    }
    +
    + +

    After creating a subscription, merchant is responsible for storing and managing the subscription.

    (Note that the MiaSample app stores subscriptions in the device for demo purposes but we recommend your app backend for storage)

    @@ -493,6 +526,12 @@

    Release notes:

  • Added a shared React Native wrapper for both iOS and Android SDK integration.
  • +

    v1.2.1 Released: 25-Jan-2021

    +

    Release notes:

    + +

    Note: