diff --git a/pom.xml b/pom.xml index 23231f3..2e6b15b 100644 --- a/pom.xml +++ b/pom.xml @@ -44,6 +44,8 @@ UTF-8 + 1.8 + 1.8 @@ -58,7 +60,11 @@ http [0.2,) - + + javax.xml.bind + jaxb-api + 2.3.0 + @@ -158,5 +164,4 @@ https://oss.sonatype.org/content/repositories/snapshots - diff --git a/src/main/java/cc/protea/spreedly/Spreedly.java b/src/main/java/cc/protea/spreedly/Spreedly.java index b560cc8..605a887 100644 --- a/src/main/java/cc/protea/spreedly/Spreedly.java +++ b/src/main/java/cc/protea/spreedly/Spreedly.java @@ -1,7 +1,6 @@ package cc.protea.spreedly; import cc.protea.spreedly.model.*; -import cc.protea.spreedly.model.internal.*; import java.util.ArrayList; import java.util.List; @@ -400,4 +399,27 @@ public SpreedlyTransactionResponse complete(String token, SpreedlyCompleteReques return util.post("https://core.spreedly.com/v1/transactions/" + token + "/complete.xml", request, SpreedlyTransactionResponse.class); } + /** + * Create an SCA Provider on the given Merchant Profile. An SCA Provider can be used to run 3DS2 Global + * authentications on the authenticate endpoint or as part of authorize and purchase transactions. + */ + public SpreedlyMerchantProfile create(final SpreedlyMerchantProfileRequest request) { + return util.post("https://core.spreedly.com/v1/merchant_profiles.xml", request, SpreedlyMerchantProfile.class); + } + + /** + * Adds a gateway account to the authenticated environment. One gateway account is required for each set of merchant account + * credentials. Spreedly stores and protects the credentials to be used to authenticate with gateway accounts for + * transaction processing. + */ + public SpreedlyScaProvider create(final SpreedlyScaProviderRequest request) { + return util.post("https://core.spreedly.com/v1/sca/providers.xml", request, SpreedlyScaProvider.class); + } + + /** + * Authenticate a given payment method and amount against provided SCA Provider Key (specified in request URL). + */ + public SpreedlyScaAuthenticationResponse authenticateScaProvider(String scaProviderKey , final SpreedlyTransactionRequest request) { + return util.post("https://core.spreedly.com/v1/sca/providers/" + scaProviderKey + "/authenticate.xml", request, SpreedlyScaAuthenticationResponse.class); + } } diff --git a/src/main/java/cc/protea/spreedly/model/SpreedlyAmexDetails.java b/src/main/java/cc/protea/spreedly/model/SpreedlyAmexDetails.java new file mode 100644 index 0000000..b8a2861 --- /dev/null +++ b/src/main/java/cc/protea/spreedly/model/SpreedlyAmexDetails.java @@ -0,0 +1,28 @@ +package cc.protea.spreedly.model; + +import javax.xml.bind.annotation.*; + +@XmlRootElement(name = "amex") +@XmlAccessorType(XmlAccessType.FIELD) +public class SpreedlyAmexDetails { + + @XmlElement(name = "acquirer_bin") public Long acquirerBin; + @XmlElement(name = "merchant_url") public String merchantUrl; + + public Long getAcquirerBin() { + return acquirerBin; + } + + public void setAcquirerBin(Long acquirerBin) { + this.acquirerBin = acquirerBin; + } + + public String getMerchantUrl() { + return merchantUrl; + } + + public void setMerchantUrl(String merchantUrl) { + this.merchantUrl = merchantUrl; + } + +} \ No newline at end of file diff --git a/src/main/java/cc/protea/spreedly/model/SpreedlyAmexNetwork.java b/src/main/java/cc/protea/spreedly/model/SpreedlyAmexNetwork.java new file mode 100644 index 0000000..821bb6a --- /dev/null +++ b/src/main/java/cc/protea/spreedly/model/SpreedlyAmexNetwork.java @@ -0,0 +1,48 @@ +package cc.protea.spreedly.model; + +import javax.xml.bind.annotation.*; + +@XmlRootElement(name = "amex") +@XmlAccessorType(XmlAccessType.FIELD) +public class SpreedlyAmexNetwork { + + @XmlElement(name = "acquirer_merchant_id") public String acquirerMerchantId; + @XmlElement(name = "country_code") public Long countryCode; + @XmlElement(name = "mcc") public Long mcc; + @XmlElement(name = "merchant_name") public String name; + + public String getAcquirerMerchantId() { + return acquirerMerchantId; + } + + public void setAcquirerMerchantId(String acquirerMerchantId) { + this.acquirerMerchantId = acquirerMerchantId; + } + + public Long getCountryCode() { + return countryCode; + } + + public void setCountryCode(Long countryCode) { + this.countryCode = countryCode; + } + + public Long getMcc() { + return mcc; + } + + public void setMcc(Long mcc) { + this.mcc = mcc; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + + +} \ No newline at end of file diff --git a/src/main/java/cc/protea/spreedly/model/SpreedlyCompleteRequest.java b/src/main/java/cc/protea/spreedly/model/SpreedlyCompleteRequest.java index 8657e35..44c9251 100644 --- a/src/main/java/cc/protea/spreedly/model/SpreedlyCompleteRequest.java +++ b/src/main/java/cc/protea/spreedly/model/SpreedlyCompleteRequest.java @@ -1,4 +1,3 @@ - package cc.protea.spreedly.model; import java.util.ArrayList; @@ -10,54 +9,49 @@ import javax.xml.bind.annotation.XmlType; @XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "", propOrder = { - "entry" -}) +@XmlType(name = "", propOrder = {"entry"}) @XmlRootElement(name = "context") public class SpreedlyCompleteRequest { - protected List entry; + protected List entry; - public List getEntry() { - if (entry == null) { - entry = new ArrayList(); - } - return this.entry; - } + public List getEntry() { + if (entry == null) { + entry = new ArrayList(); + } + return this.entry; + } - public void setEntry(List entry) { - this.entry = entry; - } + public void setEntry(List entry) { + this.entry = entry; + } - @XmlAccessorType(XmlAccessType.FIELD) - @XmlType(name = "", propOrder = { - "key", - "value" - }) - public static class Entry { + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = {"key", "value"}) + public static class Entry { - @XmlElement(required = true) - protected String key; - @XmlElement(required = true) - protected Object value; + @XmlElement(required = true) + protected String key; + @XmlElement(required = true) + protected Object value; - public String getKey() { - return key; - } + public String getKey() { + return key; + } - public void setKey(String value) { - this.key = value; - } + public void setKey(String value) { + this.key = value; + } - public Object getValue() { - return value; - } + public Object getValue() { + return value; + } - public void setValue(Object value) { - this.value = value; - } + public void setValue(Object value) { + this.value = value; + } - } + } -} +} \ No newline at end of file diff --git a/src/main/java/cc/protea/spreedly/model/SpreedlyCreditNetwork.java b/src/main/java/cc/protea/spreedly/model/SpreedlyCreditNetwork.java new file mode 100644 index 0000000..70751d0 --- /dev/null +++ b/src/main/java/cc/protea/spreedly/model/SpreedlyCreditNetwork.java @@ -0,0 +1,41 @@ +package cc.protea.spreedly.model; + +import javax.xml.bind.annotation.*; + +@XmlRootElement(name = "card_networks") +@XmlAccessorType(XmlAccessType.FIELD) +public class SpreedlyCreditNetwork { + + @XmlElement(name = "visa") + public SpreedlyVisaNetwork visa; + @XmlElement(name = "mastercard") + public SpreedlyMastercardNetwork mastercard; + @XmlElement(name = "amex") + public SpreedlyAmexNetwork amex; + + public SpreedlyVisaNetwork getVisa() { + return visa; + } + + public void setVisa(SpreedlyVisaNetwork visa) { + this.visa = visa; + } + + public SpreedlyMastercardNetwork getMastercard() { + return mastercard; + } + + public void setMastercard(SpreedlyMastercardNetwork mastercard) { + this.mastercard = mastercard; + } + + public SpreedlyAmexNetwork getAmex() { + return amex; + } + + public void setAmex(SpreedlyAmexNetwork amex) { + this.amex = amex; + } + + +} \ No newline at end of file diff --git a/src/main/java/cc/protea/spreedly/model/SpreedlyMastercardDetails.java b/src/main/java/cc/protea/spreedly/model/SpreedlyMastercardDetails.java new file mode 100644 index 0000000..484f5f2 --- /dev/null +++ b/src/main/java/cc/protea/spreedly/model/SpreedlyMastercardDetails.java @@ -0,0 +1,29 @@ +package cc.protea.spreedly.model; + +import javax.xml.bind.annotation.*; + +@XmlRootElement(name = "mastercard") +@XmlAccessorType(XmlAccessType.FIELD) +public class SpreedlyMastercardDetails { + + @XmlElement(name = "acquirer_bin") public Long acquirerBin; + @XmlElement(name = "merchant_url") public String merchantUrl; + + public Long getAcquirerBin() { + return acquirerBin; + } + + public void setAcquirerBin(Long acquirerBin) { + this.acquirerBin = acquirerBin; + } + + public String getMerchantUrl() { + return merchantUrl; + } + + public void setMerchantUrl(String merchantUrl) { + this.merchantUrl = merchantUrl; + } + + +} \ No newline at end of file diff --git a/src/main/java/cc/protea/spreedly/model/SpreedlyMastercardNetwork.java b/src/main/java/cc/protea/spreedly/model/SpreedlyMastercardNetwork.java new file mode 100644 index 0000000..b78698c --- /dev/null +++ b/src/main/java/cc/protea/spreedly/model/SpreedlyMastercardNetwork.java @@ -0,0 +1,48 @@ +package cc.protea.spreedly.model; + +import javax.xml.bind.annotation.*; + +@XmlRootElement(name = "mastercard") +@XmlAccessorType(XmlAccessType.FIELD) +public class SpreedlyMastercardNetwork { + + @XmlElement(name = "acquirer_merchant_id") public String acquirerMerchantId; + @XmlElement(name = "country_code") public Long countryCode; + @XmlElement(name = "mcc") public Long mcc; + @XmlElement(name = "merchant_name") public String name; + + public String getAcquirerMerchantId() { + return acquirerMerchantId; + } + + public void setAcquirerMerchantId(String acquirerMerchantId) { + this.acquirerMerchantId = acquirerMerchantId; + } + + public Long getCountryCode() { + return countryCode; + } + + public void setCountryCode(Long countryCode) { + this.countryCode = countryCode; + } + + public Long getMcc() { + return mcc; + } + + public void setMcc(Long mcc) { + this.mcc = mcc; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + + +} \ No newline at end of file diff --git a/src/main/java/cc/protea/spreedly/model/SpreedlyMerchantProfile.java b/src/main/java/cc/protea/spreedly/model/SpreedlyMerchantProfile.java new file mode 100644 index 0000000..cab0404 --- /dev/null +++ b/src/main/java/cc/protea/spreedly/model/SpreedlyMerchantProfile.java @@ -0,0 +1,44 @@ +package cc.protea.spreedly.model; + +import javax.xml.bind.annotation.*; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +@XmlRootElement(name = "merchant_profile") +@XmlAccessorType(XmlAccessType.FIELD) +public class SpreedlyMerchantProfile { + @XmlElement(name = "description") public String description; + @XmlElement(name = "token") public String token; + @XmlElement(name = "card_networks") + SpreedlyCreditNetwork creditNetwork; + @XmlElement(name = "created_at") public Date createdOn; + @XmlElement(name = "updated_at") public Date updatedOn; + + + public SpreedlyCreditNetwork getCreditNetwork() { + return creditNetwork; + } + public void setCreditNetwork(SpreedlyCreditNetwork creditNetwork) { + this.creditNetwork = creditNetwork; + } + public Date getCreatedOn() { + return createdOn; + } + public void setCreatedOn(final Date createdOn) { + this.createdOn = createdOn; + } + public Date getUpdatedOn() { + return updatedOn; + } + public void setUpdatedOn(final Date updatedOn) { + this.updatedOn = updatedOn; + } + public String getDescription() { + return description; + } + public void setDescription(final String description) { + this.description = description; + } + +} \ No newline at end of file diff --git a/src/main/java/cc/protea/spreedly/model/SpreedlyMerchantProfileRequest.java b/src/main/java/cc/protea/spreedly/model/SpreedlyMerchantProfileRequest.java new file mode 100644 index 0000000..3e20472 --- /dev/null +++ b/src/main/java/cc/protea/spreedly/model/SpreedlyMerchantProfileRequest.java @@ -0,0 +1,47 @@ +package cc.protea.spreedly.model; + +import javax.xml.bind.annotation.*; + +@XmlRootElement(name = "merchant_profile") +@XmlAccessorType(XmlAccessType.FIELD) +public class SpreedlyMerchantProfileRequest { + @XmlElement(name = "description") + public String description; + @XmlElement(name = "amex") + public SpreedlyAmexNetwork amex; + @XmlElement(name = "visa") + public SpreedlyVisaNetwork visa; + @XmlElement(name = "mastercard") + public SpreedlyMastercardNetwork mastercard; + + public SpreedlyAmexNetwork getAmex() { + return amex; + } + + public void setAmex(SpreedlyAmexNetwork amex) { + this.amex = amex; + } + + public SpreedlyVisaNetwork getVisa() { + return visa; + } + + public void setVisa(SpreedlyVisaNetwork visa) { + this.visa = visa; + } + + public SpreedlyMastercardNetwork getMastercard() { + return mastercard; + } + + public void setMastercard(SpreedlyMastercardNetwork mastercard) { + this.mastercard = mastercard; + } + + public String getDescription() { + return description; + } + public void setDescription(final String description) { + this.description = description; + } +} \ No newline at end of file diff --git a/src/main/java/cc/protea/spreedly/model/SpreedlyScaAuthenticationResponse.java b/src/main/java/cc/protea/spreedly/model/SpreedlyScaAuthenticationResponse.java new file mode 100644 index 0000000..2df30d0 --- /dev/null +++ b/src/main/java/cc/protea/spreedly/model/SpreedlyScaAuthenticationResponse.java @@ -0,0 +1,110 @@ +package cc.protea.spreedly.model; + +import cc.protea.spreedly.model.internal.SpreedlyErrorSetting; +import cc.protea.spreedly.model.internal.SpreedlyNestedMapAdapter; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlRootElement; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; + +@XmlRootElement(name = "transaction") +@XmlAccessorType(XmlAccessType.FIELD) +public class SpreedlyScaAuthenticationResponse implements SpreedlyErrorSetting { + + /** + * Any positive whole number, for example 1234 = $12.34. + */ + @XmlElement(name = "amount") public Integer amountInCents; + /** + * Date and time of origination. + */ + @XmlElement(name = "created_at") public Date createdOn; + /** + * ISO 4217 Currency Code e.g., USD, MXN, EUR + */ + @XmlElement(name = "currency_code") public String currencyCode; + /** + * true if transaction was successful. + */ + public boolean succeeded; + /** + * The token uniquely identifying the transaction at Spreedly. + * This token can be passed into an authorize or purchase transaction via the sca_authentication_token field to automatically fill its payment_method_token and Third Party 3DS2 fields. + */ + public String token; + /** + * SCA Provider token that performs a Spreedly 3DS2 Global authentication before attempting the gateway transaction. + * Please see our Spreedly 3DS2 Global Guide for more info. + */ + @XmlElement(name = "sca_provider_key") public String scaProviderKey; + + public SpreedlyMessage message; + + public Integer getAmountInCents() { + return amountInCents; + } + + public void setAmountInCents(Integer amountInCents) { + this.amountInCents = amountInCents; + } + + public Date getCreatedOn() { + return createdOn; + } + + public void setCreatedOn(Date createdOn) { + this.createdOn = createdOn; + } + + public String getCurrencyCode() { + return currencyCode; + } + + public void setCurrencyCode(String currencyCode) { + this.currencyCode = currencyCode; + } + + public boolean isSucceeded() { + return succeeded; + } + + public void setSucceeded(boolean succeeded) { + this.succeeded = succeeded; + } + + public String getToken() { + return token; + } + + public void setToken(String token) { + this.token = token; + } + + public String getScaProviderKey() { + return scaProviderKey; + } + + public void setScaProviderKey(String scaProviderKey) { + this.scaProviderKey = scaProviderKey; + } + + public SpreedlyMessage getMessage() { + return message; + } + public SpreedlyScaAuthenticationResponse setMessage(final SpreedlyMessage message) { + this.message = message; + return this; + } + + public void setError(final String key, final String error) { + message = new SpreedlyMessage(); + message.key = key; + message.message = error; + this.succeeded = false; + } +} diff --git a/src/main/java/cc/protea/spreedly/model/SpreedlyScaProvider.java b/src/main/java/cc/protea/spreedly/model/SpreedlyScaProvider.java new file mode 100644 index 0000000..2ec3013 --- /dev/null +++ b/src/main/java/cc/protea/spreedly/model/SpreedlyScaProvider.java @@ -0,0 +1,80 @@ +package cc.protea.spreedly.model; + +import javax.xml.bind.annotation.*; +import java.util.Date; + +@XmlRootElement(name = "sca_provider") +@XmlAccessorType(XmlAccessType.FIELD) +public class SpreedlyScaProvider { + + @XmlElement(name = "token") public String token; + @XmlElement(name = "type") public String type ; + @XmlElement(name = "created_at") public Date createdOn; + @XmlElement(name = "updated_at") public Date updatedOn; + @XmlElement(name = "visa") + public SpreedlyVisaDetails visa; + @XmlElement(name = "mastercard") + public SpreedlyMastercardDetails mastercard; + @XmlElement(name = "amex") + public SpreedlyAmexDetails amex; + + public String getType() { + return type; + } + + public String isType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public SpreedlyVisaDetails getVisa() { + return visa; + } + + public void setVisa(SpreedlyVisaDetails visa) { + this.visa = visa; + } + + public SpreedlyMastercardDetails getMastercard() { + return mastercard; + } + + public void setMastercard(SpreedlyMastercardDetails mastercard) { + this.mastercard = mastercard; + } + + public SpreedlyAmexDetails getAmex() { + return amex; + } + + public void setAmex(SpreedlyAmexDetails amex) { + this.amex = amex; + } + + public String getToken() { + return token; + } + + public void setToken(String token) { + this.token = token; + } + + + + public Date getCreatedOn() { + return createdOn; + } + public void setCreatedOn(final Date createdOn) { + this.createdOn = createdOn; + } + public Date getUpdatedOn() { + return updatedOn; + } + public void setUpdatedOn(final Date updatedOn) { + this.updatedOn = updatedOn; + } + +} \ No newline at end of file diff --git a/src/main/java/cc/protea/spreedly/model/SpreedlyScaProviderRequest.java b/src/main/java/cc/protea/spreedly/model/SpreedlyScaProviderRequest.java new file mode 100644 index 0000000..4815338 --- /dev/null +++ b/src/main/java/cc/protea/spreedly/model/SpreedlyScaProviderRequest.java @@ -0,0 +1,59 @@ +package cc.protea.spreedly.model; + +import javax.xml.bind.annotation.*; +import java.util.Date; + +@XmlRootElement(name = "sca_provider") +@XmlAccessorType(XmlAccessType.FIELD) +public class SpreedlyScaProviderRequest { + + @XmlElement(name = "merchant_profile_key") public String merchantProfileKey; + @XmlElement(name = "type") public String type ; + @XmlElement(name = "visa") + public SpreedlyVisaDetails visa; + @XmlElement(name = "mastercard") + public SpreedlyMastercardDetails mastercard; + @XmlElement(name = "amex") + public SpreedlyAmexDetails amex; + + public String getMerchantProfileKey() { + return merchantProfileKey; + } + + public void setMerchantProfileKey(String merchantProfileKey) { + this.merchantProfileKey = merchantProfileKey; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public SpreedlyVisaDetails getVisa() { + return visa; + } + + public void setVisa(SpreedlyVisaDetails visa) { + this.visa = visa; + } + + public SpreedlyMastercardDetails getMastercard() { + return mastercard; + } + + public void setMastercard(SpreedlyMastercardDetails mastercard) { + this.mastercard = mastercard; + } + + public SpreedlyAmexDetails getAmex() { + return amex; + } + + public void setAmex(SpreedlyAmexDetails amex) { + this.amex = amex; + } + +} \ No newline at end of file diff --git a/src/main/java/cc/protea/spreedly/model/SpreedlyTransactionRequest.java b/src/main/java/cc/protea/spreedly/model/SpreedlyTransactionRequest.java index 2bcbc7c..a130e6d 100644 --- a/src/main/java/cc/protea/spreedly/model/SpreedlyTransactionRequest.java +++ b/src/main/java/cc/protea/spreedly/model/SpreedlyTransactionRequest.java @@ -101,6 +101,17 @@ public class SpreedlyTransactionRequest { */ @XmlElement(name = "three_ds_version") public String threeDsVersion; + /** + * The token received in response body of SCA Authenticate endpoint when performing an SCA Authentication on a specified payment method. + */ + @XmlElement(name = "sca_authentication_token") public String scaAuthenticationToken; + + /** + * SCA Provider token that performs a Spreedly 3DS2 Global authentication before attempting the gateway transaction. + * Please see our Spreedly 3DS2 Global Guide for more info. + */ + @XmlElement(name = "sca_provider_key") public String scaProviderKey; + /** * @return A unique string generated by Spreedly to identify a gateway. */ @@ -350,4 +361,20 @@ public void setThreeDsVersion(String threeDsVersion) { this.threeDsVersion = threeDsVersion; } + + public String getScaAuthenticationToken() { + return scaAuthenticationToken; + } + + public void setScaAuthenticationToken(String scaAuthenticationToken) { + this.scaAuthenticationToken = scaAuthenticationToken; + } + + public String getScaProviderKey() { + return scaProviderKey; + } + + public void setScaProviderKey(String scaProviderKey) { + this.scaProviderKey = scaProviderKey; + } } diff --git a/src/main/java/cc/protea/spreedly/model/SpreedlyTransactionResponse.java b/src/main/java/cc/protea/spreedly/model/SpreedlyTransactionResponse.java index 8732eff..3d61d55 100644 --- a/src/main/java/cc/protea/spreedly/model/SpreedlyTransactionResponse.java +++ b/src/main/java/cc/protea/spreedly/model/SpreedlyTransactionResponse.java @@ -133,7 +133,7 @@ public class SpreedlyTransactionResponse implements SpreedlyErrorSetting { @XmlElement(name = "challenge_url") public String challengeUrl; @XmlElement(name = "challenge_form") public String challengeForm; - + /** * @return Any positive whole number, for example 1234 = $12.34. */ diff --git a/src/main/java/cc/protea/spreedly/model/SpreedlyVisaDetails.java b/src/main/java/cc/protea/spreedly/model/SpreedlyVisaDetails.java new file mode 100644 index 0000000..dc8f37e --- /dev/null +++ b/src/main/java/cc/protea/spreedly/model/SpreedlyVisaDetails.java @@ -0,0 +1,28 @@ +package cc.protea.spreedly.model; + +import javax.xml.bind.annotation.*; + +@XmlRootElement(name = "visa") +@XmlAccessorType(XmlAccessType.FIELD) +public class SpreedlyVisaDetails { + + @XmlElement(name = "acquirer_bin") public Long acquirerBin; + @XmlElement(name = "merchant_url") public String merchantUrl; + + public Long getAcquirerBin() { + return acquirerBin; + } + + public void setAcquirerBin(Long acquirerBin) { + this.acquirerBin = acquirerBin; + } + + public String getMerchantUrl() { + return merchantUrl; + } + + public void setMerchantUrl(String merchantUrl) { + this.merchantUrl = merchantUrl; + } + +} \ No newline at end of file diff --git a/src/main/java/cc/protea/spreedly/model/SpreedlyVisaNetwork.java b/src/main/java/cc/protea/spreedly/model/SpreedlyVisaNetwork.java new file mode 100644 index 0000000..9665cd8 --- /dev/null +++ b/src/main/java/cc/protea/spreedly/model/SpreedlyVisaNetwork.java @@ -0,0 +1,48 @@ +package cc.protea.spreedly.model; + +import javax.xml.bind.annotation.*; + +@XmlRootElement(name = "visa") +@XmlAccessorType(XmlAccessType.FIELD) +public class SpreedlyVisaNetwork { + + @XmlElement(name = "acquirer_merchant_id") public String acquirerMerchantId; + @XmlElement(name = "country_code") public Long countryCode; + @XmlElement(name = "mcc") public Long mcc; + @XmlElement(name = "merchant_name") public String name; + + public String getAcquirerMerchantId() { + return acquirerMerchantId; + } + + public void setAcquirerMerchantId(String acquirerMerchantId) { + this.acquirerMerchantId = acquirerMerchantId; + } + + public Long getCountryCode() { + return countryCode; + } + + public void setCountryCode(Long countryCode) { + this.countryCode = countryCode; + } + + public Long getMcc() { + return mcc; + } + + public void setMcc(Long mcc) { + this.mcc = mcc; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + + +} \ No newline at end of file