
ru.abyss.acquiring.soap.AcquiringUtil 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
/*
* Copyright Бездна (c) 2017.
*/
package ru.abyss.acquiring.soap;
import java.io.InputStream;
import java.rmi.RemoteException;
import java.util.Properties;
import javax.annotation.Nonnull;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import ru.paymentgate.engine.webservices.merchant.GetOrderStatus;
import ru.paymentgate.engine.webservices.merchant.OrderParams;
import ru.paymentgate.engine.webservices.merchant.OrderStatusRequest;
import ru.paymentgate.engine.webservices.merchant.OrderStatusResponse;
import ru.paymentgate.engine.webservices.merchant.RegisterOrder;
import ru.paymentgate.engine.webservices.merchant.RegisterOrderResponse;
/**
* @author Minu <[email protected]>
* @since 13.07.2017 23:09:34
*/
public class AcquiringUtil {
private static final Logger logger = LoggerFactory.getLogger(AcquiringUtil.class);
private static ThreadLocal service = new ThreadLocal() {
@Override
protected MerchantService initialValue() {
try {
Properties props = new Properties();
try (InputStream is = AcquiringUtil.class.getResourceAsStream("/core.properties")) {
props.load(is);
}
return new MerchantServiceImpl(props.getProperty("acquiring.ws.endpoint"),
props.getProperty("acquiring.ws.login"), props.getProperty("acquiring.ws.password"));
} catch (Exception e) {
throw new RuntimeException("Возникла ошибка при подключении к сервису", e);
}
}
};
public static void main(String[] args) {
try {
RegisterOrderResponse ret = registerOrder("17", 2345, "http://127.0.0.1:8888/sberbank",
"http://127.0.0.1:8888/sberbank", "Описание заказа", "[email protected]", "1234");
if (ret.getErrorCode() > 0)
logger.error("#" + ret.getErrorCode() + " " + ret.getErrorMessage());
else {
logger.info(ret.getOrderId());
logger.info(ret.getFormUrl());
}
} catch (Exception e) {
logger.error("", e);
}
}
/**
* Регистрация заказа в платёжном шлюзе
*
* @param orderNumber - Номер (идентификатор) заказа в системе магазина, уникален для каждого магазина в пределах системы.
* Обязательное поле. Максимальная длина - 32 символа.
* @param amount - Сумма платежа в минимальных единицах валюты.
* Обязательное поле. Максимальная длина - 20 цифр.
* @param returnUrl - Адрес, на который требуется перенаправить пользователя в случае успешной оплаты. Адрес должен быть указан полностью, включая используемый протокол (например, https://test.ru вместо test.ru). В противном случае пользователь будет перенаправлен по адресу следующего вида: http://<адрес_платёжного_шлюза>/<адрес_продавца>.
* Обязательное поле. Максимальная длина - 512 символов.
* @param failUrl - Адрес, на который требуется перенаправить пользователя в случае неуспешной оплаты. Адрес должен быть указан полностью, включая используемый протокол (например, https://test.ru вместо test.ru). В противном случае пользователь будет перенаправлен по адресу следующего вида: http://<адрес_платёжного_шлюза>/<адрес_продавца>.
* Максимальная длина - 512 символов.
* @param description - Описание заказа в свободной форме.
* Максимальная длина - 512 символов.
* @param email
* @param clientId - Номер (идентификатор) клиента в системе магазина. Используется для реализации функционала связок. Может присутствовать, если магазину разрешено создание связок.
* Указание этого параметра при платежах по связке необходимо - в противном случае платёж будет неуспешен.
* Максимальная длина - 255 символов.
* @return Результат запроса на регистрацию заказа в платёжном шлюзе
* @throws RuntimeException
* @throws AcquiringException
* @throws RemoteException
*/
public static RegisterOrderResponse registerOrder(@Nonnull String orderNumber, long amount, @Nonnull String returnUrl,
String failUrl, String description, String email, String clientId) throws Exception {
OrderParams params = new OrderParams();
RegisterOrder registerOrder = new RegisterOrder();
registerOrder.setOrder(params);
params.setAmount(amount);
params.setMerchantOrderNumber(orderNumber);
params.setReturnUrl(returnUrl);
params.setFailUrl(failUrl);
params.setDescription(description);
params.setEmail(email);
params.setClientId(clientId);
RegisterOrderResponse ret = service.get().registerOrder(registerOrder).get_return();
if (ret.getErrorCode() > 0)
throw new AcquiringException(ret);
else
return ret;
}
/**
* Запрос состояния зарегистрированного заказа
*
* @param orderId - Номер заказа в платежной системе. Уникален в пределах системы.
* Обязательное поле. Максимальная длина - 36 символов.
* @return Результат запроса состояния зарегистрированного заказа
* @throws RuntimeException
* @throws RemoteException
*/
public static OrderStatusResponse getOrderStatus(@Nonnull String orderId) throws Exception {
GetOrderStatus status = new GetOrderStatus();
OrderStatusRequest statusReq = new OrderStatusRequest();
status.setOrder(statusReq);
statusReq.setOrderId(orderId);
return service.get().getOrderStatus(status).get_return();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy