Class DefaultAPSSignatureService
java.lang.Object
com.broadleafcommerce.payment.service.signature.DefaultAPSSignatureService
- All Implemented Interfaces:
APSSignatureService
Service used to create and validate APS Request/Response signatures.
Note: It's VERY important that this class does not log sensitive data or return sensitive data in
exception payloads
- Author:
- Muhammad Salman Farooq
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptioncreateAPSRequestSignature
(Map<String, Object> signatureParams, String applicationId, String tenantId) Returns a request signature based on Request SHA String configured with key broadleaf.amazonpaymentservices.signature.request-sha-phrase and Algorithm configured with key broadleaf.amazonpaymentservices.signature.algorithm
Supported algorithms for key broadleaf.amazonpaymentservices.signature.algorithm are: HmacSHA256 HmacSHA512 SHA-256 SHA-512createAPSResponseSignature
(Map<String, Object> signatureParams, String applicationId, String tenantId) Returns a Response signature based on Response SHA String configured with key broadleaf.amazonpaymentservices.signature.response-sha-phrase and Algorithm configured with key broadleaf.amazonpaymentservices.signature.algorithm
Supported algorithms for key broadleaf.amazonpaymentservices.signature.algorithm are: HmacSHA256 HmacSHA512 SHA-256 SHA-512protected String
generateHash
(String algorithm, String stringToHash, String shaPhrase) This method generates HASH provided based on the algorithm configured with key broadleaf.amazonpaymentservices.signature.algorithm
Supported algorithms for key broadleaf.amazonpaymentservices.signature.algorithm are: HmacSHA256 HmacSHA512 SHA-256 SHA-512protected String
Creates a signature based on the provided signatureParams and shaPhrase.protected APSSignatureConfigurationProperties
void
validateResponseSignature
(Map<String, Object> signatureParams, String applicationId, String tenantId) Validates Response Signature based on the value provided with key signature in responseParams map.
-
Constructor Details
-
DefaultAPSSignatureService
-
-
Method Details
-
createAPSRequestSignature
public String createAPSRequestSignature(Map<String, Object> signatureParams, @Nullable String applicationId, @Nullable String tenantId) throws SignatureCreationExceptionDescription copied from interface:APSSignatureService
Returns a request signature based on Request SHA String configured with key broadleaf.amazonpaymentservices.signature.request-sha-phrase and Algorithm configured with key broadleaf.amazonpaymentservices.signature.algorithm
Supported algorithms for key broadleaf.amazonpaymentservices.signature.algorithm are:- HmacSHA256
- HmacSHA512
- SHA-256
- SHA-512
- Specified by:
createAPSRequestSignature
in interfaceAPSSignatureService
- Parameters:
signatureParams
- parameters you want to create signature of.
signatureParams expected values are:- signatureParams.put(MessageConstants.APS_LANGUAGE, language)
- signatureParams.put(MessageConstants.APS_ACCESS_CODE, accessCode)
- signatureParams.put(MessageConstants.APS_MERCHANT_IDENTIFIER, merchantIdentifier)
- signatureParams.put(MessageConstants.APS_MERCHANT_REFERENCE, merchantReference)
- signatureParams.put(MessageConstants.APS_AMOUNT, amount)
Note: Required in Authorization, Capture, Purchase & Refund transactions - signatureParams.put(MessageConstants.APS_CURRENCY, amount)
Note: Required in Authorization, Capture, Purchase & Refund transactions
applicationId
- the application idtenantId
- the tenant id- Returns:
- generated signature
- Throws:
SignatureCreationException
-
createAPSResponseSignature
public String createAPSResponseSignature(Map<String, Object> signatureParams, @Nullable String applicationId, @Nullable String tenantId) throws SignatureCreationExceptionDescription copied from interface:APSSignatureService
Returns a Response signature based on Response SHA String configured with key broadleaf.amazonpaymentservices.signature.response-sha-phrase and Algorithm configured with key broadleaf.amazonpaymentservices.signature.algorithm
Supported algorithms for key broadleaf.amazonpaymentservices.signature.algorithm are:- HmacSHA256
- HmacSHA512
- SHA-256
- SHA-512
- Specified by:
createAPSResponseSignature
in interfaceAPSSignatureService
- Parameters:
signatureParams
- Request/Response parameters you want to validate signature of
All the parameters returned by APS service should be part of signatureParams except:- signatureParams.put(MessageConstants.APS_SIGNATURE, signature)
applicationId
- the application idtenantId
- the tenant id- Returns:
- generated signature
All the parameters returned by APS service should be part of signatureParams except:- signatureParams.put(MessageConstants.APS_SIGNATURE, signature)
- Throws:
SignatureCreationException
-
validateResponseSignature
public void validateResponseSignature(Map<String, Object> signatureParams, @Nullable String applicationId, @Nullable String tenantId) throws SignatureCreationException, APSResponseSignatureMismatchExceptionDescription copied from interface:APSSignatureService
Validates Response Signature based on the value provided with key signature in responseParams map.- Specified by:
validateResponseSignature
in interfaceAPSSignatureService
- Parameters:
signatureParams
- Request/Response parameters you want to validate signature of
All the parameters returned by APS service should be part of signatureParams except:- signatureParams.put(MessageConstants.APS_SIGNATURE, signature)
applicationId
- the application idtenantId
- the tenant id- Throws:
SignatureCreationException
APSResponseSignatureMismatchException
-
generateSignature
protected String generateSignature(Map<String, Object> signatureParams, String shaPhrase, String algorithm) throws SignatureCreationExceptionCreates a signature based on the provided signatureParams and shaPhrase.- Parameters:
signatureParams
- Parameters that make up most of the signature's contentshaPhrase
- A secret phrase used to secure the signature- Returns:
- The created signature
- Throws:
SignatureCreationException
- if an error is encountered while creating a signature
-
generateHash
protected String generateHash(String algorithm, String stringToHash, String shaPhrase) throws SignatureCreationException This method generates HASH provided based on the algorithm configured with key broadleaf.amazonpaymentservices.signature.algorithm
Supported algorithms for key broadleaf.amazonpaymentservices.signature.algorithm are:- HmacSHA256
- HmacSHA512
- SHA-256
- SHA-512
- Parameters:
algorithm
-stringToHash
-shaPhrase
-- Returns:
- Resultant Hash
- Throws:
SignatureCreationException
-
getProperties
-