3DS SDK + Simulator
Todo Java Script
iOS
Configure the 3DS service with test mode
In order to test 3D Secure 2 transactions with a simulator, additional configuration steps are required:- Add custom
OPPThreeDSSchemeConfig
to the 3DS service for each brand you want to test. It should be done before the initialization step. - Initialize 3DS service with TEST mode.
-----BEGIN CERTIFICATE----- MIICqjCCAZKgAwIBAgIBATANBgkqhkiG9w0BAQsFADAaMRgwFgYDVQQDEw9uc29mdHdhcmUu RFMuQ0EwHhcNMTkwOTI2MDYyODAzWhcNMjkwOTIzMDYyODAzWjAXMRUwEwYDVQQDEwxuc29m dHdhcmUuRFMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCr4I/vgMlFLpwVY+de 6YTtpyMtFzRIriZ+bmqmaML+qz49HvKO4+2lrZC1sBo74xPbupq7Zfq5c4UWbyGIjqNWdNKa XsSJz+RKyjCaNEF6B3rBeltaeBXuJVZ+oF+Q4zt0UI2WFSY4iE67babR0ep3/GNdSEQKHIV9 oHI1cJsE9/qDrrPqzQnpPI+FdyyEqhi2TfiyWv3kzrEO6Rfxnqila5k5UXLUjrej1gwnhgbs Bp+EADxRmcJcmcnWsPOqBgyLthXlFv13f9PZIuDiRIBYqEV9SZZtgr/lBEnYkUb5jaYQd6+n YXZ7Q0+kdxDYLS0crrBgaRFdcsJgVimni7JTAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAH65 NrUSJzDZqcsdsbH3igZQdDetM0IEKOFrunYA0XR4F+aViHOtExoM8FRFYWexxyU85UY8gRin eJLkR379JCWVqMNholDWLpT9SYCN8q1eGFJpCT46vB0qxvQ25V71KWKp78uDfAlgJ4Hm0sUa yP22oMFZQ9lgAygWG9TR4wkG+KFz/R0LzeXK3V+yJpN9IxG0VCbTF1RIlZp0p77gI7hXWuk+ ATJeKSbbT89KChbR4VKJesGfZ5VEKmnR2npK/mfSY7qtRH7Ha7zDG8CArX4qiFkX7UfwFcj7 FmXgZrNTvx5AUJ/XYXz71AE8v1uYyzM5kZuXoyAxXXskb7Rji4s= -----END CERTIFICATE-----
Directory server CA public certificate (root):
-----BEGIN CERTIFICATE----- MIICrjCCAZagAwIBAgICAN4wDQYJKoZIhvcNAQELBQAwGjEYMBYGA1UEAxMPbnNvZnR3YXJl LkRTLkNBMB4XDTE5MDkyNjA2Mjc1NVoXDTI5MDkyMzA2Mjc1NVowGjEYMBYGA1UEAxMPbnNv ZnR3YXJlLkRTLkNBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzqLKOH7g1+Y5 2wrWnI+n0/XywW3cJECSWT3li5dJiKepSKQ72ni5coZRCLklZaoNeMz9/WLg20fXpqV708zZ J6mCyS9art8DwK4i2u3StK5ehCBcz/YuX+C+jYySE2Zi6QxA4PC6UiR89aKoJKX+rJF8Bcys q7v5ky+embGCMpUU2jZ3GNKGeZXTqWlXY6verHVRoq3Ynn2In9D4r67CFQ1e3kfxEVWkr+WA Zsw/HSWq6u3OBnz7gwTCr4dqztMJIoYgKm70fzbmCr5uCdcSg5ix/GfmTfcTgB305qCjOJj3 d/BiVl5bV5ORtGnFB7caJ/aXuRNv5gPaigpBAMUzFwIDAQABMA0GCSqGSIb3DQEBCwUAA4IB AQDDgjtqXF8D3C9oBS5t2ydjLdswDj+goTadXNNu+P90kJcWVnGFR6D/z2FUvHRD4QEI1QTV r5VIy/GDZZ2fFCk9tEWjNbWDBEwxSWNxtMX7m7eTRtWlOBIm4AJOmmoNHj3jTQcxzAmQmHAr yuNvk4r43UdjDo/kKQXEo3W0D4mULrbQBman5FcO3vOuc4PMKLZd3SCrHg5g8Novx8zSkkrm 7/2P3iMxwYMydgioWejVHJgbS0lOum/eIVjHe2zp+FReIQ8yVoQXbAQuyHzZ5c6QuXCbRn/S PGkMeXLzbqDh3Oo2vQjoZ3JX17X/jcySnWxGL0RyOZwWBzivSig4NDBE -----END CERTIFICATE-----
Ready-to-use UI
By default,OPPThreeDSService
uses the mode from your OPPPaymentProvider
. So you just need to apply custom OPPThreeDSSchemeConfig
before starting the checkout, and it’s done. Objective -C
Swift
Objective -C
OPPThreeDSSchemeConfig *amexSchemeConfig = [[OPPThreeDSSchemeConfig alloc] initWithDsRefId:@"TEST_AMEX_DS_ID"
dsEncryptCert:<DS_ENCRYPT_CERT>
dsCaRootCert:<DS_ROOT_CA_CERT>];
[[OPPThreeDSService sharedInstance] setCustomSchemeConfig:@{@"AMEX": amexSchemeConfig}];
Swift
let amexSchemeConfig = OPPThreeDSSchemeConfig(dsRefId: "TEST_AMEX_DS_ID",
dsEncryptCert: <DS_ENCRYPT_CERT>,
dsCaRootCert: <DS_ROOT_CA_CERT>)
OPPThreeDSService.sharedInstance.setCustomSchemeConfig(schemeConfigDict: ["AMEX": amexSchemeConfig])
MSDK + Your Custom UI / Standalone
If you are going to implement your custom UI, don’t forget to set TEST mode when initialize theOPPThreeDSService
. Objective -C
Swift
Objective -C
OPPThreeDSSchemeConfig *amexSchemeConfig = [[OPPThreeDSSchemeConfig alloc] initWithDsRefId:@"TEST_AMEX_DS_ID"
dsEncryptCert:<DS_ENCRYPT_CERT>
dsCaRootCert:<DS_ROOT_CA_CERT>];
[[OPPThreeDSService sharedInstance] setCustomSchemeConfig:@{@"AMEX": amexSchemeConfig}];
NSArray<NSString *> *paymentBrands = @[@"AMEX"];
[[OPPThreeDSService sharedInstance] initializeWithTransactionMode:OPPThreeDSTransactionModeTest
paymentBrands:paymentBrands];
Swift
let amexSchemeConfig = OPPThreeDSSchemeConfig(dsRefId: "TEST_AMEX_DS_ID",
dsEncryptCert: <DS_ENCRYPT_CERT>,
dsCaRootCert: <DS_ROOT_CA_CERT>)
OPPThreeDSService.sharedInstance.setCustomSchemeConfig(schemeConfigDict: ["AMEX": amexSchemeConfig])
let paymentBrands = ["AMEX"]
OPPThreeDSService.sharedInstance.initialize(transactionMode: .test, paymentBrands: paymentBrands)
Android
Configure the 3DS service with test mode
In order to test 3D Secure 2 transactions with a simulator, additional configuration steps are required:- Add custom
SchemeConfig
to the 3DS service for each brand you want to test. It should be done before the initialization step. - Initialize 3DS service with TEST mode.
-----BEGIN CERTIFICATE----- MIICqjCCAZKgAwIBAgIBATANBgkqhkiG9w0BAQsFADAaMRgwFgYDVQQDEw9uc29mdHdhcmUu RFMuQ0EwHhcNMTkwOTI2MDYyODAzWhcNMjkwOTIzMDYyODAzWjAXMRUwEwYDVQQDEwxuc29m dHdhcmUuRFMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCr4I/vgMlFLpwVY+de 6YTtpyMtFzRIriZ+bmqmaML+qz49HvKO4+2lrZC1sBo74xPbupq7Zfq5c4UWbyGIjqNWdNKa XsSJz+RKyjCaNEF6B3rBeltaeBXuJVZ+oF+Q4zt0UI2WFSY4iE67babR0ep3/GNdSEQKHIV9 oHI1cJsE9/qDrrPqzQnpPI+FdyyEqhi2TfiyWv3kzrEO6Rfxnqila5k5UXLUjrej1gwnhgbs Bp+EADxRmcJcmcnWsPOqBgyLthXlFv13f9PZIuDiRIBYqEV9SZZtgr/lBEnYkUb5jaYQd6+n YXZ7Q0+kdxDYLS0crrBgaRFdcsJgVimni7JTAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAH65 NrUSJzDZqcsdsbH3igZQdDetM0IEKOFrunYA0XR4F+aViHOtExoM8FRFYWexxyU85UY8gRin eJLkR379JCWVqMNholDWLpT9SYCN8q1eGFJpCT46vB0qxvQ25V71KWKp78uDfAlgJ4Hm0sUa yP22oMFZQ9lgAygWG9TR4wkG+KFz/R0LzeXK3V+yJpN9IxG0VCbTF1RIlZp0p77gI7hXWuk+ ATJeKSbbT89KChbR4VKJesGfZ5VEKmnR2npK/mfSY7qtRH7Ha7zDG8CArX4qiFkX7UfwFcj7 FmXgZrNTvx5AUJ/XYXz71AE8v1uYyzM5kZuXoyAxXXskb7Rji4s= -----END CERTIFICATE-----
Directory server CA public certificate (root):
-----BEGIN CERTIFICATE----- MIICrjCCAZagAwIBAgICAN4wDQYJKoZIhvcNAQELBQAwGjEYMBYGA1UEAxMPbnNvZnR3YXJl LkRTLkNBMB4XDTE5MDkyNjA2Mjc1NVoXDTI5MDkyMzA2Mjc1NVowGjEYMBYGA1UEAxMPbnNv ZnR3YXJlLkRTLkNBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzqLKOH7g1+Y5 2wrWnI+n0/XywW3cJECSWT3li5dJiKepSKQ72ni5coZRCLklZaoNeMz9/WLg20fXpqV708zZ J6mCyS9art8DwK4i2u3StK5ehCBcz/YuX+C+jYySE2Zi6QxA4PC6UiR89aKoJKX+rJF8Bcys q7v5ky+embGCMpUU2jZ3GNKGeZXTqWlXY6verHVRoq3Ynn2In9D4r67CFQ1e3kfxEVWkr+WA Zsw/HSWq6u3OBnz7gwTCr4dqztMJIoYgKm70fzbmCr5uCdcSg5ix/GfmTfcTgB305qCjOJj3 d/BiVl5bV5ORtGnFB7caJ/aXuRNv5gPaigpBAMUzFwIDAQABMA0GCSqGSIb3DQEBCwUAA4IB AQDDgjtqXF8D3C9oBS5t2ydjLdswDj+goTadXNNu+P90kJcWVnGFR6D/z2FUvHRD4QEI1QTV r5VIy/GDZZ2fFCk9tEWjNbWDBEwxSWNxtMX7m7eTRtWlOBIm4AJOmmoNHj3jTQcxzAmQmHAr yuNvk4r43UdjDo/kKQXEo3W0D4mULrbQBman5FcO3vOuc4PMKLZd3SCrHg5g8Novx8zSkkrm 7/2P3iMxwYMydgioWejVHJgbS0lOum/eIVjHe2zp+FReIQ8yVoQXbAQuyHzZ5c6QuXCbRn/S PGkMeXLzbqDh3Oo2vQjoZ3JX17X/jcySnWxGL0RyOZwWBzivSig4NDBE -----END CERTIFICATE-----
Ready-to-use UI
By default,OPPThreeDSService
uses the mode from your PaymentProvider
. So you just need to apply custom SchemeConfig
before starting the checkout, and it’s done. Java
Kotlin
Java
SchemeConfig amexConfig = new SchemeConfig("TEST_AMEX_DS_ID", <DS_ENCRYPT_CERT>, <DS_ROOT_CA_CERT>);
HashMap<String, SchemeConfig> customConfigMap = new HashMap<>();
customConfigMap.put("AMEX", amexConfig);
OppThreeDSService.getInstance().setCustomSchemeConfig(customConfigMap);
Kotlin
val amexConfig = SchemeConfig("TEST_AMEX_DS_ID", <DS_ENCRYPT_CERT>, <DS_ROOT_CA_CERT>)
val customConfigMap = hashMapOf<String, SchemeConfig>()
customConfigMap["AMEX"] = amexConfig
OppThreeDSService.getInstance().setCustomSchemeConfig(customConfigMap)
MSDK + Your Custom UI / Standalone
If you are going to implement your custom UI, don’t forget to set TEST mode when initialize theOPPThreeDSService
. Java
Kotlin
Java
SchemeConfig amexConfig = new SchemeConfig("TEST_AMEX_DS_ID", <DS_ENCRYPT_CERT>, <DS_ROOT_CA_CERT>);
HashMap<String, SchemeConfig> customConfigMap = new HashMap<>();
customConfigMap.put("AMEX", amexConfig);
OppThreeDSService.getInstance().setCustomSchemeConfig(customConfigMap);
List<String> paymentBrands = Arrays.asList("AMEX");
OppThreeDSService.getInstance().initialize(
getApplicationContext(),
TransactionMode.TEST,
paymentBrands);
Kotlin
val amexConfig = SchemeConfig("TEST_AMEX_DS_ID", <DS_ENCRYPT_CERT>, <DS_ROOT_CA_CERT>)
val customConfigMap = hashMapOf<String, SchemeConfig>()
customConfigMap["AMEX"] = amexConfig
OppThreeDSService.getInstance().setCustomSchemeConfig(customConfigMap)
val paymentBrands = listOf("AMEX")
OppThreeDSService.getInstance().initialize(
applicationContext,
TransactionMode.TEST,
paymentBrands)