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

ru.tinkoff.acquiring.sdk.requests.AttachCardRequestBuilder Maven / Gradle / Ivy

package ru.tinkoff.acquiring.sdk.requests;

import java.security.PublicKey;
import java.util.Map;

import ru.tinkoff.acquiring.sdk.AcquiringSdk;

/**
 * @author Vitaliy Markus
 */

final public class AttachCardRequestBuilder extends AcquiringRequestBuilder {

    private final AttachCardRequest request = new AttachCardRequest();

    /**
     * Билдер для запроса AttachCardRequest
     *
     * @param password    Пароль. Выдается банком на каждый магазин.
     * @param terminalKey Уникальный идентификатор терминала. Выдается банком на каждый магазин.
     */
    public AttachCardRequestBuilder(String password, String terminalKey) {
        super(password, terminalKey);
    }

    /**
     * @param cardData Данные карты, преобразованные методом {@link ru.tinkoff.acquiring.sdk.CardData#encode(PublicKey)},
     *                 где ключ получается {@link AcquiringSdk#getPublicKey()}
     */
    public AttachCardRequestBuilder setCardData(final String cardData) {
        request.setCardData(cardData);
        return this;
    }

    /**
     * @param requestKey RequestKey, полученный при запросе AddCard {@link AddCardRequestBuilder}
     */
    public AttachCardRequestBuilder setRequestKey(final String requestKey) {
        request.setRequestKey(requestKey);
        return this;
    }

    /**
     * @param email Email для отправки
     */
    public AttachCardRequestBuilder setEmail(final String email) {
        request.setEmail(email);
        return this;
    }

    /**
     * @param data Объект содержащий дополнительные параметры в виде “ключ”:”значение”. Данные параметры будут переданы на страницу оплаты (в случае ее кастомизации). Максимальная длина для каждого передаваемого параметра:
     *             Ключ – 20 знаков,
     *             Значение – 100 знаков.
     *             Максимальное количество пар «ключ-значение» не может превышать 20.
     */
    public AttachCardRequestBuilder setData(final Map data) {
        request.setData(data);
        return this;
    }

    /**
     * @param data Объект содержащий дополнительные параметры в виде “ключ”:”значение”. Данные параметры будут переданы на страницу оплаты (в случае ее кастомизации). Максимальная длина для каждого передаваемого параметра:
     *             Ключ – 20 знаков,
     *             Значение – 100 знаков.
     *             Максимальное количество пар «ключ-значение» не может превышать 20.
     */
    public AttachCardRequestBuilder addData(final Map data) {
        request.addData(data);
        return this;
    }

    @Override
    protected AttachCardRequest getRequest() {
        return request;
    }

    @Override
    protected void validate() {
        validateNonEmpty(request.getCardData(), AcquiringRequest.CARD_DATA);
        validateNonEmpty(request.getRequestKey(), AcquiringRequest.REQUEST_KEY);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy