Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Не рабочие сертификаты #1

Open
lebmax opened this issue Dec 18, 2018 · 5 comments
Open

Не рабочие сертификаты #1

lebmax opened this issue Dec 18, 2018 · 5 comments

Comments

@lebmax
Copy link

lebmax commented Dec 18, 2018

Добрый день!
Я попробовал Ваш код в рамках интеграции с Orange Data, постоянно приходит ошибка 401 Unauthorized

@vskaiman
Copy link

Добрый день!
У меня таже проблема с сертификатами. Только у меня 400 с ответом Подпись не прошла проверку. Добавьте сертификаты в sample, пожалуйста.

@realmfoo
Copy link

Для тех, кто наткнётся на ошибку с тестовыми сертификатами в будущем, я оставлю несколько замечаний к этому "проекту":

  1. Файлы с сертификатами лежат здесь: https://github.com/orangedata-official/API/blob/master/File_for_test.zip ;
  2. Из исходников удаляем все упоминания com.sun.istack.internal.Nullable, чтобы можно было запускать пример на Java 9 и выше (тестировал на Java 11)
  3. В CustomTrust меняем путь до сертификата client.pfx;
  4. Приватный ключ из XML можно преобразовать онлайн в PEM, затем используя openssl --- в DER (для подписи нужен сертификат в der-формате), ну и путь до сертификата меняем в классе Main;
  5. Для создания подписи подключаем bouncycastle (пакет org.bouncycastle:bcprov-jdk15on:1.61) и регистрируем в Main:
    Security.addProvider(new BouncyCastleProvider());
    
  6. Меняем адрес сервера OrangeData в классе RetrofitSingle (он теперь не тот, что указан в исходниках):
    private static String url = "https://62.213.83.34:2443";
    
  7. ИНН для тестов 1234567890, а не 5001104058, поэтому делаем эту замену в Main
  8. Идентификатор документа должен быть уникальным, а значит, вместо newId1 используем какой-то свой уникальный идентификатор
  9. Раскомментируем в main вызов postData(), комментируем getData() и запускаем main для регистрации документа
  10. Перед последующим запуском: комментируем вызов postData(), раскомментируем вызов getData()и запускаемmain` для получения информации о документе

После этих правок приведённый код у меня заработал и позволил отправить фискальный чек и получить по нему информацию из ОФД:

{  
    "id":"my_newId2",
    "deviceSN":"1400000000001033",
    "deviceRN":"0000000400054952",
    "fsNumber":"9999078900001341",
    "ofdName":"ООО \"Ярус\" (\"ОФД-Я\")",
    "ofdWebsite":"www.ofd-ya.ru",
    "ofdinn":"7728699517",
    "fnsWebsite":"www.nalog.ru",
    "companyINN":"1234567890",
    "companyName":"Тест",
    "documentNumber":9586,
    "shiftNumber":9079,
    "documentIndex":785,
    "processedAt":"2019-05-16T13:55:00",
    "content":{  
        "type":1,
        "positions":[  
            {  
                "quantity":1.0,
                "price":1.0,
                "tax":6,
                "text":"Dummy text"
            }
        ],
        "checkClose":{  
            "payments":[  
                {  
                    "type":3,
                    "amount":1.0
                }
            ],
            "taxationSystem":1
        },
        "customerContact":"Dummy customer contact"
    },
    "change":0.00,
    "fp":"2050538989"
}

@AndrewMosk
Copy link

@realmfoo, добрый вечер. Тоже пытаюсь запустить этот пример и никак не получается сконвертировать валидный der сертификат. Подумал, может у вас сохранился этот файлик и вам не составит большого труда поделиться им со мной :-)

@realmfoo
Copy link

С того момента, как я оставлял свой комментарий, файл был обновлён. Сейчас в нём уже есть клиентский сертификат в формате PEM (client.crt). Конувертировать его в DER-формат можно при помощи openssl (см. google).

@AndrewMosk
Copy link

Я понял, спасибо.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants