Задать вопрос
@HasanNishanov

Компилятор выдаёт ошибку 1 при Выставление счета через QIWI. Что делать?

Компилятор выдаёт ошибку 1 при выставление счета киви, вроде всё хорошо статус 200-OK , но что не так с компилятором?
ОШИБКА
Exception in thread "main" com.qiwi.billpayments.sdk.exception.BadResponseException: ResponseData{body='{"siteId":"5eqiig-00","billId":"8a4f2539-df89-40ea-9af6-f2399649d47c","amount":{"currency":"RUB","value":"199.90"},"status":{"value":"WAITING","changedDateTime":"2022-12-13T16:43:05.795+03:00"},"customer":{"email":"example@mail.org","account":"758f1a19-ab14-433d-b321-3414f270f07e","phone":"79123456789"},"customFields":{"apiClient":"java_sdk","apiClientVersion":"1.5.0"},"comment":"comment","creationDateTime":"2022-12-13T16:43:05.795+03:00","expirationDateTime":"2023-01-27T16:43:04.734+03:00","payUrl":"https://oplata.qiwi.com/form/?invoice_uid=6dbd3141-d7bb-491c-960a-2e3553e5c902","recipientPhoneNumber":"998909208688"}', httpStatus=200}
	at com.qiwi.billpayments.sdk.client.RequestMappingIntercessor.mapToError(RequestMappingIntercessor.java:63)
	at com.qiwi.billpayments.sdk.client.RequestMappingIntercessor.deserializeResponseBody(RequestMappingIntercessor.java:54)
	at com.qiwi.billpayments.sdk.client.RequestMappingIntercessor.request(RequestMappingIntercessor.java:34)
	at com.qiwi.billpayments.sdk.client.BillPaymentClient.createBill(BillPaymentClient.java:47)
	at com.company.controller.paymentcontroll.main(paymentcontroll.java:51)

Process finished with exit code 1


КОД
String secretKey = "";
        BillPaymentClient client = BillPaymentClientFactory.createDefault(secretKey);
        String publicKey = "";
        MoneyAmount amount = new MoneyAmount(
                BigDecimal.valueOf(499.90),
                Currency.getInstance("RUB")
        );
        String billId = UUID.randomUUID().toString();
        String successUrl = "https://merchant.com/payment/success?billId=" + billId;
        System.out.println(billId);
        String paymentUrl = client.createPaymentForm(new PaymentInfo(publicKey, amount, billId, successUrl));
        System.out.println(paymentUrl);

        CreateBillInfo billInfo = new CreateBillInfo(
                UUID.randomUUID().toString(),
                new MoneyAmount(
                        BigDecimal.valueOf(199.90),
                        Currency.getInstance("RUB")
                ),
                "comment",
                ZonedDateTime.now().plusDays(45),
                new Customer(
                        "example@mail.org",
                        UUID.randomUUID().toString(),
                        "79123456789"
                ),
                "http://merchant.ru/success"
        );
        BillResponse response = null;
        try {
            response = client.createBill(billInfo);
        } catch (URISyntaxException e) {
            throw new RuntimeException(e);
        }
        response.getPayUrl();

Что делать в такой ситуации?
  • Вопрос задан
  • 152 просмотра
Подписаться 1 Простой 9 комментариев
Решения вопроса 1
al_gon
@al_gon
Причём здесь компилятор?
Если Вы уже дошли до этой ошибки, то это явно не компилятор.

Вы ожидаете один ответ, а приходит другой. Ошибка десериализации.

Надо посмотреть, что именно приходит и соответсвует ли это вашему классу BillResponse.

Возможно старая версия SDK.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@HasanNishanov Автор вопроса
Исправил используя - https://github.com/ancap-kun/bill-payments-java-sd... - ибо сама SDK от QIWI давно не работает
Ответ написан
Комментировать
mayton2019
@mayton2019 Куратор тега Java
Bigdata Engineer
Автор попробуй поменяй версию com.qiwi.billpayments.sdk на более новую или более старую.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы