
ru.paymentgate.engine.webservices.merchant.OrderParams Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of abyss-acquiring Show documentation
Show all versions of abyss-acquiring Show documentation
Internet acquiring Web Service client library
The newest version!
/**
* OrderParams.java
*
* This file was auto-generated from WSDL
* by the Apache Axis2 version: 1.7.5 Built on : May 06, 2017 (03:45:50 BST)
*/
package ru.paymentgate.engine.webservices.merchant;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import javax.xml.namespace.NamespaceContext;
import javax.xml.namespace.QName;
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamReader;
import javax.xml.stream.XMLStreamWriter;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMFactory;
import org.apache.axis2.databinding.ADBBean;
import org.apache.axis2.databinding.ADBDataSource;
import org.apache.axis2.databinding.ADBException;
import org.apache.axis2.databinding.utils.BeanUtil;
import org.apache.axis2.databinding.utils.ConverterUtil;
import ru.abyss.acquiring.soap.MerchantService;
/**
* Параметры запроса на регистрацию заказа в платёжном шлюзе
* @see {@link MerchantService#registerOrder(RegisterOrder)}
*/
public class OrderParams implements ADBBean {
private static final long serialVersionUID = -4505679369713618675L;
/**
* Адрес, на который требуется перенаправить пользователя в случае успешной оплаты.
* Адрес должен быть указан полностью, включая используемый протокол (например, https://test.ru вместо test.ru).
* В противном случае пользователь будет перенаправлен по адресу следующего вида: http://<адрес_платёжного_шлюза>/<адрес_продавца>.
* Обязательное поле. Максимальная длина - 512 символов.
*/
protected String localReturnUrl;
protected boolean localReturnUrlTracker = false;
/**
* Адрес, на который требуется перенаправить пользователя в случае неуспешной оплаты.
* Адрес должен быть указан полностью, включая используемый протокол (например, https://test.ru вместо test.ru).
* В противном случае пользователь будет перенаправлен по адресу следующего вида: http://<адрес_платёжного_шлюза>/<адрес_продавца>.
* Максимальная длина - 512 символов.
*/
protected String localFailUrl;
protected boolean localFailUrlTracker = false;
/**
* Чтобы зарегистрировать заказ от имени дочернего мерчанта, укажите его логин в этом параметре.
* Максимальная длина - 255 символов.
*/
protected String localMerchantLogin;
protected boolean localMerchantLoginTracker = false;
/**
* field for Email
*/
protected String localEmail;
protected boolean localEmailTracker = false;
/**
* Поля дополнительной информации для последующего хранения. Данные поля могут быть переданы в процессинг
* банка для последующего отображения в реестрах (По умолчанию в процессинг банка передаются поля:
* orderNumber – номер заказа в системе магазина;
* description – описание заказа (не более 99 символов, запрещены к использованию %, +, конец строки \r и перенос строки \n).
* Если в заказе передать дополнительный параметр с именем merchantOrderId , то именно его значение будет передано в
* процессинг в качестве номера заказа (вместо значения поля orderNumber)).
* Включение данного функционала возможно по согласованию с банком в период интеграции.
* Если для продавца настроена отправка уведомлений покупателю, адрес электронной почты покупателя должен
* передаваться в этом тэге в параметре с именем email.
*/
protected ServiceParam[] localParams;
protected boolean localParamsTracker = false;
/**
* Номер (идентификатор) клиента в системе магазина. Используется для реализации функционала связок.
* Может присутствовать, если магазину разрешено создание связок.
* Указание этого параметра при платежах по связке необходимо - в противном случае платёж будет неуспешен.
* Максимальная длина - 255 символов.
*/
protected String localClientId;
protected boolean localClientIdTracker = false;
/**
* field for OrderBundle
*/
protected OrderBundle localOrderBundle;
protected boolean localOrderBundleTracker = false;
/**
* field for Features
*/
protected Features_type0 localFeatures;
protected boolean localFeaturesTracker = false;
/**
* Номер (идентификатор) заказа в системе магазина, уникален для каждого магазина в пределах системы.
* Обязательное поле. Максимальная длина - 32 символа.
*/
protected String localMerchantOrderNumber;
/**
* Описание заказа в свободной форме.
* Максимальная длина - 512 символов.
*/
protected String localDescription;
/**
* Сумма платежа в минимальных единицах валюты.
* Обязательное поле. Максимальная длина - 20 цифр.
*/
protected long localAmount;
/**
* Код валюты платежа ISO 4217. Если не указан, считается равным коду валюты по умолчанию.
* Максимальная длина - 3 символа.
*/
protected String localCurrency;
/**
* Язык в кодировке ISO 639-1. Если не указан, будет использован язык, указанный в настройках магазина как язык по умолчанию (default language).
* Максимальная длина - 2 символа.
*/
protected String localLanguage;
/**
* По значению данного параметра определяется, какие страницы платёжного интерфейса должны загружаться для клиента. Возможные значения:
* DESKTOP – для загрузки страниц, верстка которых предназначена для отображения на экранах ПК (в архиве страниц платёжного
* интерфейса будет осуществляться поиск страниц с названиями payment_<locale>.html и errors_<locale>.html);
* MOBILE – для загрузки страниц, верстка которых предназначена для отображения на экранах мобильных устройств
* (в архиве страниц платёжного интерфейса будет осуществляться поиск страниц с названиями mobile_payment_<locale>.html
* и mobile_errors_<locale>.html);
* Если магазин создал страницы платёжного интерфейса, добавив в название файлов страниц произвольные префиксы, передайте
* значение нужного префикса в параметре pageView для загрузки соответствующей страницы. Например, при передаче значения iphone в архиве
* страниц платёжного интерфейса будет осуществляться поиск страниц с названиями iphone_payment_<locale>.html и iphone_error_<locale>.html.
*
* Где:
* locale – язык страницы в кодировке ISO 639-1 . Например, ru для русского или en для английского.
* Если параметр отсутствует, либо не соответствует формату, то по умолчанию считается pageView=DESKTOP.
* Максимальная длина - 20 символов.
*/
protected String localPageView;
/**
* Продолжительность жизни заказа в секундах.
*
* В случае если параметр не задан, будет использовано значение, указанное в настройках мерчанта или время по умолчанию (1200 секунд = 20 минут).
*
* Если в запросе присутствует параметр expirationDate, то значение параметра sessionTimeoutSecs не учитывается.
*
* Максимальная длина - 9 цифр.
*/
protected int localSessionTimeoutSecs;
/**
* field for TaxSystem This was an Attribute!
*/
protected int localTaxSystem;
/**
* Идентификатор связки, созданной ранее. Может использоваться, только если у магазина есть
* разрешение на работу со связками. Если этот параметр передаётся в данном запросе, то это означает:
*
* - Данный заказ может быть оплачен только с помощью связки;
* - Плательщик будет перенаправлен на платёжную страницу, где требуется только ввод CVC.
*
* Максимальная длина - 255 символов.
*/
protected String localBindingId;
/**
* Дата и время окончания жизни заказа. Формат: yyyy-MM-dd'T'HH:mm:ss.
* Если этот параметр не передаётся в запросе, то для определения времени окончания жизни заказа используется sessionTimeoutSecs.
*/
protected Calendar localExpirationDate;
public boolean isReturnUrlSpecified() {
return localReturnUrlTracker;
}
/**
* Адрес, на который требуется перенаправить пользователя в случае успешной оплаты.
* Адрес должен быть указан полностью, включая используемый протокол (например, https://test.ru вместо test.ru).
* В противном случае пользователь будет перенаправлен по адресу следующего вида: http://<адрес_платёжного_шлюза>/<адрес_продавца>.
* Обязательное поле. Максимальная длина - 512 символов.
*/
public String getReturnUrl() {
return localReturnUrl;
}
/**
* Адрес, на который требуется перенаправить пользователя в случае успешной оплаты.
* Адрес должен быть указан полностью, включая используемый протокол (например, https://test.ru вместо test.ru).
* В противном случае пользователь будет перенаправлен по адресу следующего вида: http://<адрес_платёжного_шлюза>/<адрес_продавца>.
* Обязательное поле. Максимальная длина - 512 символов.
*/
public void setReturnUrl(String returnUrl) {
localReturnUrlTracker = returnUrl != null;
this.localReturnUrl = returnUrl;
}
public boolean isFailUrlSpecified() {
return localFailUrlTracker;
}
/**
* Адрес, на который требуется перенаправить пользователя в случае неуспешной оплаты.
* Адрес должен быть указан полностью, включая используемый протокол (например, https://test.ru вместо test.ru).
* В противном случае пользователь будет перенаправлен по адресу следующего вида: http://<адрес_платёжного_шлюза>/<адрес_продавца>.
* Максимальная длина - 512 символов.
*/
public String getFailUrl() {
return localFailUrl;
}
/**
* Адрес, на который требуется перенаправить пользователя в случае неуспешной оплаты.
* Адрес должен быть указан полностью, включая используемый протокол (например, https://test.ru вместо test.ru).
* В противном случае пользователь будет перенаправлен по адресу следующего вида: http://<адрес_платёжного_шлюза>/<адрес_продавца>.
* Максимальная длина - 512 символов.
*/
public void setFailUrl(String failUrl) {
localFailUrlTracker = failUrl != null;
this.localFailUrl = failUrl;
}
public boolean isMerchantLoginSpecified() {
return localMerchantLoginTracker;
}
/**
* Чтобы зарегистрировать заказ от имени дочернего мерчанта, укажите его логин в этом параметре.
* Максимальная длина - 255 символов.
*/
public String getMerchantLogin() {
return localMerchantLogin;
}
/**
* Чтобы зарегистрировать заказ от имени дочернего мерчанта, укажите его логин в этом параметре.
* Максимальная длина - 255 символов.
*/
public void setMerchantLogin(String merchantLogin) {
localMerchantLoginTracker = merchantLogin != null;
this.localMerchantLogin = merchantLogin;
}
public boolean isEmailSpecified() {
return localEmailTracker;
}
/**
* Auto generated getter method
*
* @return String
*/
public String getEmail() {
return localEmail;
}
/**
* Auto generated setter method
*
* @param param
* Email
*/
public void setEmail(String param) {
localEmailTracker = param != null;
this.localEmail = param;
}
public boolean isParamsSpecified() {
return localParamsTracker;
}
/**
* Поля дополнительной информации для последующего хранения. Данные поля могут быть переданы в процессинг
* банка для последующего отображения в реестрах (По умолчанию в процессинг банка передаются поля:
* orderNumber – номер заказа в системе магазина;
* description – описание заказа (не более 99 символов, запрещены к использованию %, +, конец строки \r и перенос строки \n).
* Если в заказе передать дополнительный параметр с именем merchantOrderId , то именно его значение будет передано в
* процессинг в качестве номера заказа (вместо значения поля orderNumber)).
* Включение данного функционала возможно по согласованию с банком в период интеграции.
* Если для продавца настроена отправка уведомлений покупателю, адрес электронной почты покупателя должен
* передаваться в этом тэге в параметре с именем email.
*/
public ServiceParam[] getParams() {
return localParams;
}
/**
* validate the array for Params
*/
protected void validateParams(ServiceParam[] param) {
}
/**
* Поля дополнительной информации для последующего хранения. Данные поля могут быть переданы в процессинг
* банка для последующего отображения в реестрах (По умолчанию в процессинг банка передаются поля:
* orderNumber – номер заказа в системе магазина;
* description – описание заказа (не более 99 символов, запрещены к использованию %, +, конец строки \r и перенос строки \n).
* Если в заказе передать дополнительный параметр с именем merchantOrderId , то именно его значение будет передано в
* процессинг в качестве номера заказа (вместо значения поля orderNumber)).
* Включение данного функционала возможно по согласованию с банком в период интеграции.
* Если для продавца настроена отправка уведомлений покупателю, адрес электронной почты покупателя должен
* передаваться в этом тэге в параметре с именем email.
*/
public void setParams(ServiceParam[] params) {
validateParams(params);
localParamsTracker = params != null;
this.localParams = params;
}
/**
* Поля дополнительной информации для последующего хранения. Данные поля могут быть переданы в процессинг
* банка для последующего отображения в реестрах (По умолчанию в процессинг банка передаются поля:
* orderNumber – номер заказа в системе магазина;
* description – описание заказа (не более 99 символов, запрещены к использованию %, +, конец строки \r и перенос строки \n).
* Если в заказе передать дополнительный параметр с именем merchantOrderId , то именно его значение будет передано в
* процессинг в качестве номера заказа (вместо значения поля orderNumber)).
* Включение данного функционала возможно по согласованию с банком в период интеграции.
* Если для продавца настроена отправка уведомлений покупателю, адрес электронной почты покупателя должен
* передаваться в этом тэге в параметре с именем email.
*/
public void addParams(ServiceParam param) {
if (localParams == null) {
localParams = new ServiceParam[] {};
}
// update the setting tracker
localParamsTracker = true;
@SuppressWarnings("unchecked")
List list = ConverterUtil.toList(localParams);
list.add(param);
this.localParams = list.toArray(new ServiceParam[list.size()]);
}
public boolean isClientIdSpecified() {
return localClientIdTracker;
}
/**
* Номер (идентификатор) клиента в системе магазина. Используется для реализации функционала связок.
* Может присутствовать, если магазину разрешено создание связок.
* Указание этого параметра при платежах по связке необходимо - в противном случае платёж будет неуспешен.
* Максимальная длина - 255 символов.
*/
public String getClientId() {
return localClientId;
}
/**
* Номер (идентификатор) клиента в системе магазина. Используется для реализации функционала связок.
* Может присутствовать, если магазину разрешено создание связок.
* Указание этого параметра при платежах по связке необходимо - в противном случае платёж будет неуспешен.
* Максимальная длина - 255 символов.
*/
public void setClientId(String clientId) {
localClientIdTracker = clientId != null;
this.localClientId = clientId;
}
public boolean isOrderBundleSpecified() {
return localOrderBundleTracker;
}
/**
* Auto generated getter method
*
* @return OrderBundle
*/
public OrderBundle getOrderBundle() {
return localOrderBundle;
}
/**
* Auto generated setter method
*
* @param param
* OrderBundle
*/
public void setOrderBundle(OrderBundle param) {
localOrderBundleTracker = param != null;
this.localOrderBundle = param;
}
public boolean isFeaturesSpecified() {
return localFeaturesTracker;
}
/**
* Auto generated getter method
*
* @return ru.paymentgate.engine.webservices.merchant.Features_type0
*/
public Features_type0 getFeatures() {
return localFeatures;
}
/**
* Auto generated setter method
*
* @param param
* Features
*/
public void setFeatures(Features_type0 param) {
localFeaturesTracker = param != null;
this.localFeatures = param;
}
/**
* Номер (идентификатор) заказа в системе магазина, уникален для каждого магазина в пределах системы.
* Обязательное поле. Максимальная длина - 32 символа.
*/
public String getMerchantOrderNumber() {
return localMerchantOrderNumber;
}
/**
* Номер (идентификатор) заказа в системе магазина, уникален для каждого магазина в пределах системы.
* Обязательное поле. Максимальная длина - 32 символа.
*/
public void setMerchantOrderNumber(String merchantOrderNumber) {
this.localMerchantOrderNumber = merchantOrderNumber;
}
/**
* Описание заказа в свободной форме.
* Максимальная длина - 512 символов.
*/
public String getDescription() {
return localDescription;
}
/**
* Описание заказа в свободной форме.
* Максимальная длина - 512 символов.
*/
public void setDescription(String description) {
this.localDescription = description;
}
/**
* Сумма платежа в минимальных единицах валюты.
* Обязательное поле. Максимальная длина - 20 цифр.
*/
public long getAmount() {
return localAmount;
}
/**
* Сумма платежа в минимальных единицах валюты.
* Обязательное поле. Максимальная длина - 20 цифр.
*/
public void setAmount(long amount) {
this.localAmount = amount;
}
/**
* Код валюты платежа ISO 4217. Если не указан, считается равным коду валюты по умолчанию.
* Максимальная длина - 3 символа.
*/
public String getCurrency() {
return localCurrency;
}
/**
* Код валюты платежа ISO 4217. Если не указан, считается равным коду валюты по умолчанию.
* Максимальная длина - 3 символа.
*/
public void setCurrency(String currency) {
this.localCurrency = currency;
}
/**
* Язык в кодировке ISO 639-1. Если не указан, будет использован язык, указанный в настройках магазина как язык по умолчанию (default language).
* Максимальная длина - 2 символа.
*/
public String getLanguage() {
return localLanguage;
}
/**
* Язык в кодировке ISO 639-1. Если не указан, будет использован язык, указанный в настройках магазина как язык по умолчанию (default language).
* Максимальная длина - 2 символа.
*/
public void setLanguage(String language) {
this.localLanguage = language;
}
/**
* По значению данного параметра определяется, какие страницы платёжного интерфейса должны загружаться для клиента. Возможные значения:
* DESKTOP – для загрузки страниц, верстка которых предназначена для отображения на экранах ПК (в архиве страниц платёжного
* интерфейса будет осуществляться поиск страниц с названиями payment_<locale>.html и errors_<locale>.html);
* MOBILE – для загрузки страниц, верстка которых предназначена для отображения на экранах мобильных устройств
* (в архиве страниц платёжного интерфейса будет осуществляться поиск страниц с названиями mobile_payment_<locale>.html
* и mobile_errors_<locale>.html);
* Если магазин создал страницы платёжного интерфейса, добавив в название файлов страниц произвольные префиксы, передайте
* значение нужного префикса в параметре pageView для загрузки соответствующей страницы. Например, при передаче значения iphone в архиве
* страниц платёжного интерфейса будет осуществляться поиск страниц с названиями iphone_payment_<locale>.html и iphone_error_<locale>.html.
*
* Где:
* locale – язык страницы в кодировке ISO 639-1 . Например, ru для русского или en для английского.
* Если параметр отсутствует, либо не соответствует формату, то по умолчанию считается pageView=DESKTOP.
* Максимальная длина - 20 символов.
*/
public String getPageView() {
return localPageView;
}
/**
* По значению данного параметра определяется, какие страницы платёжного интерфейса должны загружаться для клиента. Возможные значения:
* DESKTOP – для загрузки страниц, верстка которых предназначена для отображения на экранах ПК (в архиве страниц платёжного
* интерфейса будет осуществляться поиск страниц с названиями payment_<locale>.html и errors_<locale>.html);
* MOBILE – для загрузки страниц, верстка которых предназначена для отображения на экранах мобильных устройств
* (в архиве страниц платёжного интерфейса будет осуществляться поиск страниц с названиями mobile_payment_<locale>.html
* и mobile_errors_<locale>.html);
* Если магазин создал страницы платёжного интерфейса, добавив в название файлов страниц произвольные префиксы, передайте
* значение нужного префикса в параметре pageView для загрузки соответствующей страницы. Например, при передаче значения iphone в архиве
* страниц платёжного интерфейса будет осуществляться поиск страниц с названиями iphone_payment_<locale>.html и iphone_error_<locale>.html.
*
* Где:
* locale – язык страницы в кодировке ISO 639-1 . Например, ru для русского или en для английского.
* Если параметр отсутствует, либо не соответствует формату, то по умолчанию считается pageView=DESKTOP.
* Максимальная длина - 20 символов.
*/
public void setPageView(String pageView) {
this.localPageView = pageView;
}
/**
* Продолжительность жизни заказа в секундах.
*
* В случае если параметр не задан, будет использовано значение, указанное в настройках мерчанта или время по умолчанию (1200 секунд = 20 минут).
*
* Если в запросе присутствует параметр expirationDate, то значение параметра sessionTimeoutSecs не учитывается.
*
* Максимальная длина - 9 цифр.
*/
public int getSessionTimeoutSecs() {
return localSessionTimeoutSecs;
}
/**
* Продолжительность жизни заказа в секундах.
*
* В случае если параметр не задан, будет использовано значение, указанное в настройках мерчанта или время по умолчанию (1200 секунд = 20 минут).
*
* Если в запросе присутствует параметр expirationDate, то значение параметра sessionTimeoutSecs не учитывается.
*
* Максимальная длина - 9 цифр.
*/
public void setSessionTimeoutSecs(int sessionTimeoutSecs) {
this.localSessionTimeoutSecs = sessionTimeoutSecs;
}
/**
* Auto generated getter method
*
* @return int
*/
public int getTaxSystem() {
return localTaxSystem;
}
/**
* Auto generated setter method
*
* @param param
* TaxSystem
*/
public void setTaxSystem(int param) {
this.localTaxSystem = param;
}
/**
* Идентификатор связки, созданной ранее. Может использоваться, только если у магазина есть
* разрешение на работу со связками. Если этот параметр передаётся в данном запросе, то это означает:
*
* - Данный заказ может быть оплачен только с помощью связки;
* - Плательщик будет перенаправлен на платёжную страницу, где требуется только ввод CVC.
*
* Максимальная длина - 255 символов.
*/
public String getBindingId() {
return localBindingId;
}
/**
* Идентификатор связки, созданной ранее. Может использоваться, только если у магазина есть
* разрешение на работу со связками. Если этот параметр передаётся в данном запросе, то это означает:
*
* - Данный заказ может быть оплачен только с помощью связки;
* - Плательщик будет перенаправлен на платёжную страницу, где требуется только ввод CVC.
*
* Максимальная длина - 255 символов.
*/
public void setBindingId(String bindingId) {
this.localBindingId = bindingId;
}
/**
* Дата и время окончания жизни заказа. Формат: yyyy-MM-dd'T'HH:mm:ss.
* Если этот параметр не передаётся в запросе, то для определения времени окончания жизни заказа используется sessionTimeoutSecs.
*/
public Calendar getExpirationDate() {
return localExpirationDate;
}
/**
* Дата и время окончания жизни заказа. Формат: yyyy-MM-dd'T'HH:mm:ss.
* Если этот параметр не передаётся в запросе, то для определения времени окончания жизни заказа используется sessionTimeoutSecs.
*/
public void setExpirationDate(Calendar expirationDate) {
this.localExpirationDate = expirationDate;
}
/**
*
* @param parentQName
* @param factory
* @return {@link OMElement}
*/
@Override
public OMElement getOMElement(final QName parentQName,
final OMFactory factory) throws ADBException {
return factory.createOMElement(new ADBDataSource(this, parentQName));
}
@Override
public void serialize(final QName parentQName, XMLStreamWriter xmlWriter) throws XMLStreamException, ADBException {
serialize(parentQName, xmlWriter, false);
}
@Override
public void serialize(final QName parentQName, XMLStreamWriter xmlWriter, boolean serializeType)
throws XMLStreamException, ADBException {
String prefix = null;
String namespace = null;
prefix = parentQName.getPrefix();
namespace = parentQName.getNamespaceURI();
writeStartElement(prefix, namespace, parentQName.getLocalPart(), xmlWriter);
if (serializeType) {
String namespacePrefix = registerPrefix(xmlWriter, "http://engine.paymentgate.ru/webservices/merchant");
if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)) {
writeAttribute("xsi", "http://www.w3.org/2001/XMLSchema-instance", "type",
namespacePrefix + ":orderParams", xmlWriter);
} else {
writeAttribute("xsi", "http://www.w3.org/2001/XMLSchema-instance", "type", "orderParams", xmlWriter);
}
}
if (localMerchantOrderNumber != null) {
writeAttribute("", "merchantOrderNumber", ConverterUtil.convertToString(localMerchantOrderNumber),
xmlWriter);
}
if (localDescription != null) {
writeAttribute("", "description", ConverterUtil.convertToString(localDescription), xmlWriter);
}
if (localAmount != Long.MIN_VALUE) {
writeAttribute("", "amount", ConverterUtil.convertToString(localAmount), xmlWriter);
}
if (localCurrency != null) {
writeAttribute("", "currency", ConverterUtil.convertToString(localCurrency), xmlWriter);
}
if (localLanguage != null) {
writeAttribute("", "language", ConverterUtil.convertToString(localLanguage), xmlWriter);
}
if (localPageView != null) {
writeAttribute("", "pageView", ConverterUtil.convertToString(localPageView), xmlWriter);
}
if (localSessionTimeoutSecs != Integer.MIN_VALUE) {
writeAttribute("", "sessionTimeoutSecs", ConverterUtil.convertToString(localSessionTimeoutSecs), xmlWriter);
}
if (localTaxSystem != Integer.MIN_VALUE) {
writeAttribute("", "taxSystem", ConverterUtil.convertToString(localTaxSystem), xmlWriter);
}
if (localBindingId != null) {
writeAttribute("", "bindingId", ConverterUtil.convertToString(localBindingId), xmlWriter);
}
if (localExpirationDate != null) {
writeAttribute("", "expirationDate", ConverterUtil.convertToString(localExpirationDate), xmlWriter);
}
if (localReturnUrlTracker) {
namespace = "";
writeStartElement(null, namespace, "returnUrl", xmlWriter);
if (localReturnUrl == null) {
// write the nil attribute
throw new ADBException("returnUrl cannot be null!!");
} else {
xmlWriter.writeCharacters(localReturnUrl);
}
xmlWriter.writeEndElement();
}
if (localFailUrlTracker) {
namespace = "";
writeStartElement(null, namespace, "failUrl", xmlWriter);
if (localFailUrl == null) {
// write the nil attribute
throw new ADBException("failUrl cannot be null!!");
} else {
xmlWriter.writeCharacters(localFailUrl);
}
xmlWriter.writeEndElement();
}
if (localMerchantLoginTracker) {
namespace = "";
writeStartElement(null, namespace, "merchantLogin", xmlWriter);
if (localMerchantLogin == null) {
// write the nil attribute
throw new ADBException("merchantLogin cannot be null!!");
} else {
xmlWriter.writeCharacters(localMerchantLogin);
}
xmlWriter.writeEndElement();
}
if (localEmailTracker) {
namespace = "";
writeStartElement(null, namespace, "email", xmlWriter);
if (localEmail == null) {
// write the nil attribute
throw new ADBException("email cannot be null!!");
} else {
xmlWriter.writeCharacters(localEmail);
}
xmlWriter.writeEndElement();
}
if (localParamsTracker) {
if (localParams != null) {
for (int i = 0; i < localParams.length; i++) {
if (localParams[i] != null) {
localParams[i].serialize(new QName("", "params"), xmlWriter);
} else {
// we don't have to do any thing since minOccures is zero
}
}
} else {
throw new ADBException("params cannot be null!!");
}
}
if (localClientIdTracker) {
namespace = "";
writeStartElement(null, namespace, "clientId", xmlWriter);
if (localClientId == null) {
// write the nil attribute
throw new ADBException("clientId cannot be null!!");
} else {
xmlWriter.writeCharacters(localClientId);
}
xmlWriter.writeEndElement();
}
if (localOrderBundleTracker) {
if (localOrderBundle == null) {
throw new ADBException("orderBundle cannot be null!!");
}
localOrderBundle.serialize(new QName("", "orderBundle"), xmlWriter);
}
if (localFeaturesTracker) {
if (localFeatures == null) {
throw new ADBException("features cannot be null!!");
}
localFeatures.serialize(new QName("", "features"), xmlWriter);
}
xmlWriter.writeEndElement();
}
private static String generatePrefix(String namespace) {
if (namespace.equals("http://engine.paymentgate.ru/webservices/merchant")) {
return "ns1";
}
return BeanUtil.getUniquePrefix();
}
/**
* Utility method to write an element start tag.
*/
private void writeStartElement(String prefix, String namespace, String localPart, XMLStreamWriter xmlWriter)
throws XMLStreamException {
String writerPrefix = xmlWriter.getPrefix(namespace);
if (writerPrefix != null) {
xmlWriter.writeStartElement(writerPrefix, localPart, namespace);
} else {
if (namespace.length() == 0) {
prefix = "";
} else if (prefix == null) {
prefix = generatePrefix(namespace);
}
xmlWriter.writeStartElement(prefix, localPart, namespace);
xmlWriter.writeNamespace(prefix, namespace);
xmlWriter.setPrefix(prefix, namespace);
}
}
/**
* Util method to write an attribute with the ns prefix
*/
private void writeAttribute(String prefix, String namespace, String attName, String attValue,
XMLStreamWriter xmlWriter) throws XMLStreamException {
String writerPrefix = xmlWriter.getPrefix(namespace);
if (writerPrefix != null) {
xmlWriter.writeAttribute(writerPrefix, namespace, attName, attValue);
} else {
xmlWriter.writeNamespace(prefix, namespace);
xmlWriter.setPrefix(prefix, namespace);
xmlWriter.writeAttribute(prefix, namespace, attName, attValue);
}
}
/**
* Util method to write an attribute without the ns prefix
*/
private void writeAttribute(String namespace, String attName, String attValue, XMLStreamWriter xmlWriter)
throws XMLStreamException {
if (namespace.equals("")) {
xmlWriter.writeAttribute(attName, attValue);
} else {
xmlWriter.writeAttribute(registerPrefix(xmlWriter, namespace), namespace, attName, attValue);
}
}
/**
* Register a namespace prefix
*/
private String registerPrefix(XMLStreamWriter xmlWriter, String namespace) throws XMLStreamException {
String prefix = xmlWriter.getPrefix(namespace);
if (prefix == null) {
prefix = generatePrefix(namespace);
NamespaceContext nsContext = xmlWriter.getNamespaceContext();
while (true) {
String uri = nsContext.getNamespaceURI(prefix);
if ((uri == null) || (uri.length() == 0)) {
break;
}
prefix = BeanUtil.getUniquePrefix();
}
xmlWriter.writeNamespace(prefix, namespace);
xmlWriter.setPrefix(prefix, namespace);
}
return prefix;
}
/**
* Factory class that keeps the parse method
*/
public static class Factory {
/**
* static method to create the object Precondition: If this object is an
* element, the current or next start element starts this object and any
* intervening reader events are ignorable If this object is not an
* element, it is a complex type and the reader is at the event just
* after the outer start element Postcondition: If this object is an
* element, the reader is positioned at its end element If this object
* is a complex type, the reader is positioned at the end element of its
* outer element
*/
public static OrderParams parse(XMLStreamReader reader) throws Exception {
OrderParams object = new OrderParams();
String nillableValue = null;
try {
while (!reader.isStartElement() && !reader.isEndElement())
reader.next();
if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance", "type") != null) {
String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance", "type");
if (fullTypeName != null) {
String nsPrefix = null;
if (fullTypeName.indexOf(":") > -1) {
nsPrefix = fullTypeName.substring(0, fullTypeName.indexOf(":"));
}
nsPrefix = (nsPrefix == null) ? "" : nsPrefix;
String type = fullTypeName.substring(fullTypeName.indexOf(":") + 1);
if (!"orderParams".equals(type)) {
// find namespace for the prefix
String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
return (OrderParams) ExtensionMapper.getTypeObject(nsUri, type, reader);
}
}
}
// handle attribute "merchantOrderNumber"
String tempAttribMerchantOrderNumber = reader.getAttributeValue(null, "merchantOrderNumber");
if (tempAttribMerchantOrderNumber != null) {
object.setMerchantOrderNumber(ConverterUtil.convertToString(tempAttribMerchantOrderNumber));
}
// handle attribute "description"
String tempAttribDescription = reader.getAttributeValue(null, "description");
if (tempAttribDescription != null) {
object.setDescription(ConverterUtil.convertToString(tempAttribDescription));
}
// handle attribute "amount"
String tempAttribAmount = reader.getAttributeValue(null, "amount");
if (tempAttribAmount != null) {
object.setAmount(ConverterUtil.convertToLong(tempAttribAmount));
} else {
object.setAmount(Long.MIN_VALUE);
}
// handle attribute "currency"
String tempAttribCurrency = reader.getAttributeValue(null, "currency");
if (tempAttribCurrency != null) {
object.setCurrency(ConverterUtil.convertToString(tempAttribCurrency));
}
// handle attribute "language"
String tempAttribLanguage = reader.getAttributeValue(null, "language");
if (tempAttribLanguage != null) {
object.setLanguage(ConverterUtil.convertToString(tempAttribLanguage));
}
// handle attribute "pageView"
String tempAttribPageView = reader.getAttributeValue(null, "pageView");
if (tempAttribPageView != null) {
object.setPageView(ConverterUtil.convertToString(tempAttribPageView));
}
// handle attribute "sessionTimeoutSecs"
String tempAttribSessionTimeoutSecs = reader.getAttributeValue(null, "sessionTimeoutSecs");
if (tempAttribSessionTimeoutSecs != null) {
object.setSessionTimeoutSecs(ConverterUtil.convertToInt(tempAttribSessionTimeoutSecs));
} else {
object.setSessionTimeoutSecs(Integer.MIN_VALUE);
}
// handle attribute "taxSystem"
String tempAttribTaxSystem = reader.getAttributeValue(null, "taxSystem");
if (tempAttribTaxSystem != null) {
object.setTaxSystem(ConverterUtil.convertToInt(tempAttribTaxSystem));
} else {
object.setTaxSystem(Integer.MIN_VALUE);
}
// handle attribute "bindingId"
String tempAttribBindingId = reader.getAttributeValue(null, "bindingId");
if (tempAttribBindingId != null) {
object.setBindingId(ConverterUtil.convertToString(tempAttribBindingId));
}
// handle attribute "expirationDate"
String tempAttribExpirationDate = reader.getAttributeValue(null, "expirationDate");
if (tempAttribExpirationDate != null) {
object.setExpirationDate(ConverterUtil.convertToDateTime(tempAttribExpirationDate));
}
reader.next();
ArrayList list5 = new ArrayList();
while (!reader.isStartElement() && !reader.isEndElement())
reader.next();
if ((reader.isStartElement() && new QName("", "returnUrl").equals(reader.getName()))
|| new QName("", "returnUrl").equals(reader.getName())) {
nillableValue = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance", "nil");
if ("true".equals(nillableValue) || "1".equals(nillableValue)) {
throw new ADBException("The element: " + "returnUrl" + " cannot be null");
}
String content = reader.getElementText();
object.setReturnUrl(ConverterUtil.convertToString(content));
reader.next();
} // End of if for expected property start element
while (!reader.isStartElement() && !reader.isEndElement())
reader.next();
if ((reader.isStartElement() && new QName("", "failUrl").equals(reader.getName()))
|| new QName("", "failUrl").equals(reader.getName())) {
nillableValue = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance", "nil");
if ("true".equals(nillableValue) || "1".equals(nillableValue)) {
throw new ADBException("The element: " + "failUrl" + " cannot be null");
}
String content = reader.getElementText();
object.setFailUrl(ConverterUtil.convertToString(content));
reader.next();
} // End of if for expected property start element
while (!reader.isStartElement() && !reader.isEndElement())
reader.next();
if ((reader.isStartElement() && new QName("", "merchantLogin").equals(reader.getName()))
|| new QName("", "merchantLogin").equals(reader.getName())) {
nillableValue = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance", "nil");
if ("true".equals(nillableValue) || "1".equals(nillableValue)) {
throw new ADBException("The element: " + "merchantLogin" + " cannot be null");
}
String content = reader.getElementText();
object.setMerchantLogin(ConverterUtil.convertToString(content));
reader.next();
} // End of if for expected property start element
while (!reader.isStartElement() && !reader.isEndElement())
reader.next();
if ((reader.isStartElement() && new QName("", "email").equals(reader.getName()))
|| new QName("", "email").equals(reader.getName())) {
nillableValue = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance", "nil");
if ("true".equals(nillableValue) || "1".equals(nillableValue)) {
throw new ADBException("The element: " + "email" + " cannot be null");
}
String content = reader.getElementText();
object.setEmail(ConverterUtil.convertToString(content));
reader.next();
} // End of if for expected property start element
while (!reader.isStartElement() && !reader.isEndElement())
reader.next();
if ((reader.isStartElement() && new QName("", "params").equals(reader.getName()))
|| new QName("", "params").equals(reader.getName())) {
// Process the array and step past its final element's end.
list5.add(ServiceParam.Factory.parse(reader));
// loop until we find a start element that is not part of
// this array
boolean loopDone5 = false;
while (!loopDone5) {
// We should be at the end element, but make sure
while (!reader.isEndElement())
reader.next();
// Step out of this element
reader.next();
// Step to next element event.
while (!reader.isStartElement() && !reader.isEndElement())
reader.next();
if (reader.isEndElement()) {
// two continuous end elements means we are exiting
// the xml structure
loopDone5 = true;
} else {
if (new QName("", "params").equals(reader.getName())) {
list5.add(ServiceParam.Factory.parse(reader));
} else {
loopDone5 = true;
}
}
}
// call the converter utility to convert and set the array
object.setParams((ServiceParam[]) ConverterUtil.convertToArray(ServiceParam.class, list5));
} // End of if for expected property start element
while (!reader.isStartElement() && !reader.isEndElement())
reader.next();
if ((reader.isStartElement() && new QName("", "clientId").equals(reader.getName()))
|| new QName("", "clientId").equals(reader.getName())) {
nillableValue = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance", "nil");
if ("true".equals(nillableValue) || "1".equals(nillableValue)) {
throw new ADBException("The element: " + "clientId" + " cannot be null");
}
String content = reader.getElementText();
object.setClientId(ConverterUtil.convertToString(content));
reader.next();
} // End of if for expected property start element
while (!reader.isStartElement() && !reader.isEndElement())
reader.next();
if ((reader.isStartElement() && new QName("", "orderBundle").equals(reader.getName()))
|| new QName("", "orderBundle").equals(reader.getName())) {
object.setOrderBundle(OrderBundle.Factory.parse(reader));
reader.next();
} // End of if for expected property start element
while (!reader.isStartElement() && !reader.isEndElement())
reader.next();
if ((reader.isStartElement() && new QName("", "features").equals(reader.getName()))
|| new QName("", "features").equals(reader.getName())) {
object.setFeatures(Features_type0.Factory.parse(reader));
reader.next();
} // End of if for expected property start element
while (!reader.isStartElement() && !reader.isEndElement())
reader.next();
if (reader.isStartElement()) {
// 2 - A start element we are not expecting indicates a
// trailing invalid property
throw new ADBException("Unexpected subelement " + reader.getName());
}
} catch (XMLStreamException e) {
throw new Exception(e);
}
return object;
}
} // end of factory class
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy