From b01f8a7da5e6e564ac7664b850ff32b2f0378888 Mon Sep 17 00:00:00 2001 From: Brian McManus Date: Wed, 2 Jan 2019 09:54:50 -0800 Subject: [PATCH 01/24] Updated to simply flex js and microform examples --- java8/README.md | 10 - java8/flex-sdk-spring-boot/.gitignore | 42 -- java8/flex-sdk-spring-boot/README.md | 45 -- java8/flex-sdk-spring-boot/pom.xml | 66 --- .../flex/application/CheckoutController.java | 83 ---- .../flex/application/EntryPoint.java | 17 - .../application/FlexConfigurationCGK.java | 35 -- .../application/FlexConfigurationVDP.java | 33 -- .../src/main/resources/.gitignore | 1 - .../src/main/resources/README.md | 9 - .../src/main/resources/application.properties | 26 -- .../src/main/resources/embedded-tomcat.jks | Bin 2251 -> 0 bytes .../src/main/resources/templates/receipt.html | 46 -- .../cybersource/example/FlexKeyProvider.java | 184 -------- .../example/FlexServletContextListener.java | 24 - .../webapp/WEB-INF/credentials.properties | 4 - .../webapp/WEB-INF/credentials.properties | 3 - java8/spring-boot/.gitignore | 42 -- java8/spring-boot/README.md | 45 -- java8/spring-boot/pom.xml | 52 --- .../flex/application/CheckoutController.java | 117 ----- .../flex/application/EntryPoint.java | 17 - .../flex/application/FlexSecurityService.java | 45 -- .../cybersource/flex/models/DerPublicKey.java | 37 -- .../cybersource/flex/models/JsonWebKey.java | 74 --- .../flex/models/KeyParameters.java | 26 -- .../models/KeyParametersMessageConverter.java | 47 -- .../cybersource/flex/models/KeyResult.java | 37 -- .../com/cybersource/flex/vdp/VDPEnpoints.java | 31 -- .../flex/vdp/VDPSignatureException.java | 16 - .../flex/vdp/VDPSignatureHelper.java | 75 --- .../spring-boot/src/main/resources/.gitignore | 1 - .../spring-boot/src/main/resources/README.md | 9 - .../src/main/resources/application.properties | 20 - .../src/main/resources/embedded-tomcat.jks | Bin 2251 -> 0 bytes .../src/main/resources/public/flex.js | 162 ------- .../main/resources/templates/checkout.html | 138 ------ .../src/main/resources/templates/receipt.html | 46 -- jsp-flexjs/.idea/compiler.xml | 16 + jsp-flexjs/.idea/encodings.xml | 6 + ..._com_cybersource_flex_server_sdk_0_3_0.xml | 13 + ..._javax_servlet_javax_servlet_api_3_1_0.xml | 13 + ...ervlet_jsp_javax_servlet_jsp_api_2_3_1.xml | 13 + jsp-flexjs/.idea/misc.xml | 13 + jsp-flexjs/.idea/modules.xml | 8 + jsp-flexjs/.idea/workspace.xml | 315 +++++++++++++ {java8/jsp-microform => jsp-flexjs}/README.md | 0 jsp-flexjs/jsp-flexjs.iml | 16 + .../pom.xml | 21 +- .../example/CharArrayProperties.java | 0 .../cybersource/example/FlexKeyProvider.java | 1 + .../example/FlexServletContextListener.java | 0 .../example/MerchantCredentials.java | 0 .../webapp/WEB-INF/credentials.properties | 3 + jsp-flexjs/src/main/webapp/index.jsp | 135 ++++++ .../src/main/webapp/receipt.jsp | 0 .../src/main/webapp/site.css | 42 +- .../example/CharArrayProperties.class | Bin 0 -> 1775 bytes .../cybersource/example/FlexKeyProvider.class | Bin 0 -> 3997 bytes .../example/FlexServletContextListener.class | Bin 0 -> 1657 bytes .../example/MerchantCredentials.class | Bin 0 -> 1627 bytes jsp-flexjs/target/jsp-flexjs-1.0.war | Bin 0 -> 133842 bytes .../example/CharArrayProperties.class | Bin 0 -> 1775 bytes .../cybersource/example/FlexKeyProvider.class | Bin 0 -> 3997 bytes .../example/FlexServletContextListener.class | Bin 0 -> 1657 bytes .../example/MerchantCredentials.class | Bin 0 -> 1627 bytes .../WEB-INF/credentials.properties | 3 + .../WEB-INF/lib/flex-server-sdk-0.3.0.jar | Bin 0 -> 131623 bytes .../target/jsp-flexjs-1.0/WEB-INF/site.css | 42 +- .../target/jsp-flexjs-1.0/index.jsp | 55 ++- .../target/jsp-flexjs-1.0/integration.js | 27 ++ .../target/jsp-flexjs-1.0}/receipt.jsp | 0 jsp-flexjs/target/jsp-flexjs-1.0/site.css | 22 + .../target/maven-archiver/pom.properties | 4 + .../compile/default-compile/createdFiles.lst | 0 .../compile/default-compile/inputFiles.lst | 4 + jsp-microform/.idea/compiler.xml | 16 + jsp-microform/.idea/encodings.xml | 6 + ..._com_cybersource_flex_server_sdk_0_3_0.xml | 13 + ..._javax_servlet_javax_servlet_api_3_1_0.xml | 13 + ...ervlet_jsp_javax_servlet_jsp_api_2_3_1.xml | 13 + jsp-microform/.idea/misc.xml | 13 + jsp-microform/.idea/modules.xml | 8 + jsp-microform/.idea/workspace.xml | 441 ++++++++++++++++++ .../README.md | 6 +- jsp-microform/jsp-microform.iml | 16 + .../jsp-microform => jsp-microform}/pom.xml | 4 +- .../example/CharArrayProperties.java | 11 +- .../cybersource/example/FlexKeyProvider.java | 59 +++ .../example/FlexServletContextListener.java | 35 ++ .../example/MerchantCredentials.java | 14 +- .../webapp/WEB-INF/credentials.properties | 3 + .../src/main/webapp/index.jsp | 7 +- jsp-microform/src/main/webapp/receipt.jsp | 53 +++ .../example/CharArrayProperties.class | Bin 0 -> 1775 bytes .../cybersource/example/FlexKeyProvider.class | Bin 0 -> 3997 bytes .../example/FlexServletContextListener.class | Bin 0 -> 1657 bytes .../example/MerchantCredentials.class | Bin 0 -> 1627 bytes jsp-microform/target/jsp-microform-1.0.war | Bin 0 -> 132594 bytes .../example/CharArrayProperties.class | Bin 0 -> 1763 bytes .../cybersource/example/FlexKeyProvider.class | Bin 0 -> 3989 bytes .../example/FlexServletContextListener.class | Bin 0 -> 1645 bytes .../example/MerchantCredentials.class | Bin 0 -> 1621 bytes .../WEB-INF/credentials.properties | 3 + .../WEB-INF/lib/flex-server-sdk-0.3.0.jar | Bin 0 -> 131623 bytes .../target/jsp-microform-1.0}/index.jsp | 0 .../target/jsp-microform-1.0/receipt.jsp | 53 +++ .../target/maven-archiver/pom.properties | 4 + .../compile/default-compile/createdFiles.lst | 4 + .../compile/default-compile/inputFiles.lst | 4 + 110 files changed, 1469 insertions(+), 1767 deletions(-) delete mode 100644 java8/README.md delete mode 100644 java8/flex-sdk-spring-boot/.gitignore delete mode 100644 java8/flex-sdk-spring-boot/README.md delete mode 100644 java8/flex-sdk-spring-boot/pom.xml delete mode 100644 java8/flex-sdk-spring-boot/src/main/java/com/cybersource/flex/application/CheckoutController.java delete mode 100644 java8/flex-sdk-spring-boot/src/main/java/com/cybersource/flex/application/EntryPoint.java delete mode 100644 java8/flex-sdk-spring-boot/src/main/java/com/cybersource/flex/application/FlexConfigurationCGK.java delete mode 100644 java8/flex-sdk-spring-boot/src/main/java/com/cybersource/flex/application/FlexConfigurationVDP.java delete mode 100644 java8/flex-sdk-spring-boot/src/main/resources/.gitignore delete mode 100644 java8/flex-sdk-spring-boot/src/main/resources/README.md delete mode 100644 java8/flex-sdk-spring-boot/src/main/resources/application.properties delete mode 100644 java8/flex-sdk-spring-boot/src/main/resources/embedded-tomcat.jks delete mode 100644 java8/flex-sdk-spring-boot/src/main/resources/templates/receipt.html delete mode 100644 java8/jsp-microform-nosdk/src/main/java/com/cybersource/example/FlexKeyProvider.java delete mode 100644 java8/jsp-microform-nosdk/src/main/java/com/cybersource/example/FlexServletContextListener.java delete mode 100644 java8/jsp-microform-nosdk/src/main/webapp/WEB-INF/credentials.properties delete mode 100644 java8/jsp-microform/src/main/webapp/WEB-INF/credentials.properties delete mode 100644 java8/spring-boot/.gitignore delete mode 100644 java8/spring-boot/README.md delete mode 100644 java8/spring-boot/pom.xml delete mode 100644 java8/spring-boot/src/main/java/com/cybersource/flex/application/CheckoutController.java delete mode 100644 java8/spring-boot/src/main/java/com/cybersource/flex/application/EntryPoint.java delete mode 100644 java8/spring-boot/src/main/java/com/cybersource/flex/application/FlexSecurityService.java delete mode 100644 java8/spring-boot/src/main/java/com/cybersource/flex/models/DerPublicKey.java delete mode 100644 java8/spring-boot/src/main/java/com/cybersource/flex/models/JsonWebKey.java delete mode 100644 java8/spring-boot/src/main/java/com/cybersource/flex/models/KeyParameters.java delete mode 100644 java8/spring-boot/src/main/java/com/cybersource/flex/models/KeyParametersMessageConverter.java delete mode 100644 java8/spring-boot/src/main/java/com/cybersource/flex/models/KeyResult.java delete mode 100644 java8/spring-boot/src/main/java/com/cybersource/flex/vdp/VDPEnpoints.java delete mode 100644 java8/spring-boot/src/main/java/com/cybersource/flex/vdp/VDPSignatureException.java delete mode 100644 java8/spring-boot/src/main/java/com/cybersource/flex/vdp/VDPSignatureHelper.java delete mode 100644 java8/spring-boot/src/main/resources/.gitignore delete mode 100644 java8/spring-boot/src/main/resources/README.md delete mode 100644 java8/spring-boot/src/main/resources/application.properties delete mode 100644 java8/spring-boot/src/main/resources/embedded-tomcat.jks delete mode 100644 java8/spring-boot/src/main/resources/public/flex.js delete mode 100644 java8/spring-boot/src/main/resources/templates/checkout.html delete mode 100644 java8/spring-boot/src/main/resources/templates/receipt.html create mode 100644 jsp-flexjs/.idea/compiler.xml create mode 100644 jsp-flexjs/.idea/encodings.xml create mode 100644 jsp-flexjs/.idea/libraries/Maven__com_cybersource_flex_server_sdk_0_3_0.xml create mode 100644 jsp-flexjs/.idea/libraries/Maven__javax_servlet_javax_servlet_api_3_1_0.xml create mode 100644 jsp-flexjs/.idea/libraries/Maven__javax_servlet_jsp_javax_servlet_jsp_api_2_3_1.xml create mode 100644 jsp-flexjs/.idea/misc.xml create mode 100644 jsp-flexjs/.idea/modules.xml create mode 100644 jsp-flexjs/.idea/workspace.xml rename {java8/jsp-microform => jsp-flexjs}/README.md (100%) create mode 100644 jsp-flexjs/jsp-flexjs.iml rename {java8/jsp-microform-nosdk => jsp-flexjs}/pom.xml (73%) rename {java8/jsp-microform => jsp-flexjs}/src/main/java/com/cybersource/example/CharArrayProperties.java (100%) rename {java8/jsp-microform => jsp-flexjs}/src/main/java/com/cybersource/example/FlexKeyProvider.java (96%) rename {java8/jsp-microform => jsp-flexjs}/src/main/java/com/cybersource/example/FlexServletContextListener.java (100%) rename {java8/jsp-microform => jsp-flexjs}/src/main/java/com/cybersource/example/MerchantCredentials.java (100%) create mode 100644 jsp-flexjs/src/main/webapp/WEB-INF/credentials.properties create mode 100644 jsp-flexjs/src/main/webapp/index.jsp rename {java8/jsp-microform-nosdk => jsp-flexjs}/src/main/webapp/receipt.jsp (100%) rename java8/spring-boot/src/main/resources/public/Site.css => jsp-flexjs/src/main/webapp/site.css (95%) create mode 100644 jsp-flexjs/target/classes/com/cybersource/example/CharArrayProperties.class create mode 100644 jsp-flexjs/target/classes/com/cybersource/example/FlexKeyProvider.class create mode 100644 jsp-flexjs/target/classes/com/cybersource/example/FlexServletContextListener.class create mode 100644 jsp-flexjs/target/classes/com/cybersource/example/MerchantCredentials.class create mode 100644 jsp-flexjs/target/jsp-flexjs-1.0.war create mode 100644 jsp-flexjs/target/jsp-flexjs-1.0/WEB-INF/classes/com/cybersource/example/CharArrayProperties.class create mode 100644 jsp-flexjs/target/jsp-flexjs-1.0/WEB-INF/classes/com/cybersource/example/FlexKeyProvider.class create mode 100644 jsp-flexjs/target/jsp-flexjs-1.0/WEB-INF/classes/com/cybersource/example/FlexServletContextListener.class create mode 100644 jsp-flexjs/target/jsp-flexjs-1.0/WEB-INF/classes/com/cybersource/example/MerchantCredentials.class create mode 100644 jsp-flexjs/target/jsp-flexjs-1.0/WEB-INF/credentials.properties create mode 100644 jsp-flexjs/target/jsp-flexjs-1.0/WEB-INF/lib/flex-server-sdk-0.3.0.jar rename java8/flex-sdk-spring-boot/src/main/resources/public/Site.css => jsp-flexjs/target/jsp-flexjs-1.0/WEB-INF/site.css (95%) rename java8/flex-sdk-spring-boot/src/main/resources/templates/checkout.html => jsp-flexjs/target/jsp-flexjs-1.0/index.jsp (76%) create mode 100644 jsp-flexjs/target/jsp-flexjs-1.0/integration.js rename {java8/jsp-microform/src/main/webapp => jsp-flexjs/target/jsp-flexjs-1.0}/receipt.jsp (100%) create mode 100644 jsp-flexjs/target/jsp-flexjs-1.0/site.css create mode 100644 jsp-flexjs/target/maven-archiver/pom.properties create mode 100644 jsp-flexjs/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst create mode 100644 jsp-flexjs/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst create mode 100644 jsp-microform/.idea/compiler.xml create mode 100644 jsp-microform/.idea/encodings.xml create mode 100644 jsp-microform/.idea/libraries/Maven__com_cybersource_flex_server_sdk_0_3_0.xml create mode 100644 jsp-microform/.idea/libraries/Maven__javax_servlet_javax_servlet_api_3_1_0.xml create mode 100644 jsp-microform/.idea/libraries/Maven__javax_servlet_jsp_javax_servlet_jsp_api_2_3_1.xml create mode 100644 jsp-microform/.idea/misc.xml create mode 100644 jsp-microform/.idea/modules.xml create mode 100644 jsp-microform/.idea/workspace.xml rename {java8/jsp-microform-nosdk => jsp-microform}/README.md (79%) create mode 100644 jsp-microform/jsp-microform.iml rename {java8/jsp-microform => jsp-microform}/pom.xml (93%) rename java8/jsp-microform-nosdk/src/main/java/com/cybersource/example/ByteArrayProperties.java => jsp-microform/src/main/java/com/cybersource/example/CharArrayProperties.java (84%) create mode 100644 jsp-microform/src/main/java/com/cybersource/example/FlexKeyProvider.java create mode 100644 jsp-microform/src/main/java/com/cybersource/example/FlexServletContextListener.java rename {java8/jsp-microform-nosdk => jsp-microform}/src/main/java/com/cybersource/example/MerchantCredentials.java (67%) create mode 100644 jsp-microform/src/main/webapp/WEB-INF/credentials.properties rename {java8/jsp-microform-nosdk => jsp-microform}/src/main/webapp/index.jsp (97%) create mode 100644 jsp-microform/src/main/webapp/receipt.jsp create mode 100644 jsp-microform/target/classes/com/cybersource/example/CharArrayProperties.class create mode 100644 jsp-microform/target/classes/com/cybersource/example/FlexKeyProvider.class create mode 100644 jsp-microform/target/classes/com/cybersource/example/FlexServletContextListener.class create mode 100644 jsp-microform/target/classes/com/cybersource/example/MerchantCredentials.class create mode 100644 jsp-microform/target/jsp-microform-1.0.war create mode 100644 jsp-microform/target/jsp-microform-1.0/WEB-INF/classes/com/cybersource/example/CharArrayProperties.class create mode 100644 jsp-microform/target/jsp-microform-1.0/WEB-INF/classes/com/cybersource/example/FlexKeyProvider.class create mode 100644 jsp-microform/target/jsp-microform-1.0/WEB-INF/classes/com/cybersource/example/FlexServletContextListener.class create mode 100644 jsp-microform/target/jsp-microform-1.0/WEB-INF/classes/com/cybersource/example/MerchantCredentials.class create mode 100644 jsp-microform/target/jsp-microform-1.0/WEB-INF/credentials.properties create mode 100644 jsp-microform/target/jsp-microform-1.0/WEB-INF/lib/flex-server-sdk-0.3.0.jar rename {java8/jsp-microform/src/main/webapp => jsp-microform/target/jsp-microform-1.0}/index.jsp (100%) create mode 100644 jsp-microform/target/jsp-microform-1.0/receipt.jsp create mode 100644 jsp-microform/target/maven-archiver/pom.properties create mode 100644 jsp-microform/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst create mode 100644 jsp-microform/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst diff --git a/java8/README.md b/java8/README.md deleted file mode 100644 index 8cae02a..0000000 --- a/java8/README.md +++ /dev/null @@ -1,10 +0,0 @@ -# Java 8 - -## Contents - -| Folder | Description | -|------------------------|---------------------------------------------------| -| `flex-sdk-spring-boot` | Spring Boot example using CyberSource SDKs. | -| `jsp-microform` | JSP (Tomcat) example using hosted Flex microform. | -| `spring-boot` | Custom Spring Boot integration with Flex API. | - diff --git a/java8/flex-sdk-spring-boot/.gitignore b/java8/flex-sdk-spring-boot/.gitignore deleted file mode 100644 index ad08727..0000000 --- a/java8/flex-sdk-spring-boot/.gitignore +++ /dev/null @@ -1,42 +0,0 @@ -# Covers all spring-boot ignore files -# Reference: https://github.com/spring-projects/spring-boot/blob/master/.gitignore - -.gradle -*.sw? -.#* -*# -*~ -/build -/code -.classpath -.project -.settings -.metadata -.factorypath -.recommenders -bin -build -lib/ -target -.factorypath -.springBeans -interpolated*.xml -dependency-reduced-pom.xml -build.log -_site/ -.*.md.html -manifest.yml -MANIFEST.MF -settings.xml -activemq-data -overridedb.* -*.iml -*.ipr -*.iws -.idea -*.jar -.DS_Store -.factorypath -dump.rdb - -nbactions.xml diff --git a/java8/flex-sdk-spring-boot/README.md b/java8/flex-sdk-spring-boot/README.md deleted file mode 100644 index 6abc5cd..0000000 --- a/java8/flex-sdk-spring-boot/README.md +++ /dev/null @@ -1,45 +0,0 @@ -# Flex Java Example - -A minimalist java/spring-boot example integration using Flex-API tokenization. - -## Prerequisites - -- [Java 8](http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html) -- [JCE unlimited policy files](http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html) -- [Maven](https://maven.apache.org/install.html) - -## Setup Instructions - -1. Modify `./src/main/resources/application.properties` with the credentials created through [VISA Developer Portal](https://developer.visa.com/). - - ```properties - vdp.api-key=_YOUR_APPLICATION_SPECIFIC_API_KEY_ - vdp.shared-secret=_YOUR_APPLICATION_SPECIFIC_SHARED_SECRET_ - ``` - -2. Build and run the application using maven - ```bash - mvn clean spring-boot:run - ``` - This will serve the application from [https://localhost:8443](https://localhost:8443). - -## Tips - -- If you are having issues, checkout the full [FLEX documentation](https://developer.visa.com/products/cybersource/reference#cybersource__cybersource_flex_api). - -- To change the port the application is served on, update `server.port=8443` in `application.properties`, replacing `8443` with your desired port number. - -- If the application throws `java.security.InvalidKeyException: Illegal key size` you have probably not installed the [JCE unlimited policy files](http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html). - -## Browser Support - -- Chrome 37+ -- Firefox 34+ -- Edge 12+ -- Opera 24+ - -*NB: IE11 and Safari support could be achieved through the use of polyfills for promises and Web Crypto API such as [webcrypto-shim](https://github.com/vibornoff/webcrypto-shim) and [promiz](https://github.com/Zolmeister/promiz). However, these are not included in the examples.* - -## Disclaimer - -This respository is provided as a learning aid for merchants wishing to integrate with the Flex API. The code samples are not production ready and are intended for illustrative purposes only. As such, any use of these code samples in a production setting is strongly discouraged. Any usage of these code samples must comply with the license agreement as defined in `LICENSE.md` at the root level of this repository. \ No newline at end of file diff --git a/java8/flex-sdk-spring-boot/pom.xml b/java8/flex-sdk-spring-boot/pom.xml deleted file mode 100644 index 92d1cc6..0000000 --- a/java8/flex-sdk-spring-boot/pom.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - 4.0.0 - - com.cybersource.flex.application - spring-boot - 1.0-BETA - jar - - Flex-API Spring-Boot Demo - A mocked merchant checkout and payment pages using Flex-API tokenization - https://github.com/CyberSource/cybersource-flex-samples/spring-boot - - - org.springframework.boot - spring-boot-starter-parent - 1.2.5.RELEASE - - - - - UTF-8 - 1.8 - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - - - - org.springframework.boot - spring-boot-starter - - - org.springframework.boot - spring-boot-starter-thymeleaf - - - org.springframework.boot - spring-boot-starter-web - - - - - com.cybersource - flex-server-sdk - 0.1.1 - - - - - org.webjars.npm - cybersource__flex-sdk-web - 0.1.2 - - - diff --git a/java8/flex-sdk-spring-boot/src/main/java/com/cybersource/flex/application/CheckoutController.java b/java8/flex-sdk-spring-boot/src/main/java/com/cybersource/flex/application/CheckoutController.java deleted file mode 100644 index e18d6e0..0000000 --- a/java8/flex-sdk-spring-boot/src/main/java/com/cybersource/flex/application/CheckoutController.java +++ /dev/null @@ -1,83 +0,0 @@ -/** - * Copyright (c) 2017 by CyberSource - * Governing licence: https://github.com/CyberSource/cybersource-flex-samples/blob/master/LICENSE.md - */ -package com.cybersource.flex.application; - -import com.cybersource.flex.sdk.FlexService; -import com.cybersource.flex.sdk.exception.FlexException; -import com.cybersource.flex.sdk.model.FlexPublicKey; -import java.util.HashMap; -import java.util.Map; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.ui.Model; -import org.springframework.web.bind.annotation.ModelAttribute; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestParam; - -@Controller -public class CheckoutController { - - @Autowired - private FlexService flexService; - - @ModelAttribute - public void setFramingResponseHeader(HttpServletResponse response) { - response.setHeader("X-Frame-Options", "DENY"); - } - - @RequestMapping("/") - String redirect(final HttpSession session) { - session.invalidate(); - return "redirect:checkout"; - } - - @RequestMapping("/checkout") - String checkout(final HttpSession session, final Model model) throws FlexException { - // retrieve one time use public RSA key from Flex to facilitate PAN encryption - final FlexPublicKey key = flexService.createKey(); - session.setAttribute("flexPublicKey", key); - - // Add JSON Web Keystore to the view model and return rendered "checkout" page - model.addAttribute("jwk", key.getJwk()); - return "checkout"; - } - - @RequestMapping(value = "/receipt", method = RequestMethod.POST) - String receipt(@RequestParam Map postParams, final HttpSession session, final Model model) throws FlexException { - postParams = validateUntrustedParameters(postParams); - - // Read in the public key to be used and remove it from the session - final FlexPublicKey key = (FlexPublicKey) session.getAttribute("flexPublicKey"); - session.removeAttribute("flexPublicKey"); // no longer needed - - // verify the token signiture using SDK - postParams.put("verifyResult", flexService.verify(key, postParams)); - - /** - * - * The payment may now be completed using the received & validated - * token. - * - * For demonstration purposes, all post parameters are added to the view - * model to display data received from cardholder's browser. - */ - model.addAttribute("postParams", postParams); - return "receipt"; - } - - private Map validateUntrustedParameters(Map parameters) { - Map retVal = new HashMap<>(); - // Each parameter must undergo proper validation / sanitization. - // The type of validation to be implemented will vary between individual - // Flex API integrations. It is merchant's responsibility to implement adequate - // parameter validation for production deployments. - parameters.forEach((k, v) -> retVal.put(k, v)); - return retVal; - } - -} diff --git a/java8/flex-sdk-spring-boot/src/main/java/com/cybersource/flex/application/EntryPoint.java b/java8/flex-sdk-spring-boot/src/main/java/com/cybersource/flex/application/EntryPoint.java deleted file mode 100644 index 6d89c23..0000000 --- a/java8/flex-sdk-spring-boot/src/main/java/com/cybersource/flex/application/EntryPoint.java +++ /dev/null @@ -1,17 +0,0 @@ -/** - * Copyright (c) 2016 by CyberSource - * Governing licence: https://github.com/CyberSource/cybersource-flex-samples/blob/master/LICENSE.md - */ -package com.cybersource.flex.application; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication -public class EntryPoint { - - public static void main(String... args) throws Exception { - SpringApplication.run(EntryPoint.class, args); - } - -} diff --git a/java8/flex-sdk-spring-boot/src/main/java/com/cybersource/flex/application/FlexConfigurationCGK.java b/java8/flex-sdk-spring-boot/src/main/java/com/cybersource/flex/application/FlexConfigurationCGK.java deleted file mode 100644 index 5038159..0000000 --- a/java8/flex-sdk-spring-boot/src/main/java/com/cybersource/flex/application/FlexConfigurationCGK.java +++ /dev/null @@ -1,35 +0,0 @@ -/** - * Copyright (c) 2017 by CyberSource - * Governing licence: https://github.com/CyberSource/cybersource-flex-samples/blob/master/LICENSE.md - */ -package com.cybersource.flex.application; - -import com.cybersource.flex.sdk.FlexService; -import com.cybersource.flex.sdk.FlexServiceFactory; -import com.cybersource.flex.sdk.authentication.CGKCredentials; -import com.cybersource.flex.sdk.exception.FlexException; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - -@Configuration -public class FlexConfigurationCGK { - - @Value("${cgk.mid}") - private String mid; - @Value("${cgk.keyId}") - private String keyId; - @Value("${cgk.shared-secret}") - private char[] sharedSecret; - - @Bean - public FlexService flexService() { - try { - CGKCredentials cgkCredentials = new CGKCredentials(CGKCredentials.Environment.CAS, mid, keyId, sharedSecret); - return FlexServiceFactory.createInstance(cgkCredentials); - } catch (FlexException flexException) { - throw new RuntimeException("Error when configuring Flex Server SDK", flexException); - } - } - -} diff --git a/java8/flex-sdk-spring-boot/src/main/java/com/cybersource/flex/application/FlexConfigurationVDP.java b/java8/flex-sdk-spring-boot/src/main/java/com/cybersource/flex/application/FlexConfigurationVDP.java deleted file mode 100644 index ffaf8a5..0000000 --- a/java8/flex-sdk-spring-boot/src/main/java/com/cybersource/flex/application/FlexConfigurationVDP.java +++ /dev/null @@ -1,33 +0,0 @@ -/** - * Copyright (c) 2017 by CyberSource - * Governing licence: https://github.com/CyberSource/cybersource-flex-samples/blob/master/LICENSE.md - */ -package com.cybersource.flex.application; - -import com.cybersource.flex.sdk.FlexService; -import com.cybersource.flex.sdk.FlexServiceFactory; -import com.cybersource.flex.sdk.authentication.VDPCredentials; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - -/** - * Please uncomment Configuration annotation below to enable Visa Developer - * Platform. You must also comment out Configuration annotation in corresponding - * FlexConfigurationVDP.java to disable CGK. - */ -//@Configuration -public class FlexConfigurationVDP { - - @Value("${vdp.api-key}") - private String apiKey; - @Value("${vdp.shared-secret}") - private char[] sharedSecret; - - @Bean - public FlexService flexService() { - VDPCredentials vdpCredentials = new VDPCredentials(VDPCredentials.Environment.SANDBOX, apiKey, sharedSecret); - return FlexServiceFactory.createInstance(vdpCredentials); - } - -} diff --git a/java8/flex-sdk-spring-boot/src/main/resources/.gitignore b/java8/flex-sdk-spring-boot/src/main/resources/.gitignore deleted file mode 100644 index edd25bc..0000000 --- a/java8/flex-sdk-spring-boot/src/main/resources/.gitignore +++ /dev/null @@ -1 +0,0 @@ -*.p12 diff --git a/java8/flex-sdk-spring-boot/src/main/resources/README.md b/java8/flex-sdk-spring-boot/src/main/resources/README.md deleted file mode 100644 index a814e01..0000000 --- a/java8/flex-sdk-spring-boot/src/main/resources/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# Folder contents - -| Folder / Filename | Purpose | -|------------------------|----------------| -| /public | Assets placed here are served publicly from the root of the webserver. In our example this contains all the scripts and css used. | -| /templates | All [Thymeleaf templates](http://www.thymeleaf.org/) used by the application in rendering html pages. | -| application.properties | The Spring-Boot application configuration. In our example this is used to enable HTTPS via embedded Tomcat as the WebCryptoAPI requires pages to be served via secure protocol only. Additionally, this is where all merchant credentials and configuration is stored (as per setup instructions step 1). | -| embedded-tomcat.jks | Self signed X.509 certificate keystore generated with keytool command. This certificate is used to mock “merchant site” being served over HTTPS. In a real production environment the SSL certificate should not be part of source code and would typically be provisioned directly to production servers. | -| .gitignore | Prevents any accidental commit of p12 keystore to the git repository. | \ No newline at end of file diff --git a/java8/flex-sdk-spring-boot/src/main/resources/application.properties b/java8/flex-sdk-spring-boot/src/main/resources/application.properties deleted file mode 100644 index 200bee7..0000000 --- a/java8/flex-sdk-spring-boot/src/main/resources/application.properties +++ /dev/null @@ -1,26 +0,0 @@ -# Cybersource GateKeeper credentials - https://developer.cybersource.com/ -# -# This property file is for demonstartion purposes only. -# You MUST take proper precautions to protect your credentials, such as -# NEVER storing your credentials unencrypted with application code. -# -cgk.mid=_YOUR_MID_ -cgk.keyId=_YOUR_HMAC_KEY_ID_ -cgk.shared-secret=_YOUR_SHARED_SECRET_ - -# VISA Developer Platform credentials - https://developer.visa.com/ -# To use the VDP you need to disable CGK properties above and edit FlexConfigurationVDP.java -#vdp.api-key=_YOUR_APPLICATION_SPECIFIC_API_KEY_ -#vdp.shared-secret=_YOUR_APPLICATION_SPECIFIC_SHARED_SECRET_ - -# Embedded Tomcat configuration properties -# -# The properties below enable HTTPS on TCP port 8443. -server.port=8443 -# Please note that this example uses self-signed X.509 certificate with CN=localhost. -# Keystore and private key passwords provided below are not encrypted. -# While it is acceptable for demonstration and example purposes, -# it must not be treated as production grade configuration. -server.ssl.key-store=classpath:embedded-tomcat.jks -server.ssl.key-store-password=changeit -server.ssl.key-password=changeit \ No newline at end of file diff --git a/java8/flex-sdk-spring-boot/src/main/resources/embedded-tomcat.jks b/java8/flex-sdk-spring-boot/src/main/resources/embedded-tomcat.jks deleted file mode 100644 index 72b0a3187dfb04c54153a6f3b911e470c54eae4a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2251 zcmchYc{tRK7RP5}vJAo?Yl(`H`3Bf_X9TmNU{&m()9Cx^esws^%ZAPYL zVQ`C~XZAz-qmNOCKXr}l=l=N1p=>;ki*w=oK+-0UMPg$+!I>cC9j#-JUpbozR~zU2 z`$Tzy_Mzrqd361cS;5&#!{@DJq}0tjZ=)=Pzr9%-YFzpjxu^1BM*1XuGG&sEW}v?I z)FOu;oVQj)O*KY(mErbMf@Sa??-%k%koko)4}P~<)W%{04WmP@+QxcGP(P)m_UW$D z)_iy0=dKo6+y{zK3L~3x3x^Gv>BV06gvYG({r_UvMESF>(bCivoxJ(M+yds51MB%N zC$vXxJk|YT3DT;fEN!q?`iY|JoveCth}kRGfMwB3!ZTW*s`9!uuYmAdX}Y+%aCMt? zGEpN1+k)n%ta{AZcN&$lt$u{#MYWz!kQWfkzAIQMB<6)RvbSq+kRH;y7dhaUz!=5E z+V9VZerX@}){C@ibn&c2M^WBkSEz2^JZc3E620a!o93Cg8`f8Cx*3^KnD_+aCFkop zx%c~onnn53`Fb7SUg|KaUc632uu&kfyH3vT11yFkU##K9dlH z@5l%Ho?1>0J^yO46fc<|QA0K!xXrU6ucs-rwA!G(kC3sm0B;{LX?(W6ea?` z6L%*#UOCfpUK|f(wQM&q+uWiRcCdJQa}OJ$t%?VNVm9q02szu7*r03XlJ?eG-D4}< zmJa8IlgTb(#Y)Yx;_^~~!;nbFMLNvwuvEFTx!=CjAfr~{{nC>SA4dfndILQtV`}VX z3Ezc#N~&zJky@5%BbR5Kl4aov6sA-jm^0$sAyK^g`$l1QTxHUXLw*xNkcLUtur+Q@ zmL$6&Ub@Ov0ueDq?n|AvjQyWG8&ymp%v};SXF6XZxa+#N)1tVHW-q!mBFlfubWxoa zdd)e&(A*vJ0B=m4#xsYAWfMt*x0in_=<}UAe6+YlzVBJIeq3rlGIzSG$ zf-P!~Q6H2ORg#$rdkSygDUUt0)@vF{cKZ<+!gO;HF|5q@GB;(t+{SI2I=NLos2gQ zD^cvbD|w@f^}Ytr5X%7cmP_I~x%F+8+Mo9aCb`&O&9`t2ww@6As@$aL6_&aexBNDR zk@=)xpQ_(4jjFp+cHHOrEH?63;1UP~ z4FgEfKLHX1p9h72ArP4M!dYGb!OA8ZtslLE0E0PLKmZZLbCj4+D;O&u+=_UU=o9c? za_lz(|BbN!MmYXQcmbaOOosBYdHLX-yxe_!{Qz-61O|&yz$gQku$QnHJ3)kk5}*hi z3I5go-}R8dlK-^i=wU!fU~UjV0<%L%U@$0cOw8Daey8}QA6r>8T!wo$CZPA7Hq7=9 z$W)M5%ZRXQ_BlOATmzvhDn5~|@-|;a@v@!yrh@NRZ|Fb=|125ztu0=AxmvG1pQMt~ zT(-2Ekocjr107_sQ_Pse00){aVFKzIOx?YnzvXyNF9kFS`!A(@aw#uvJb+_sXgsEn zQ*kQ|Rw5M|#x!@MEfSX)%r>xs;!~wFP{JSe(h_obtt7slhmj zs^!o#LGa==1rvbrf0&KO@v3BJGflKr zxIPz-PLC9+|I@^yyE-xv41x@etY!>9CHG}<;_ww&+`@-!u(33mXhsOXVSW8;`7d=H zP@9`!2L8~_i7zcik`2&~dh%;ktaBv)N@xVDf$GUo*Sm&}ht;ExyirvbaVyK!$Cq*K zH|}dDn#+YINyi7GrKg_fh())Zrg(~=34F}mB%x8)Cy@F#lDai(ljy+M_U$j6s%A^z z$?`nYb;opU*Qbpak#=}|1v~|EH(g$bLw5IRqFCxoO<(Q3(uckjPJLB-lkOljw{zhQ zSV2*rC?Ib)n(wl84V03FO3vjqrkB`6bdxrNb)i=a+zq<7WC#X)skAEh?XaW@BIb;! l!dCDB=MPi*;|r&$Y5U~0u?zjqapTX9`8o+%A|d1E{{|4P>G1#n diff --git a/java8/flex-sdk-spring-boot/src/main/resources/templates/receipt.html b/java8/flex-sdk-spring-boot/src/main/resources/templates/receipt.html deleted file mode 100644 index 2a3a891..0000000 --- a/java8/flex-sdk-spring-boot/src/main/resources/templates/receipt.html +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - Receipt - - - - - -
-
- -
-
-

This is what was posted to the merchant servers.

-

Note the masked PAN and payment token. These can be used to process a transaction with out directly handling the PAN data.

-
- - - - - - - - - - - - - - -
ParamValue
-
-
-
- - \ No newline at end of file diff --git a/java8/jsp-microform-nosdk/src/main/java/com/cybersource/example/FlexKeyProvider.java b/java8/jsp-microform-nosdk/src/main/java/com/cybersource/example/FlexKeyProvider.java deleted file mode 100644 index c6fca9e..0000000 --- a/java8/jsp-microform-nosdk/src/main/java/com/cybersource/example/FlexKeyProvider.java +++ /dev/null @@ -1,184 +0,0 @@ -/** - * Copyright (c) 2017 by CyberSource - * Governing licence: https://github.com/CyberSource/cybersource-flex-samples/blob/master/LICENSE.md - */ -package com.cybersource.example; - -import java.io.BufferedReader; -import javax.servlet.http.HttpSession; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.io.OutputStreamWriter; -import java.net.HttpURLConnection; -import java.net.URL; -import java.nio.charset.StandardCharsets; -import java.security.KeyFactory; -import java.security.MessageDigest; -import java.security.NoSuchAlgorithmException; -import java.security.PublicKey; -import java.security.Signature; -import java.security.spec.X509EncodedKeySpec; -import java.text.SimpleDateFormat; -import java.util.Calendar; -import java.util.LinkedHashMap; -import java.util.Locale; -import java.util.Map; -import java.util.TimeZone; -import javax.crypto.Mac; -import javax.crypto.spec.SecretKeySpec; -import org.apache.commons.codec.binary.Base64; -import org.json.JSONObject; - -public class FlexKeyProvider { - - private static final String HOST = "testflex.cybersource.com"; - private final MerchantCredentials merchantCredentials; - - FlexKeyProvider(InputStream resource) { - try { - merchantCredentials = new MerchantCredentials(resource); - } catch (IOException e) { - throw new RuntimeException(e); - } - } - - public String bindFlexKeyToSession(HttpSession session) { - try { - final JSONObject request = new JSONObject(); - request.put("encryptionType", "RsaOaep256"); - request.put("targetOrigin", "http://localhost:8080"); // the origin of web page that renders flex microform iframe. - final String body = request.toString(); - final String date = getServerTime(); - - final Map signedHeaders = new LinkedHashMap(); - signedHeaders.put("host", HOST); - signedHeaders.put("date", date); - signedHeaders.put("(request-target)", "post /flex/v1/keys"); - signedHeaders.put("digest", getDigest(body)); - signedHeaders.put("v-c-merchant-id", merchantCredentials.getMerchantId()); - - final String signature = generateSignature(signedHeaders, merchantCredentials.getKeyId(), merchantCredentials.getSharedSecret()); - signedHeaders.put("signature", signature); - signedHeaders.remove("(request-target)"); - - String response = post(signedHeaders, body); - JSONObject flexPublicKey = new JSONObject(response); - session.setAttribute("flexPublicKey", flexPublicKey); - - return flexPublicKey.getJSONObject("jwk").toString(); - } catch (IOException ioe) { - throw new RuntimeException("Error receiving Flex public key", ioe); - } - - } - - public boolean verifyTokenResponse(HttpSession session, String flexResponse) { - try { - JSONObject flexPublicKey = (JSONObject) session.getAttribute("flexPublicKey"); - byte[] keyBytes = Base64.decodeBase64(flexPublicKey.getJSONObject("der").getString("publicKey")); - PublicKey publicKey = KeyFactory.getInstance("RSA").generatePublic(new X509EncodedKeySpec(keyBytes)); - - JSONObject token = new JSONObject(flexResponse); - - String[] signedFieldKeys = token.getString("signedFields").split(","); - StringBuilder signedValues = new StringBuilder(); - for (String key : signedFieldKeys) { - signedValues.append(",").append(token.get(key).toString()); - } - signedValues.deleteCharAt(0); - - final Signature signInstance = Signature.getInstance("SHA512withRSA"); - signInstance.initVerify(publicKey); - signInstance.update(signedValues.toString().getBytes()); - return signInstance.verify(Base64.decodeBase64(token.getString("signature"))); - } catch (Exception e) { - return false; - } - } - - private static String getServerTime() { - Calendar calendar = Calendar.getInstance(); - SimpleDateFormat dateFormat = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss z", Locale.US); - dateFormat.setTimeZone(TimeZone.getTimeZone("GMT")); - return dateFormat.format(calendar.getTime()); - } - - private static String getDigest(String body) { - try { - final MessageDigest digester = MessageDigest.getInstance("SHA-256"); - final byte[] digest = digester.digest(body.getBytes(StandardCharsets.UTF_8)); - return String.format("SHA-256=%s", Base64.encodeBase64String(digest)); - } catch (NoSuchAlgorithmException nsae) { - throw new IllegalStateException(nsae); // never thrown unless SHA-256 is not provided. - } - } - - public static String generateSignature(Map headers, final String keyId, final byte[] sharedSecret) { - try { - final Mac sha256HMAC = Mac.getInstance("HmacSHA256"); - final SecretKeySpec secretKey = new SecretKeySpec(Base64.decodeBase64(sharedSecret), "HmacSHA256"); - sha256HMAC.init(secretKey); - - final StringBuilder signatureString = new StringBuilder(); - final StringBuilder headersString = new StringBuilder(); - - for (Map.Entry e : headers.entrySet()) { - signatureString.append('\n').append(e.getKey()).append(": ").append(e.getValue()); - headersString.append(' ').append(e.getKey()); - } - signatureString.delete(0, 1); - headersString.delete(0, 1); - - final StringBuilder signature = new StringBuilder(); - sha256HMAC.update(signatureString.toString().getBytes(StandardCharsets.UTF_8)); - final byte[] hashBytes = sha256HMAC.doFinal(); - - signature.append("keyid=\"").append(keyId).append("\", ") - .append("algorithm=\"HmacSHA256\", ") - .append("headers=\"").append(headersString).append("\", ") - .append("signature=\"").append(Base64.encodeBase64String(hashBytes)).append('\"'); - - return signature.toString(); - } catch (Exception e) { - throw new RuntimeException(e); - } - } - - public static String post(Map headers, String payload) throws IOException { - HttpURLConnection connection = (HttpURLConnection) new URL("https://testflex.cybersource.com/flex/v1/keys").openConnection(); - connection.setRequestMethod("POST"); - connection.setDoOutput(true); - connection.setConnectTimeout(5000); - connection.setReadTimeout(5000); - - // HEADERS - connection.setRequestProperty("Accept", "application/json; charset=utf-8"); - connection.setRequestProperty("Content-Type", "application/json; charset=utf-8"); - connection.setRequestProperty("User-Agent", "URLConnection Java JSP GitHub Example"); - for (Map.Entry header : headers.entrySet()) { - connection.setRequestProperty(header.getKey(), header.getValue()); - } - - OutputStreamWriter out = new OutputStreamWriter(connection.getOutputStream(), StandardCharsets.UTF_8); - try { - out.write(payload); - } finally { - out.close(); - } - - StringBuilder result = new StringBuilder(); - BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream(), StandardCharsets.UTF_8)); - try { - final char[] buffer = new char[4096]; - int bytesRead; - - while ((bytesRead = reader.read(buffer)) != -1) { - result.append(buffer, 0, bytesRead); - } - } finally { - reader.close(); - } - return result.toString(); - } -} diff --git a/java8/jsp-microform-nosdk/src/main/java/com/cybersource/example/FlexServletContextListener.java b/java8/jsp-microform-nosdk/src/main/java/com/cybersource/example/FlexServletContextListener.java deleted file mode 100644 index b93f10d..0000000 --- a/java8/jsp-microform-nosdk/src/main/java/com/cybersource/example/FlexServletContextListener.java +++ /dev/null @@ -1,24 +0,0 @@ -/** - * Copyright (c) 2017 by CyberSource - * Governing licence: https://github.com/CyberSource/cybersource-flex-samples/blob/master/LICENSE.md - */ -package com.cybersource.example; - -import java.io.InputStream; -import javax.servlet.ServletContextEvent; -import javax.servlet.ServletContextListener; -import javax.servlet.annotation.WebListener; - -@WebListener -public class FlexServletContextListener implements ServletContextListener { - - public void contextInitialized(ServletContextEvent sce) { - InputStream merchantConf = sce.getServletContext().getResourceAsStream("/WEB-INF/credentials.properties"); - FlexKeyProvider fkp = new FlexKeyProvider(merchantConf); - sce.getServletContext().setAttribute(FlexKeyProvider.class.getName(), fkp); - } - - public void contextDestroyed(ServletContextEvent sce) { - } - -} diff --git a/java8/jsp-microform-nosdk/src/main/webapp/WEB-INF/credentials.properties b/java8/jsp-microform-nosdk/src/main/webapp/WEB-INF/credentials.properties deleted file mode 100644 index 1f3ca39..0000000 --- a/java8/jsp-microform-nosdk/src/main/webapp/WEB-INF/credentials.properties +++ /dev/null @@ -1,4 +0,0 @@ -merchantId=YOUR MERCHANT ID -keyId=YOUR KEY ID -sharedSecret=YOUR SHARED SECRET - diff --git a/java8/jsp-microform/src/main/webapp/WEB-INF/credentials.properties b/java8/jsp-microform/src/main/webapp/WEB-INF/credentials.properties deleted file mode 100644 index d59c0a0..0000000 --- a/java8/jsp-microform/src/main/webapp/WEB-INF/credentials.properties +++ /dev/null @@ -1,3 +0,0 @@ -merchantId=YOUR MERCHANT ID -keyId=YOUR KEY ID -sharedSecret=YOUR SHARED SECRET \ No newline at end of file diff --git a/java8/spring-boot/.gitignore b/java8/spring-boot/.gitignore deleted file mode 100644 index ad08727..0000000 --- a/java8/spring-boot/.gitignore +++ /dev/null @@ -1,42 +0,0 @@ -# Covers all spring-boot ignore files -# Reference: https://github.com/spring-projects/spring-boot/blob/master/.gitignore - -.gradle -*.sw? -.#* -*# -*~ -/build -/code -.classpath -.project -.settings -.metadata -.factorypath -.recommenders -bin -build -lib/ -target -.factorypath -.springBeans -interpolated*.xml -dependency-reduced-pom.xml -build.log -_site/ -.*.md.html -manifest.yml -MANIFEST.MF -settings.xml -activemq-data -overridedb.* -*.iml -*.ipr -*.iws -.idea -*.jar -.DS_Store -.factorypath -dump.rdb - -nbactions.xml diff --git a/java8/spring-boot/README.md b/java8/spring-boot/README.md deleted file mode 100644 index 6abc5cd..0000000 --- a/java8/spring-boot/README.md +++ /dev/null @@ -1,45 +0,0 @@ -# Flex Java Example - -A minimalist java/spring-boot example integration using Flex-API tokenization. - -## Prerequisites - -- [Java 8](http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html) -- [JCE unlimited policy files](http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html) -- [Maven](https://maven.apache.org/install.html) - -## Setup Instructions - -1. Modify `./src/main/resources/application.properties` with the credentials created through [VISA Developer Portal](https://developer.visa.com/). - - ```properties - vdp.api-key=_YOUR_APPLICATION_SPECIFIC_API_KEY_ - vdp.shared-secret=_YOUR_APPLICATION_SPECIFIC_SHARED_SECRET_ - ``` - -2. Build and run the application using maven - ```bash - mvn clean spring-boot:run - ``` - This will serve the application from [https://localhost:8443](https://localhost:8443). - -## Tips - -- If you are having issues, checkout the full [FLEX documentation](https://developer.visa.com/products/cybersource/reference#cybersource__cybersource_flex_api). - -- To change the port the application is served on, update `server.port=8443` in `application.properties`, replacing `8443` with your desired port number. - -- If the application throws `java.security.InvalidKeyException: Illegal key size` you have probably not installed the [JCE unlimited policy files](http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html). - -## Browser Support - -- Chrome 37+ -- Firefox 34+ -- Edge 12+ -- Opera 24+ - -*NB: IE11 and Safari support could be achieved through the use of polyfills for promises and Web Crypto API such as [webcrypto-shim](https://github.com/vibornoff/webcrypto-shim) and [promiz](https://github.com/Zolmeister/promiz). However, these are not included in the examples.* - -## Disclaimer - -This respository is provided as a learning aid for merchants wishing to integrate with the Flex API. The code samples are not production ready and are intended for illustrative purposes only. As such, any use of these code samples in a production setting is strongly discouraged. Any usage of these code samples must comply with the license agreement as defined in `LICENSE.md` at the root level of this repository. \ No newline at end of file diff --git a/java8/spring-boot/pom.xml b/java8/spring-boot/pom.xml deleted file mode 100644 index a82187e..0000000 --- a/java8/spring-boot/pom.xml +++ /dev/null @@ -1,52 +0,0 @@ - - - - 4.0.0 - - com.cybersource.flex.application - spring-boot - 1.0-BETA - jar - - Flex-API Spring-Boot Demo - A mocked merchant checkout and payment pages using Flex-API tokenization - https://github.com/CyberSource/cybersource-flex-samples/spring-boot - - - org.springframework.boot - spring-boot-starter-parent - 1.2.5.RELEASE - - - - - UTF-8 - 1.8 - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - - - - org.springframework.boot - spring-boot-starter - - - org.springframework.boot - spring-boot-starter-thymeleaf - - - org.springframework.boot - spring-boot-starter-web - - - \ No newline at end of file diff --git a/java8/spring-boot/src/main/java/com/cybersource/flex/application/CheckoutController.java b/java8/spring-boot/src/main/java/com/cybersource/flex/application/CheckoutController.java deleted file mode 100644 index 6b91b92..0000000 --- a/java8/spring-boot/src/main/java/com/cybersource/flex/application/CheckoutController.java +++ /dev/null @@ -1,117 +0,0 @@ -/** - * Copyright (c) 2016 by CyberSource - * Governing licence: https://github.com/CyberSource/cybersource-flex-samples/blob/master/LICENSE.md - */ -package com.cybersource.flex.application; - -import com.cybersource.flex.models.KeyParameters; -import com.cybersource.flex.models.KeyParametersMessageConverter; -import com.cybersource.flex.models.KeyResult; -import com.cybersource.flex.vdp.VDPEnpoints; -import java.security.PublicKey; -import java.util.HashMap; -import java.util.Map; -import javax.annotation.PostConstruct; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.stereotype.Controller; -import org.springframework.ui.Model; -import org.springframework.web.bind.annotation.ModelAttribute; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.client.RestTemplate; - -@Controller -public class CheckoutController { - - @Value("${vdp.api-key}") - private String apiKey; - @Value("${vdp.shared-secret}") - private String sharedSecret; - - private final FlexSecurityService flexSecurityService; - private final RestTemplate restTemplate = new RestTemplate(); - - @Autowired - public CheckoutController(final FlexSecurityService flexSecurityService) { - this.flexSecurityService = flexSecurityService; - } - - @PostConstruct - private void postConstruct() { - restTemplate.getMessageConverters().add(0, new KeyParametersMessageConverter(apiKey, sharedSecret)); - } - - @ModelAttribute - public void setFramingResponseHeader(HttpServletResponse response) { - response.setHeader("X-Frame-Options", "DENY"); - } - - @RequestMapping("/") - String redirect(final HttpSession session) { - session.invalidate(); - return "redirect:checkout"; - } - - @RequestMapping("/checkout") - String checkout(final HttpSession session, final Model model) { - // retrieve one time use public RSA key from Flex to facilitate PAN encryption - final KeyParameters keyParameters = new KeyParameters(); - KeyResult key = restTemplate.postForObject(VDPEnpoints.Sandbox.keysUrl(apiKey), keyParameters, KeyResult.class); - - // parse Flex public key in DER format and store it in session for future use (i.e. to verify token signature) - PublicKey flexPublicKey = flexSecurityService.decodePublicKey(key.getDer().getPublicKey()); - session.setAttribute("flexPublicKey", flexPublicKey); - - // Add JSON Web Keystore to the view model and return rendered "checkout" page - model.addAttribute("jwk", key.getJwk()); - return "checkout"; - } - - @RequestMapping(value = "/receipt", method = RequestMethod.POST) - String receipt(@RequestParam Map postParams, final HttpSession session, final Model model) { - postParams = validateUntrustedParameters(postParams); - - // Read in the public key to use and remove it from the session - PublicKey flexPublicKey = (PublicKey) session.getAttribute("flexPublicKey"); - session.removeAttribute("flexPublicKey"); // no longer needed - - // verify Flex signature passed as POST parameter - String signedFields = (String) postParams.get("flex_signedFields"); - StringBuilder sb = new StringBuilder(); - for (String k : signedFields.split(",")) { - sb.append(','); - sb.append(postParams.get("flex_" + k)); - } - final String signedValues = sb.substring(1); - final String signature = (String) postParams.get("flex_signature"); - if (!flexSecurityService.verify(flexPublicKey, signedValues, signature)) { - throw new RuntimeException("The signature is not valid"); - } - - /** - * - * The payment may now be completed using the received & validated - * token. - * - * For demonstration purposes, all post parameters are added to the view - * model to display data received from cardholder's browser. - */ - model.addAttribute("postParams", postParams); - return "receipt"; - } - - private Map validateUntrustedParameters(Map parameters) { - Map retVal = new HashMap<>(); - // Each parameter must undergo proper validation / sanitization. - // The type of validation to be implemented will vary between individual - // Flex API integrations. It is merchant's responsibility to implement adequate - // parameter validation for production deployments. - parameters.forEach((k, v) -> retVal.put(k, v)); - return retVal; - } - -} diff --git a/java8/spring-boot/src/main/java/com/cybersource/flex/application/EntryPoint.java b/java8/spring-boot/src/main/java/com/cybersource/flex/application/EntryPoint.java deleted file mode 100644 index 6d89c23..0000000 --- a/java8/spring-boot/src/main/java/com/cybersource/flex/application/EntryPoint.java +++ /dev/null @@ -1,17 +0,0 @@ -/** - * Copyright (c) 2016 by CyberSource - * Governing licence: https://github.com/CyberSource/cybersource-flex-samples/blob/master/LICENSE.md - */ -package com.cybersource.flex.application; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication -public class EntryPoint { - - public static void main(String... args) throws Exception { - SpringApplication.run(EntryPoint.class, args); - } - -} diff --git a/java8/spring-boot/src/main/java/com/cybersource/flex/application/FlexSecurityService.java b/java8/spring-boot/src/main/java/com/cybersource/flex/application/FlexSecurityService.java deleted file mode 100644 index 266c5ac..0000000 --- a/java8/spring-boot/src/main/java/com/cybersource/flex/application/FlexSecurityService.java +++ /dev/null @@ -1,45 +0,0 @@ -/** - * Copyright (c) 2016 by CyberSource - * Governing licence: https://github.com/CyberSource/cybersource-flex-samples/blob/master/LICENSE.md - */ -package com.cybersource.flex.application; - -import java.security.InvalidKeyException; -import java.security.KeyFactory; -import java.security.NoSuchAlgorithmException; -import java.security.PublicKey; -import java.security.Signature; -import java.security.SignatureException; -import java.security.spec.InvalidKeySpecException; -import java.security.spec.X509EncodedKeySpec; -import java.util.Base64; -import org.springframework.stereotype.Service; - -@Service -public class FlexSecurityService { - - private static final Base64.Decoder DECODER = Base64.getDecoder(); - - public PublicKey decodePublicKey(String derEncodedKey) { - try { - byte[] keyBytes = DECODER.decode(derEncodedKey); - PublicKey publicKey = KeyFactory.getInstance("RSA").generatePublic(new X509EncodedKeySpec(keyBytes)); - return publicKey; - } catch (NoSuchAlgorithmException | InvalidKeySpecException e) { - throw new RuntimeException(e); - } - } - - public boolean verify(final PublicKey publicKey, final String dataToVerify, final String base64Signature) { - try { - final Signature signInstance = Signature.getInstance("SHA512withRSA"); - signInstance.initVerify(publicKey); - signInstance.update(dataToVerify.getBytes()); - byte[] signature = DECODER.decode(base64Signature); - return signInstance.verify(signature); - } catch (NoSuchAlgorithmException | InvalidKeyException | SignatureException ex) { - throw new RuntimeException(ex); - } - } - -} diff --git a/java8/spring-boot/src/main/java/com/cybersource/flex/models/DerPublicKey.java b/java8/spring-boot/src/main/java/com/cybersource/flex/models/DerPublicKey.java deleted file mode 100644 index ad79780..0000000 --- a/java8/spring-boot/src/main/java/com/cybersource/flex/models/DerPublicKey.java +++ /dev/null @@ -1,37 +0,0 @@ -/** - * Copyright (c) 2016 by CyberSource - * Governing licence: https://github.com/CyberSource/cybersource-flex-samples/blob/master/LICENSE.md - */ -package com.cybersource.flex.models; - -public class DerPublicKey { - - private String format; - private String algorithm; - private String publicKey; - - public String getFormat() { - return format; - } - - public void setFormat(String format) { - this.format = format; - } - - public String getAlgorithm() { - return algorithm; - } - - public void setAlgorithm(String algorithm) { - this.algorithm = algorithm; - } - - public String getPublicKey() { - return publicKey; - } - - public void setPublicKey(String publicKey) { - this.publicKey = publicKey; - } - -} diff --git a/java8/spring-boot/src/main/java/com/cybersource/flex/models/JsonWebKey.java b/java8/spring-boot/src/main/java/com/cybersource/flex/models/JsonWebKey.java deleted file mode 100644 index ab87b2d..0000000 --- a/java8/spring-boot/src/main/java/com/cybersource/flex/models/JsonWebKey.java +++ /dev/null @@ -1,74 +0,0 @@ -/** - * Copyright (c) 2016 by CyberSource - * Governing licence: https://github.com/CyberSource/cybersource-flex-samples/blob/master/LICENSE.md - */ -package com.cybersource.flex.models; - -/** - * This class conforms to the JSON Web Key (JWK) format as defined here: - * https://tools.ietf.org/html/rfc7517#section-4 It's purpose is to allow us to - * easily serialize out a JWK for client-side use by the WebCryptoApi. - */ -public class JsonWebKey { - - /** - * Key Type - */ - private String kty; - /** - * Public Key Use - */ - private String use; - /** - * Key ID - */ - private String kid; - /** - * Modulus - */ - private String n; - /** - * Exponent - */ - private String e; - - public String getKty() { - return kty; - } - - public void setKty(String keyType) { - this.kty = keyType; - } - - public String getUse() { - return use; - } - - public void setUse(String keyUse) { - this.use = keyUse; - } - - public String getKid() { - return kid; - } - - public void setKid(String keyId) { - this.kid = keyId; - } - - public String getN() { - return n; - } - - public void setN(String modulus) { - this.n = modulus; - } - - public String getE() { - return e; - } - - public void setE(String exponent) { - this.e = exponent; - } -} diff --git a/java8/spring-boot/src/main/java/com/cybersource/flex/models/KeyParameters.java b/java8/spring-boot/src/main/java/com/cybersource/flex/models/KeyParameters.java deleted file mode 100644 index 70d3d70..0000000 --- a/java8/spring-boot/src/main/java/com/cybersource/flex/models/KeyParameters.java +++ /dev/null @@ -1,26 +0,0 @@ -/** - * Copyright (c) 2016 by CyberSource - * Governing licence: https://github.com/CyberSource/cybersource-flex-samples/blob/master/LICENSE.md - */ -package com.cybersource.flex.models; - -import java.io.Serializable; - -public class KeyParameters implements Serializable { - - private String encryptionType = "RsaOaep256"; - - public String getEncryptionType() { - return encryptionType; - } - - public void setEncryptionType(String encryptionType) { - this.encryptionType = encryptionType; - } - - @Override - public String toString() { - return "{\"encryptionType\": \"" + encryptionType + "\"}"; - } - -} diff --git a/java8/spring-boot/src/main/java/com/cybersource/flex/models/KeyParametersMessageConverter.java b/java8/spring-boot/src/main/java/com/cybersource/flex/models/KeyParametersMessageConverter.java deleted file mode 100644 index 510728c..0000000 --- a/java8/spring-boot/src/main/java/com/cybersource/flex/models/KeyParametersMessageConverter.java +++ /dev/null @@ -1,47 +0,0 @@ -/** - * Copyright (c) 2016 by CyberSource - * Governing licence: https://github.com/CyberSource/cybersource-flex-samples/blob/master/LICENSE.md - */ -package com.cybersource.flex.models; - -import com.cybersource.flex.vdp.VDPSignatureHelper; -import java.io.IOException; -import java.nio.charset.StandardCharsets; -import org.springframework.http.HttpInputMessage; -import org.springframework.http.HttpOutputMessage; -import org.springframework.http.MediaType; -import org.springframework.http.converter.AbstractHttpMessageConverter; -import org.springframework.http.converter.HttpMessageNotReadableException; -import org.springframework.http.converter.HttpMessageNotWritableException; - -public class KeyParametersMessageConverter extends AbstractHttpMessageConverter { - - private final String apiKey; - private final String sharedSecret; - - public KeyParametersMessageConverter(final String apiKey, final String sharedSecret) { - super(MediaType.APPLICATION_JSON); - this.apiKey = apiKey; - this.sharedSecret = sharedSecret; - } - - @Override - protected boolean supports(Class clazz) { - return KeyParameters.class.equals(clazz); - } - - @Override - protected KeyParameters readInternal(Class clazz, HttpInputMessage inputMessage) throws IOException, HttpMessageNotReadableException { - throw new UnsupportedOperationException("Not expected as response."); - } - - @Override - protected void writeInternal(KeyParameters keyParameters, HttpOutputMessage outputMessage) throws IOException, HttpMessageNotWritableException { - final String body = keyParameters.toString(); - final String xPayToken = VDPSignatureHelper.generateXpaytoken("payments/flex/v1/keys", "apikey=" + apiKey, body, sharedSecret); - - outputMessage.getHeaders().set(VDPSignatureHelper.HTTP_REQHDR_XPAYTOKEN, xPayToken); - outputMessage.getBody().write(body.getBytes(StandardCharsets.UTF_8)); - } - -} diff --git a/java8/spring-boot/src/main/java/com/cybersource/flex/models/KeyResult.java b/java8/spring-boot/src/main/java/com/cybersource/flex/models/KeyResult.java deleted file mode 100644 index 7e04c82..0000000 --- a/java8/spring-boot/src/main/java/com/cybersource/flex/models/KeyResult.java +++ /dev/null @@ -1,37 +0,0 @@ -/** - * Copyright (c) 2016 by CyberSource - * Governing licence: https://github.com/CyberSource/cybersource-flex-samples/blob/master/LICENSE.md - */ -package com.cybersource.flex.models; - -public class KeyResult { - - private String keyId; - private DerPublicKey der; - private JsonWebKey jwk; - - public String getKeyId() { - return keyId; - } - - public void setKeyId(String keyId) { - this.keyId = keyId; - } - - public DerPublicKey getDer() { - return der; - } - - public void setDer(DerPublicKey derPublicKey) { - this.der = derPublicKey; - } - - public JsonWebKey getJwk() { - return jwk; - } - - public void setJwk(JsonWebKey jsonWebKey) { - this.jwk = jsonWebKey; - } - -} diff --git a/java8/spring-boot/src/main/java/com/cybersource/flex/vdp/VDPEnpoints.java b/java8/spring-boot/src/main/java/com/cybersource/flex/vdp/VDPEnpoints.java deleted file mode 100644 index af4b44f..0000000 --- a/java8/spring-boot/src/main/java/com/cybersource/flex/vdp/VDPEnpoints.java +++ /dev/null @@ -1,31 +0,0 @@ -/** - * Copyright (c) 2016 by CyberSource - * Governing licence: https://github.com/CyberSource/cybersource-flex-samples/blob/master/LICENSE.md - */ -package com.cybersource.flex.vdp; - -public enum VDPEnpoints { - Sandbox("https://sandbox.api.visa.com/cybersource/payments/flex/v1/keys", "https://sandbox.webapi.visa.com/cybersource/payments/flex/v1/tokens"), - Production("https://api.visa.com/cybersource/payments/flex/v1/keys", "https://api.visa.com/cybersource/payments/flex/v1/tokens"); - - private final String keysEnpoint; - private final String tokensEnpoint; - - private VDPEnpoints(String keysEnpoint, String tokensEnpoint) { - this.keysEnpoint = keysEnpoint; - this.tokensEnpoint = tokensEnpoint; - } - - public String getKeysEnpoint() { - return keysEnpoint; - } - - public String getTokensEnpoint() { - return tokensEnpoint; - } - - public String keysUrl(final String apiKey) { - return String.format("%s?apikey=%s", keysEnpoint, apiKey); - } - -} diff --git a/java8/spring-boot/src/main/java/com/cybersource/flex/vdp/VDPSignatureException.java b/java8/spring-boot/src/main/java/com/cybersource/flex/vdp/VDPSignatureException.java deleted file mode 100644 index 60f1882..0000000 --- a/java8/spring-boot/src/main/java/com/cybersource/flex/vdp/VDPSignatureException.java +++ /dev/null @@ -1,16 +0,0 @@ -/** - * Copyright (c) 2016 by CyberSource - * Governing licence: https://github.com/CyberSource/cybersource-flex-samples/blob/master/LICENSE.md - */ -package com.cybersource.flex.vdp; - -/** - * Runtime exception raised, when unable to properly sign VDP request. - */ -public final class VDPSignatureException extends RuntimeException { - - VDPSignatureException(final Throwable t) { - super(t); - } - -} diff --git a/java8/spring-boot/src/main/java/com/cybersource/flex/vdp/VDPSignatureHelper.java b/java8/spring-boot/src/main/java/com/cybersource/flex/vdp/VDPSignatureHelper.java deleted file mode 100644 index 3644ad0..0000000 --- a/java8/spring-boot/src/main/java/com/cybersource/flex/vdp/VDPSignatureHelper.java +++ /dev/null @@ -1,75 +0,0 @@ -/** - * Copyright (c) 2016 by CyberSource - * Governing licence: https://github.com/CyberSource/cybersource-flex-samples/blob/master/LICENSE.md - */ -package com.cybersource.flex.vdp; - -import java.math.BigInteger; -import java.nio.charset.StandardCharsets; -import java.security.InvalidKeyException; -import java.security.NoSuchAlgorithmException; -import javax.crypto.Mac; -import javax.crypto.spec.SecretKeySpec; - -/** - * VISA Developer Platform helper - */ -public final class VDPSignatureHelper { - - private VDPSignatureHelper() { - throw new IllegalStateException(); - } - - /** - * The name of HTTP header carrying the authentication token - */ - public static final String HTTP_REQHDR_XPAYTOKEN = "X-Pay-Token"; - - /** - * Hashing algorithm used for signing HTTP requests. - */ - private static final String HASH_ALG = "HmacSHA256"; - - /** - * Generic method to calculate HMAC signature for VDP endpoint. - * - * @param resource_path This is the API endpoint you would like to invoke - * after the context path. - * @param query_string The API key is a required query parameter. Query - * parameters should be in lexicographical order. - * @param request_body This is the API endpoint specific request body - * string. - * @param shared_secret The Shared Secret from the application details page. - * @return - * @throws VDPSignatureException - */ - public static String generateXpaytoken(final String resource_path, final String query_string, final String request_body, final String shared_secret) throws VDPSignatureException { - try { - final long timestamp = System.currentTimeMillis() / 1000L; - final Mac sha256HMAC = Mac.getInstance(HASH_ALG); - final SecretKeySpec secretKey = new SecretKeySpec(shared_secret.getBytes(StandardCharsets.UTF_8), HASH_ALG); - sha256HMAC.init(secretKey); - - sha256HMAC.update(Long.toString(timestamp).getBytes(StandardCharsets.UTF_8)); - sha256HMAC.update(resource_path.getBytes(StandardCharsets.UTF_8)); - sha256HMAC.update(query_string.getBytes(StandardCharsets.UTF_8)); - sha256HMAC.update(request_body.getBytes(StandardCharsets.UTF_8)); - - final byte[] hashByte = sha256HMAC.doFinal(); - return "xv2:" + timestamp + ":" + toHex(hashByte).toLowerCase(); - } catch (NoSuchAlgorithmException | InvalidKeyException | IllegalStateException e) { - throw new VDPSignatureException(e); - } - } - - /** - * Converts byte array to hex string representation. - * - * @param bytes byte array to be converted to hex string - * @return hex string representation of byte array - */ - private static String toHex(byte[] bytes) { - final BigInteger bi = new BigInteger(1, bytes); - return String.format("%0" + (bytes.length << 1) + "X", bi); - } -} diff --git a/java8/spring-boot/src/main/resources/.gitignore b/java8/spring-boot/src/main/resources/.gitignore deleted file mode 100644 index edd25bc..0000000 --- a/java8/spring-boot/src/main/resources/.gitignore +++ /dev/null @@ -1 +0,0 @@ -*.p12 diff --git a/java8/spring-boot/src/main/resources/README.md b/java8/spring-boot/src/main/resources/README.md deleted file mode 100644 index a814e01..0000000 --- a/java8/spring-boot/src/main/resources/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# Folder contents - -| Folder / Filename | Purpose | -|------------------------|----------------| -| /public | Assets placed here are served publicly from the root of the webserver. In our example this contains all the scripts and css used. | -| /templates | All [Thymeleaf templates](http://www.thymeleaf.org/) used by the application in rendering html pages. | -| application.properties | The Spring-Boot application configuration. In our example this is used to enable HTTPS via embedded Tomcat as the WebCryptoAPI requires pages to be served via secure protocol only. Additionally, this is where all merchant credentials and configuration is stored (as per setup instructions step 1). | -| embedded-tomcat.jks | Self signed X.509 certificate keystore generated with keytool command. This certificate is used to mock “merchant site” being served over HTTPS. In a real production environment the SSL certificate should not be part of source code and would typically be provisioned directly to production servers. | -| .gitignore | Prevents any accidental commit of p12 keystore to the git repository. | \ No newline at end of file diff --git a/java8/spring-boot/src/main/resources/application.properties b/java8/spring-boot/src/main/resources/application.properties deleted file mode 100644 index 5e951eb..0000000 --- a/java8/spring-boot/src/main/resources/application.properties +++ /dev/null @@ -1,20 +0,0 @@ -# VISA Developer Platform credentials - https://developer.visa.com/ -# -# This property file is for demonstartion purposes only. -# You MUST take proper precautions to protect your credentials, such as -# NEVER storing your credentials unencrypted with application code. -# -vdp.api-key=_YOUR_APPLICATION_SPECIFIC_API_KEY_ -vdp.shared-secret=_YOUR_APPLICATION_SPECIFIC_SHARED_SECRET_ - -# Embedded Tomcat configuration properties -# -# The properties below enable HTTPS on TCP port 8443. -server.port=8443 -# Please note that this example uses self-signed X.509 certificate with CN=localhost. -# Keystore and private key passwords provided below are not encrypted. -# While it is acceptable for demonstration and example purposes, -# it must not be treated as production grade configuration. -server.ssl.key-store=classpath:embedded-tomcat.jks -server.ssl.key-store-password=changeit -server.ssl.key-password=changeit \ No newline at end of file diff --git a/java8/spring-boot/src/main/resources/embedded-tomcat.jks b/java8/spring-boot/src/main/resources/embedded-tomcat.jks deleted file mode 100644 index 72b0a3187dfb04c54153a6f3b911e470c54eae4a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2251 zcmchYc{tRK7RP5}vJAo?Yl(`H`3Bf_X9TmNU{&m()9Cx^esws^%ZAPYL zVQ`C~XZAz-qmNOCKXr}l=l=N1p=>;ki*w=oK+-0UMPg$+!I>cC9j#-JUpbozR~zU2 z`$Tzy_Mzrqd361cS;5&#!{@DJq}0tjZ=)=Pzr9%-YFzpjxu^1BM*1XuGG&sEW}v?I z)FOu;oVQj)O*KY(mErbMf@Sa??-%k%koko)4}P~<)W%{04WmP@+QxcGP(P)m_UW$D z)_iy0=dKo6+y{zK3L~3x3x^Gv>BV06gvYG({r_UvMESF>(bCivoxJ(M+yds51MB%N zC$vXxJk|YT3DT;fEN!q?`iY|JoveCth}kRGfMwB3!ZTW*s`9!uuYmAdX}Y+%aCMt? zGEpN1+k)n%ta{AZcN&$lt$u{#MYWz!kQWfkzAIQMB<6)RvbSq+kRH;y7dhaUz!=5E z+V9VZerX@}){C@ibn&c2M^WBkSEz2^JZc3E620a!o93Cg8`f8Cx*3^KnD_+aCFkop zx%c~onnn53`Fb7SUg|KaUc632uu&kfyH3vT11yFkU##K9dlH z@5l%Ho?1>0J^yO46fc<|QA0K!xXrU6ucs-rwA!G(kC3sm0B;{LX?(W6ea?` z6L%*#UOCfpUK|f(wQM&q+uWiRcCdJQa}OJ$t%?VNVm9q02szu7*r03XlJ?eG-D4}< zmJa8IlgTb(#Y)Yx;_^~~!;nbFMLNvwuvEFTx!=CjAfr~{{nC>SA4dfndILQtV`}VX z3Ezc#N~&zJky@5%BbR5Kl4aov6sA-jm^0$sAyK^g`$l1QTxHUXLw*xNkcLUtur+Q@ zmL$6&Ub@Ov0ueDq?n|AvjQyWG8&ymp%v};SXF6XZxa+#N)1tVHW-q!mBFlfubWxoa zdd)e&(A*vJ0B=m4#xsYAWfMt*x0in_=<}UAe6+YlzVBJIeq3rlGIzSG$ zf-P!~Q6H2ORg#$rdkSygDUUt0)@vF{cKZ<+!gO;HF|5q@GB;(t+{SI2I=NLos2gQ zD^cvbD|w@f^}Ytr5X%7cmP_I~x%F+8+Mo9aCb`&O&9`t2ww@6As@$aL6_&aexBNDR zk@=)xpQ_(4jjFp+cHHOrEH?63;1UP~ z4FgEfKLHX1p9h72ArP4M!dYGb!OA8ZtslLE0E0PLKmZZLbCj4+D;O&u+=_UU=o9c? za_lz(|BbN!MmYXQcmbaOOosBYdHLX-yxe_!{Qz-61O|&yz$gQku$QnHJ3)kk5}*hi z3I5go-}R8dlK-^i=wU!fU~UjV0<%L%U@$0cOw8Daey8}QA6r>8T!wo$CZPA7Hq7=9 z$W)M5%ZRXQ_BlOATmzvhDn5~|@-|;a@v@!yrh@NRZ|Fb=|125ztu0=AxmvG1pQMt~ zT(-2Ekocjr107_sQ_Pse00){aVFKzIOx?YnzvXyNF9kFS`!A(@aw#uvJb+_sXgsEn zQ*kQ|Rw5M|#x!@MEfSX)%r>xs;!~wFP{JSe(h_obtt7slhmj zs^!o#LGa==1rvbrf0&KO@v3BJGflKr zxIPz-PLC9+|I@^yyE-xv41x@etY!>9CHG}<;_ww&+`@-!u(33mXhsOXVSW8;`7d=H zP@9`!2L8~_i7zcik`2&~dh%;ktaBv)N@xVDf$GUo*Sm&}ht;ExyirvbaVyK!$Cq*K zH|}dDn#+YINyi7GrKg_fh())Zrg(~=34F}mB%x8)Cy@F#lDai(ljy+M_U$j6s%A^z z$?`nYb;opU*Qbpak#=}|1v~|EH(g$bLw5IRqFCxoO<(Q3(uckjPJLB-lkOljw{zhQ zSV2*rC?Ib)n(wl84V03FO3vjqrkB`6bdxrNb)i=a+zq<7WC#X)skAEh?XaW@BIb;! l!dCDB=MPi*;|r&$Y5U~0u?zjqapTX9`8o+%A|d1E{{|4P>G1#n diff --git a/java8/spring-boot/src/main/resources/public/flex.js b/java8/spring-boot/src/main/resources/public/flex.js deleted file mode 100644 index 53df74f..0000000 --- a/java8/spring-boot/src/main/resources/public/flex.js +++ /dev/null @@ -1,162 +0,0 @@ -/** -* Copyright (c) 2016 by CyberSource -* Governing licence: https://github.com/CyberSource/cybersource-flex-samples/blob/master/LICENSE.md -*/ - -(function(global) { - - var _flexPublicKey; - - var _endpoints = { - keys: "https://sandbox.api.visa.com/cybersource/payments/flex/v1/keys", - // note that you mustn't pass API Key with a call to tokens endpoint. - tokens: "https://sandbox.webapi.visa.com/cybersource/payments/flex/v1/tokens" - } - /* PRIVATE FUNCTIONS */ - var _isFunction = function(functionToCheck) { - var getType = {}; - return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]'; - } - - var _arrayBufferToString = function (buf) { - return String.fromCharCode.apply(null, new Uint8Array(buf)); - } - - var _stringToArrayBuffer = function(str) { - var buf = new ArrayBuffer(str.length); // 2 bytes for each char - var bufView = new Uint8Array(buf); - for (var i=0, strLen=str.length; i < strLen; i++) { - bufView[i] = str.charCodeAt(i); - } - return buf; - } - - // If webcrypto-shim + promiz libs we will have IE11 & Safari 8+ support - var _crypto = global.crypto; - if(_crypto === undefined) { - throw new Error("Browser does not support WebCryptoApi"); - } - - var _importKey = function(keystore){ - - // Remove "use" var due to bug currently in Edge browser - // https://connect.microsoft.com/IE/feedback/details/2242108/webcryptoapi-importing-jwk-with-use-field-fails - // https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/6202624/ - if (/Edge/.test(global.navigator.userAgent)) { - delete keystore.use; - } - - return _crypto.subtle.importKey( - "jwk", keystore, - { name: "RSA-OAEP", hash: { name: "SHA-256" }}, - true, ["encrypt"]); - } - - var _encrypt = function (input, publicKey){ - if(!publicKey){ throw new Error("Public key has not been imported."); } - return _crypto.subtle.encrypt( - { - name: "RSA-OAEP", - // this is out of spec but required for edge - // http://answers.microsoft.com/en-us/windows/forum/apps_windows_10-msedge/rsa-public-key-encryption-in-edge/c6634469-283c-46ce-a4d8-357baaab267f - hash: { name: "SHA-256" } - }, - publicKey, - _stringToArrayBuffer(input) - ); - } - - var _tokenise = function(options, responseHandler, errorHandler){ - if(_flexPublicKey === undefined) { - throw new Error("FLEX.setup has not been called."); - } - - /* Check our response handlers are functions */ - if(responseHandler === undefined || !_isFunction(responseHandler)) { - throw new Error("responseHandler is not a function"); - } - if(errorHandler === undefined || !_isFunction(errorHandler)) { - throw new Error("errorHandler is not a function"); - } - - _encrypt(options.cardNumber, _flexPublicKey).then(function(encryptedCardNumber) { - - var request = new XMLHttpRequest(); - request.open('POST', _endpoints.tokens, true); - request.setRequestHeader("Content-Type", "application/json;charset=UTF-8"); - - /* Response handler */ - request.onload = function(){ - if (request.readyState === 4 && request.status >= 200 && request.status < 400) { - responseHandler(request.status, JSON.parse(request.responseText)); - } - else { - errorHandler(request.status, request.responseText); - } - } - - /* Catch all for connectivity issues */ - request.onerror = function() { - errorHandler(request.status, request.responseText); - }; - - var ciphertext = new Uint8Array(encryptedCardNumber); - var base64Encoded = global.btoa(String.fromCharCode.apply(null, ciphertext)); - - var tokensRequest = { - keyId: global.keystore['kid'], - cardInfo: { - cardNumber: base64Encoded, - cardType: options.cardType - } - }; - - // Optional params - if (options.cardExpirationMonth) { tokensRequest['cardInfo']['cardExpirationMonth'] = options.cardExpirationMonth; } - if (options.cardExpirationYear) { tokensRequest['cardInfo']['cardExpirationYear'] = options.cardExpirationYear; } - - console.info("Tokenising..."); - request.send(JSON.stringify(tokensRequest)); - }) - .catch(function(err){ - console.log(err); - console.error("There was an error during tokenisation"); - }); - } - - var _checkBrowserSupport = function(){ - - /* Web Crypto API */ - if(_crypto === undefined || _crypto.subtle === undefined || !_isFunction(_crypto.subtle.encrypt)){ - throw new Error("Your browser does not support Web Crypto API."); - } - - /* btoa */ - if(global.btoa === undefined || !_isFunction(global.btoa)){ - throw new Error("Your browser does not support btoa."); - } - } - - var _setup = function(keystore, options){ - /* This will throw if the browser doesn't support the required functions - * in future browser support will be much broader with graceful fallback - * through polyfils etc. - **/ - _checkBrowserSupport(); - - var importKey = _importKey(keystore) - .then(function (importedKey) { _flexPublicKey = importedKey; }) - .catch(function (err) { console.error(err); }); - } - - /* PUBLIC FUNCTIONS */ - var _FLEX = { - setup: _setup, - createToken: _tokenise - }; - - /* Expose FLEX as a global */ - global.FLEX = _FLEX; - console.info("FLEX: SDK loaded"); - -}(this)) \ No newline at end of file diff --git a/java8/spring-boot/src/main/resources/templates/checkout.html b/java8/spring-boot/src/main/resources/templates/checkout.html deleted file mode 100644 index fd1d2b3..0000000 --- a/java8/spring-boot/src/main/resources/templates/checkout.html +++ /dev/null @@ -1,138 +0,0 @@ - - - - - - - - Checkout - - - - - -
-
-
- Payment Form -
-
-
-
- - -
-
- - -
-
- - -
-
- -
-
- -
-
- -
-
-
- - - - - - - - - - - - -
-
-
-
- - - - - - - - - - - \ No newline at end of file diff --git a/java8/spring-boot/src/main/resources/templates/receipt.html b/java8/spring-boot/src/main/resources/templates/receipt.html deleted file mode 100644 index 65b52c5..0000000 --- a/java8/spring-boot/src/main/resources/templates/receipt.html +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - Receipt - - - - - -
-
- -
-
-

This is what was posted to the merchant servers.

-

Note the masked PAN and payment token. These can be used to process a transaction with out directly handling the PAN data.

-
- - - - - - - - - - - - - - -
ParamValue
-
-
-
- - \ No newline at end of file diff --git a/jsp-flexjs/.idea/compiler.xml b/jsp-flexjs/.idea/compiler.xml new file mode 100644 index 0000000..d809885 --- /dev/null +++ b/jsp-flexjs/.idea/compiler.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/jsp-flexjs/.idea/encodings.xml b/jsp-flexjs/.idea/encodings.xml new file mode 100644 index 0000000..b26911b --- /dev/null +++ b/jsp-flexjs/.idea/encodings.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/jsp-flexjs/.idea/libraries/Maven__com_cybersource_flex_server_sdk_0_3_0.xml b/jsp-flexjs/.idea/libraries/Maven__com_cybersource_flex_server_sdk_0_3_0.xml new file mode 100644 index 0000000..5dda2c0 --- /dev/null +++ b/jsp-flexjs/.idea/libraries/Maven__com_cybersource_flex_server_sdk_0_3_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/jsp-flexjs/.idea/libraries/Maven__javax_servlet_javax_servlet_api_3_1_0.xml b/jsp-flexjs/.idea/libraries/Maven__javax_servlet_javax_servlet_api_3_1_0.xml new file mode 100644 index 0000000..c24f7e3 --- /dev/null +++ b/jsp-flexjs/.idea/libraries/Maven__javax_servlet_javax_servlet_api_3_1_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/jsp-flexjs/.idea/libraries/Maven__javax_servlet_jsp_javax_servlet_jsp_api_2_3_1.xml b/jsp-flexjs/.idea/libraries/Maven__javax_servlet_jsp_javax_servlet_jsp_api_2_3_1.xml new file mode 100644 index 0000000..61d9cb7 --- /dev/null +++ b/jsp-flexjs/.idea/libraries/Maven__javax_servlet_jsp_javax_servlet_jsp_api_2_3_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/jsp-flexjs/.idea/misc.xml b/jsp-flexjs/.idea/misc.xml new file mode 100644 index 0000000..21640d8 --- /dev/null +++ b/jsp-flexjs/.idea/misc.xml @@ -0,0 +1,13 @@ + + + + + + + + + \ No newline at end of file diff --git a/jsp-flexjs/.idea/modules.xml b/jsp-flexjs/.idea/modules.xml new file mode 100644 index 0000000..3fc0fc8 --- /dev/null +++ b/jsp-flexjs/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/jsp-flexjs/.idea/workspace.xml b/jsp-flexjs/.idea/workspace.xml new file mode 100644 index 0000000..934cc2d --- /dev/null +++ b/jsp-flexjs/.idea/workspace.xml @@ -0,0 +1,315 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+
+ + +
+
+ +
+
+ +
+
+ +
+
+
+ + + + + + + + + + + + + + + + diff --git a/java8/jsp-microform-nosdk/src/main/webapp/receipt.jsp b/jsp-flexjs/src/main/webapp/receipt.jsp similarity index 100% rename from java8/jsp-microform-nosdk/src/main/webapp/receipt.jsp rename to jsp-flexjs/src/main/webapp/receipt.jsp diff --git a/java8/spring-boot/src/main/resources/public/Site.css b/jsp-flexjs/src/main/webapp/site.css similarity index 95% rename from java8/spring-boot/src/main/resources/public/Site.css rename to jsp-flexjs/src/main/webapp/site.css index 0c045da..a9248cc 100644 --- a/java8/spring-boot/src/main/resources/public/Site.css +++ b/jsp-flexjs/src/main/webapp/site.css @@ -1,22 +1,22 @@ -/** -* Copyright (c) 2016 by CyberSource -* Governing licence: https://github.com/CyberSource/cybersource-flex-samples/blob/master/LICENSE.md -*/ - -body { - margin-top: 50px; -} -.container { - max-width: 400px; -} -.receipt-container { - max-width: 600px; -} -.receipt-container .panel-heading .btn.pull-right { - margin-top: -5px; -} -.receipt-container .table { - table-layout: fixed; - word-wrap: break-word; - white-space: pre-wrap; +/** +* Copyright (c) 2016 by CyberSource +* Governing licence: https://github.com/CyberSource/cybersource-flex-samples/blob/master/LICENSE.md +*/ + +body { + margin-top: 50px; +} +.container { + max-width: 400px; +} +.receipt-container { + max-width: 600px; +} +.receipt-container .panel-heading .btn.pull-right { + margin-top: -5px; +} +.receipt-container .table { + table-layout: fixed; + word-wrap: break-word; + white-space: pre-wrap; } \ No newline at end of file diff --git a/jsp-flexjs/target/classes/com/cybersource/example/CharArrayProperties.class b/jsp-flexjs/target/classes/com/cybersource/example/CharArrayProperties.class new file mode 100644 index 0000000000000000000000000000000000000000..6295cccf1d76022d08d465db2850c4ecee9680e1 GIT binary patch literal 1775 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 F_a~Ztl*|AC literal 0 HcmV?d00001 diff --git a/jsp-flexjs/target/classes/com/cybersource/example/FlexServletContextListener.class b/jsp-flexjs/target/classes/com/cybersource/example/FlexServletContextListener.class new file mode 100644 index 0000000000000000000000000000000000000000..ae015fb386b8fc3881762c42adf66faff8b6eed0 GIT binary patch literal 1657 zcma)6TT>KA6#jZIj9Dk3cv)ABf*LL>Fp)rvU@)+-O1Z2lv9R(uJG9t3JF_*@OP2g0 zpMAkHsY>4Rkbjhym~VQP%VM&Xm%f}nm+yS%oc{CgUw#8HhsOojm@Hrl0l`zn< zqiZVGGLX>{U3#f#g8-E4tDohL!1!eCwY%qboH#Xedd=7OWT2N4q}i8mS^`sjLqC!G zKSbf4+A;C6vByMi{SW^FMPhrYcH5DwRT$7oOGa8rCVR=)J1TTGf>v8^=}5XwX7l-$ zcD*;7Zp(0E7`|^|(Xh?ubKPXuWUQlbKS{N)Wyq?kgx?$gP1S5dh(PICJJ6~rw^giI zf|Vc$wLwQvZM!o8Ik=!A%tU^57I!e~U zvW>^e^yucfC2Zuje&W6QCAYNokP0zEG9q142D{wfN8O2^{-uGGCK1x6>QPL-oq zgWYhg9}LE#*Jm=FrIk2sG4^^o8jit0p$c}F(nz0nENu=y+U zKTf~LK-~!Q2e4*7;7k_Ne_(X_0H3`@ss0w17IPHXsUW|YFXeuJhaAe7#a$GLV;l?g zy~F`n<$VG7%sp%HEi(b|lp(4?;wlo=IM*^tv>%~|tNfEkXi=nx5`B!&%T=s#e}wBM zuQH<*>8FS*%!65UGfYk;>I!{6{*@TDWfEhJ{fG3u6@vH$Rf2{IQr4 s^CbSFB|p4Fz6|~hJ$*v-m;rQ|>IuOq(aGr$#%;w86rI`T!0W4~ulmGw# literal 0 HcmV?d00001 diff --git a/jsp-flexjs/target/classes/com/cybersource/example/MerchantCredentials.class b/jsp-flexjs/target/classes/com/cybersource/example/MerchantCredentials.class new file mode 100644 index 0000000000000000000000000000000000000000..ab5cceca6ed223d9f6726981074ef93f2b8b685c GIT binary patch literal 1627 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�`|NRWZ#CplxWae6Ay)kB%-a*NDzE%O6v; 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 F_a~Ztl*|AC literal 0 HcmV?d00001 diff --git a/jsp-flexjs/target/jsp-flexjs-1.0/WEB-INF/classes/com/cybersource/example/FlexServletContextListener.class b/jsp-flexjs/target/jsp-flexjs-1.0/WEB-INF/classes/com/cybersource/example/FlexServletContextListener.class new file mode 100644 index 0000000000000000000000000000000000000000..ae015fb386b8fc3881762c42adf66faff8b6eed0 GIT binary patch literal 1657 zcma)6TT>KA6#jZIj9Dk3cv)ABf*LL>Fp)rvU@)+-O1Z2lv9R(uJG9t3JF_*@OP2g0 zpMAkHsY>4Rkbjhym~VQP%VM&Xm%f}nm+yS%oc{CgUw#8HhsOojm@Hrl0l`zn< zqiZVGGLX>{U3#f#g8-E4tDohL!1!eCwY%qboH#Xedd=7OWT2N4q}i8mS^`sjLqC!G zKSbf4+A;C6vByMi{SW^FMPhrYcH5DwRT$7oOGa8rCVR=)J1TTGf>v8^=}5XwX7l-$ zcD*;7Zp(0E7`|^|(Xh?ubKPXuWUQlbKS{N)Wyq?kgx?$gP1S5dh(PICJJ6~rw^giI zf|Vc$wLwQvZM!o8Ik=!A%tU^57I!e~U zvW>^e^yucfC2Zuje&W6QCAYNokP0zEG9q142D{wfN8O2^{-uGGCK1x6>QPL-oq zgWYhg9}LE#*Jm=FrIk2sG4^^o8jit0p$c}F(nz0nENu=y+U zKTf~LK-~!Q2e4*7;7k_Ne_(X_0H3`@ss0w17IPHXsUW|YFXeuJhaAe7#a$GLV;l?g zy~F`n<$VG7%sp%HEi(b|lp(4?;wlo=IM*^tv>%~|tNfEkXi=nx5`B!&%T=s#e}wBM zuQH<*>8FS*%!65UGfYk;>I!{6{*@TDWfEhJ{fG3u6@vH$Rf2{IQr4 s^CbSFB|p4Fz6|~hJ$*v-m;rQ|>IuOq(aGr$#%;w86rI`T!0W4~ulmGw# literal 0 HcmV?d00001 diff --git a/jsp-flexjs/target/jsp-flexjs-1.0/WEB-INF/classes/com/cybersource/example/MerchantCredentials.class b/jsp-flexjs/target/jsp-flexjs-1.0/WEB-INF/classes/com/cybersource/example/MerchantCredentials.class new file mode 100644 index 0000000000000000000000000000000000000000..ab5cceca6ed223d9f6726981074ef93f2b8b685c GIT binary patch literal 1627 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�+p702J>-y7D&8@I<3FSH6+1)qPY~k>rHj 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 N3}6BE70g1&{{U;Vy^#O_ literal 0 HcmV?d00001 diff --git a/java8/flex-sdk-spring-boot/src/main/resources/public/Site.css b/jsp-flexjs/target/jsp-flexjs-1.0/WEB-INF/site.css similarity index 95% rename from java8/flex-sdk-spring-boot/src/main/resources/public/Site.css rename to jsp-flexjs/target/jsp-flexjs-1.0/WEB-INF/site.css index 0c045da..a9248cc 100644 --- a/java8/flex-sdk-spring-boot/src/main/resources/public/Site.css +++ b/jsp-flexjs/target/jsp-flexjs-1.0/WEB-INF/site.css @@ -1,22 +1,22 @@ -/** -* Copyright (c) 2016 by CyberSource -* Governing licence: https://github.com/CyberSource/cybersource-flex-samples/blob/master/LICENSE.md -*/ - -body { - margin-top: 50px; -} -.container { - max-width: 400px; -} -.receipt-container { - max-width: 600px; -} -.receipt-container .panel-heading .btn.pull-right { - margin-top: -5px; -} -.receipt-container .table { - table-layout: fixed; - word-wrap: break-word; - white-space: pre-wrap; +/** +* Copyright (c) 2016 by CyberSource +* Governing licence: https://github.com/CyberSource/cybersource-flex-samples/blob/master/LICENSE.md +*/ + +body { + margin-top: 50px; +} +.container { + max-width: 400px; +} +.receipt-container { + max-width: 600px; +} +.receipt-container .panel-heading .btn.pull-right { + margin-top: -5px; +} +.receipt-container .table { + table-layout: fixed; + word-wrap: break-word; + white-space: pre-wrap; } \ No newline at end of file diff --git a/java8/flex-sdk-spring-boot/src/main/resources/templates/checkout.html b/jsp-flexjs/target/jsp-flexjs-1.0/index.jsp similarity index 76% rename from java8/flex-sdk-spring-boot/src/main/resources/templates/checkout.html rename to jsp-flexjs/target/jsp-flexjs-1.0/index.jsp index 3f58830..a41796a 100644 --- a/java8/flex-sdk-spring-boot/src/main/resources/templates/checkout.html +++ b/jsp-flexjs/target/jsp-flexjs-1.0/index.jsp @@ -1,5 +1,6 @@ - - +<%@page language="java" contentType="text/html" pageEncoding="UTF-8"%> +<%@page import="com.cybersource.example.FlexKeyProvider"%> + @@ -7,7 +8,7 @@ Checkout - + @@ -17,7 +18,7 @@ Payment Form
-
+
- - - - - - + + @@ -84,17 +79,17 @@
- - + + + - + diff --git a/jsp-flexjs/target/jsp-flexjs-1.0/integration.js b/jsp-flexjs/target/jsp-flexjs-1.0/integration.js new file mode 100644 index 0000000..13ee965 --- /dev/null +++ b/jsp-flexjs/target/jsp-flexjs-1.0/integration.js @@ -0,0 +1,27 @@ +// integration.js +import flex from '@cybersource/flex-sdk-web'; + +document.querySelector('#payBtn').on('click', () => { + const options = { + kid: jwk.kid, + keystore: jwk, + cardInfo: { + cardNumber: document.querySelector('#cardNumber').value, + cardType: document.querySelector('select[name="cardType"]').value, + expiryMonth: document.querySelector('input[name="expiryMonth"]').value, + expiryYear: document.querySelector('input[name="expiryYear"]').value + }, + // production: true // without specifying this tokens are created in test env + }; + + flex.createToken(options, (response) => { + if (response.error) { + alert('There has been an error!'); + console.log(response); + return; + } + + document.querySelector("input[name='token']").value = response.token; + document.querySelector('#paymentForm').submit(); + }); +}); \ No newline at end of file diff --git a/java8/jsp-microform/src/main/webapp/receipt.jsp b/jsp-flexjs/target/jsp-flexjs-1.0/receipt.jsp similarity index 100% rename from java8/jsp-microform/src/main/webapp/receipt.jsp rename to jsp-flexjs/target/jsp-flexjs-1.0/receipt.jsp diff --git a/jsp-flexjs/target/jsp-flexjs-1.0/site.css b/jsp-flexjs/target/jsp-flexjs-1.0/site.css new file mode 100644 index 0000000..a9248cc --- /dev/null +++ b/jsp-flexjs/target/jsp-flexjs-1.0/site.css @@ -0,0 +1,22 @@ +/** +* Copyright (c) 2016 by CyberSource +* Governing licence: https://github.com/CyberSource/cybersource-flex-samples/blob/master/LICENSE.md +*/ + +body { + margin-top: 50px; +} +.container { + max-width: 400px; +} +.receipt-container { + max-width: 600px; +} +.receipt-container .panel-heading .btn.pull-right { + margin-top: -5px; +} +.receipt-container .table { + table-layout: fixed; + word-wrap: break-word; + white-space: pre-wrap; +} \ No newline at end of file diff --git a/jsp-flexjs/target/maven-archiver/pom.properties b/jsp-flexjs/target/maven-archiver/pom.properties new file mode 100644 index 0000000..10d0e9f --- /dev/null +++ b/jsp-flexjs/target/maven-archiver/pom.properties @@ -0,0 +1,4 @@ +#Created by Apache Maven 3.6.0 +groupId=com.cybersource.examples.flex +artifactId=jsp-flexjs +version=1.0 diff --git a/jsp-flexjs/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/jsp-flexjs/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst new file mode 100644 index 0000000..e69de29 diff --git a/jsp-flexjs/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/jsp-flexjs/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst new file mode 100644 index 0000000..e132504 --- /dev/null +++ b/jsp-flexjs/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -0,0 +1,4 @@ +/Users/brianmac/Code/cybersource-flex-samples/jsp-flexjs/src/main/java/com/cybersource/example/FlexServletContextListener.java +/Users/brianmac/Code/cybersource-flex-samples/jsp-flexjs/src/main/java/com/cybersource/example/CharArrayProperties.java +/Users/brianmac/Code/cybersource-flex-samples/jsp-flexjs/src/main/java/com/cybersource/example/FlexKeyProvider.java +/Users/brianmac/Code/cybersource-flex-samples/jsp-flexjs/src/main/java/com/cybersource/example/MerchantCredentials.java diff --git a/jsp-microform/.idea/compiler.xml b/jsp-microform/.idea/compiler.xml new file mode 100644 index 0000000..3c3e575 --- /dev/null +++ b/jsp-microform/.idea/compiler.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/jsp-microform/.idea/encodings.xml b/jsp-microform/.idea/encodings.xml new file mode 100644 index 0000000..b26911b --- /dev/null +++ b/jsp-microform/.idea/encodings.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/jsp-microform/.idea/libraries/Maven__com_cybersource_flex_server_sdk_0_3_0.xml b/jsp-microform/.idea/libraries/Maven__com_cybersource_flex_server_sdk_0_3_0.xml new file mode 100644 index 0000000..5dda2c0 --- /dev/null +++ b/jsp-microform/.idea/libraries/Maven__com_cybersource_flex_server_sdk_0_3_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/jsp-microform/.idea/libraries/Maven__javax_servlet_javax_servlet_api_3_1_0.xml b/jsp-microform/.idea/libraries/Maven__javax_servlet_javax_servlet_api_3_1_0.xml new file mode 100644 index 0000000..c24f7e3 --- /dev/null +++ b/jsp-microform/.idea/libraries/Maven__javax_servlet_javax_servlet_api_3_1_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/jsp-microform/.idea/libraries/Maven__javax_servlet_jsp_javax_servlet_jsp_api_2_3_1.xml b/jsp-microform/.idea/libraries/Maven__javax_servlet_jsp_javax_servlet_jsp_api_2_3_1.xml new file mode 100644 index 0000000..61d9cb7 --- /dev/null +++ b/jsp-microform/.idea/libraries/Maven__javax_servlet_jsp_javax_servlet_jsp_api_2_3_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/jsp-microform/.idea/misc.xml b/jsp-microform/.idea/misc.xml new file mode 100644 index 0000000..21640d8 --- /dev/null +++ b/jsp-microform/.idea/misc.xml @@ -0,0 +1,13 @@ + + + + + + + + + \ No newline at end of file diff --git a/jsp-microform/.idea/modules.xml b/jsp-microform/.idea/modules.xml new file mode 100644 index 0000000..be81153 --- /dev/null +++ b/jsp-microform/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/jsp-microform/.idea/workspace.xml b/jsp-microform/.idea/workspace.xml new file mode 100644 index 0000000..6686636 --- /dev/null +++ b/jsp-microform/.idea/workspace.xml @@ -0,0 +1,441 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +