All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.adyen.model.recurring.StoreTokenRequest Maven / Gradle / Ivy

/*
 *                       ######
 *                       ######
 * ############    ####( ######  #####. ######  ############   ############
 * #############  #####( ######  #####. ######  #############  #############
 *        ######  #####( ######  #####. ######  #####  ######  #####  ######
 * ###### ######  #####( ######  #####. ######  #####  #####   #####  ######
 * ###### ######  #####( ######  #####. ######  #####          #####  ######
 * #############  #############  #############  #############  #####  ######
 *  ############   ############  #############   ############  #####  ######
 *                                      ######
 *                               #############
 *                               ############
 *
 * Adyen Java API Library
 *
 * Copyright (c) 2017 Adyen B.V.
 * This file is open source and available under the MIT license.
 * See the LICENSE file for more info.
 */
package com.adyen.model.recurring;

import com.adyen.model.Card;
import com.google.gson.annotations.SerializedName;

/**
 * StoreTokenRequest - This type contains data that should be passed in either prepareStoreToken or storeToken calls.
 */
public class StoreTokenRequest {

    @SerializedName("card")
    private Card card;

    @SerializedName("merchantAccount")
    private String merchantAccount;

    @SerializedName("pspEchoData")
    private String pspEchoData;

    @SerializedName("recurring")
    private Recurring recurring;

    @SerializedName("selectedBrand")
    private String selectedBrand;

    @SerializedName("shopperEmail")
    private String shopperEmail;

    @SerializedName("shopperIP")
    private String shopperIP;

    @SerializedName("shopperReference")
    private String shopperReference;

    @SerializedName("shopperStatement")
    private String shopperStatement;

    /**
     * A container for card data.
     *
     * @return card
     */
    public Card getCard() {
        return card;
    }

    public void setCard(Card card) {
        this.card = card;
    }

    public StoreTokenRequest card(Card card) {
        this.card = card;
        return this;
    }

    /**
     * The merchant account identifier you want to process the (transaction) request with.
     *
     * @return merchantAccount
     */
    public String getMerchantAccount() {
        return merchantAccount;
    }

    public void setMerchantAccount(String merchantAccount) {
        this.merchantAccount = merchantAccount;
    }

    public StoreTokenRequest merchantAccount(String merchantAccount) {
        this.merchantAccount = merchantAccount;
        return this;
    }

    /**
     * The pspEchoData value received in the prepareStoreToken response.
     *
     * @return pspEchoData
     */
    public String getPspEchoData() {
        return pspEchoData;
    }

    public void setPspEchoData(String pspEchoData) {
        this.pspEchoData = pspEchoData;
    }

    public StoreTokenRequest pspEchoData(String pspEchoData) {
        this.pspEchoData = pspEchoData;
        return this;
    }

    /**
     * A container for the type of recurring contract to be retrieved. The recurring.contract must be set to "RECURRING".
     *
     * @return recurring
     */
    public Recurring getRecurring() {
        return recurring;
    }

    public void setRecurring(Recurring recurring) {
        this.recurring = recurring;
    }

    public StoreTokenRequest recurring(Recurring recurring) {
        this.recurring = recurring;
        return this;
    }

    /**
     * Some payment methods require defining a value for this field to specify how to process the transaction.
     *
     * @return selectedBrand
     */
    public String getSelectedBrand() {
        return selectedBrand;
    }

    public void setSelectedBrand(String selectedBrand) {
        this.selectedBrand = selectedBrand;
    }

    public StoreTokenRequest selectedBrand(String selectedBrand) {
        this.selectedBrand = selectedBrand;
        return this;
    }

    /**
     * The shopper's email address.
     *
     * @return shopperEmail
     */
    public String getShopperEmail() {
        return shopperEmail;
    }

    public void setShopperEmail(String shopperEmail) {
        this.shopperEmail = shopperEmail;
    }

    public StoreTokenRequest shopperEmail(String shopperEmail) {
        this.shopperEmail = shopperEmail;
        return this;
    }

    /**
     * The shopper's IP address.
     *
     * @return shopperIP
     */
    public String getShopperIP() {
        return shopperIP;
    }

    public void setShopperIP(String shopperIP) {
        this.shopperIP = shopperIP;
    }

    public StoreTokenRequest shopperIP(String shopperIP) {
        this.shopperIP = shopperIP;
        return this;
    }

    /**
     * The shopper's reference for the payment transaction.
     *
     * @return shopperReference
     */
    public String getShopperReference() {
        return shopperReference;
    }

    public void setShopperReference(String shopperReference) {
        this.shopperReference = shopperReference;
    }

    public StoreTokenRequest shopperReference(String shopperReference) {
        this.shopperReference = shopperReference;
        return this;
    }

    /**
     * The text to appear on a shopper's statement.
     *
     * @return shopperStatement
     */
    public String getShopperStatement() {
        return shopperStatement;
    }

    public void setShopperStatement(String shopperStatement) {
        this.shopperStatement = shopperStatement;
    }

    public StoreTokenRequest shopperStatement(String shopperStatement) {
        this.shopperStatement = shopperStatement;
        return this;
    }

    public StoreTokenRequest setCardData(String cardNumber, String cardHolder, String expiryMonth, String expiryYear, String cvc) {
        Card card = new Card();
        card.setExpiryMonth(expiryMonth);
        card.setExpiryYear(expiryYear);
        card.setHolderName(cardHolder);
        card.setNumber(cardNumber);
        card.setCvc(cvc);

        this.setCard(card);
        return this;
    }

    public StoreTokenRequest setContractToRecurring() {
        setRecurring(new Recurring().contract(Recurring.ContractEnum.RECURRING));
        return this;
    }

    public StoreTokenRequest setContractToOneClick() {
        setRecurring(new Recurring().contract(Recurring.ContractEnum.ONECLICK));
        return this;
    }

    public StoreTokenRequest setContractToOneClickRecurring() {
        setRecurring(new Recurring().contract(Recurring.ContractEnum.ONECLICK_RECURRING));
        return this;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(this.getClass().getSimpleName());
        sb.append("[merchantAccount=").append(merchantAccount);
        sb.append(", shopperReference=").append(shopperReference);
        sb.append(", shopperEmail=").append(shopperEmail);
        sb.append(", hasCard=").append(card != null);
        sb.append(", selectedBrand=").append(selectedBrand);
        sb.append(", shopperStatement=").append(shopperStatement);
        sb.append("]");
        return sb.toString();
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy