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

ru.abyss.acquiring.soap.AcquiringUtil Maven / Gradle / Ivy

There is a newer version: 1.6
Show newest version
/*
 * 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