Ошибка при вызове сервиса cardacctdinqrq сработал ratelimiter

0 / 0 / 2

Регистрация: 19.04.2015

Сообщений: 92

1

В чем может быть ошибка при вызове сервиса?

22.04.2016, 17:20. Показов 2255. Ответов 6


В чем может быть проблема при вызове сервиса?


Изучаю service, и возник вопрос по-поводу, передачи данных между сервисом и активити. Нашел этот урок, и сделал все как в нем описано. Но при вызове сервиса — выбрасывает просто с программы, при этом в логах не пишет никаких exeption или ошибок. Просто такой диалог , и закрывается программа:

Вот мой код:

активити:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
public class MainActivity extends AppCompatActivity {
 
    private final int TASK1_CODE = 1;
    private final int TASK2_CODE = 2;
    private final int TASK3_CODE = 3;
 
    public final static int STATUS_START = 100;
    public final static int STATUS_FINISH = 200;
 
    public static final String PARAM_TIME = "TIME";
    public static final String PARAM_PINTENT = "PINTENT";
    public static final String PARAM_RESULT = "RESULT";
 
    private TextView textTask1, textTask2, textTask3;
    private Button startService;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        textTask1 = (TextView) findViewById(R.id.task1);
        textTask1.setText("task 1 ");
 
        textTask2 = (TextView) findViewById(R.id.task2);
        textTask2.setText("task 2");
 
        textTask3 = (TextView) findViewById(R.id.task3);
        textTask3.setText("task 3");
 
        startService = (Button) findViewById(R.id.startButton);
        startService.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                onClickStart();
            }
        });
 
 
    }
 
 
    private void onClickStart(){
        PendingIntent pi;
        Intent intent;
 
        pi = createPendingResult(TASK1_CODE, null, 0);
        intent = new Intent(getApplicationContext(), MyService.class)
                .putExtra(PARAM_TIME, 7)
                .putExtra(PARAM_PINTENT, pi);
        startService(intent);
 
        pi = createPendingResult(TASK2_CODE, null, 0);
        intent = new Intent(getApplicationContext(), MyService.class)
                .putExtra(PARAM_TIME, 4)
                .putExtra(PARAM_PINTENT, pi);
        startService(intent);
 
        pi = createPendingResult(TASK3_CODE, null, 0);
        intent = new Intent(getApplicationContext(), MyService.class)
                .putExtra(PARAM_TIME, 6)
                .putExtra(PARAM_PINTENT, pi);
        startService(intent);
 
    }
 
 
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (resultCode == STATUS_START){
            switch (requestCode){
                case TASK1_CODE:{
                    textTask1.setText("task 1 start");
                    break;
                }
                case TASK2_CODE:{
                    textTask2.setText("task 2 start");
                    break;
                }
                case TASK3_CODE:{
                    textTask3.setText("task 3 start");
                    break;
                }
            }
        }
        if (resultCode == STATUS_FINISH){
            int result = data.getIntExtra(PARAM_RESULT, 0);
            switch (requestCode){
                case TASK1_CODE:{
                    textTask1.setText("task 1 finish, result = " + result );
                    break;
                }
                case TASK2_CODE:{
                    textTask2.setText("task 2 finish, result = " + result);
                    break;
                }
                case TASK3_CODE:{
                    textTask3.setText("task 3 finish , result = " + result);
                    break;
                }
            }
        }
 
    }
 
 
}

и сервис:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
public class MyService extends Service {
 
    private final String LOG = "MYSERVICELOG";
    private ExecutorService executorService;
 
    @Override
    public void onCreate() {
        super.onCreate();
        Log.d(LOG, "onCreate");
        executorService = Executors.newFixedThreadPool(2);
    }
 
    @Override
    public void onDestroy() {
        super.onDestroy();
        Log.d(LOG, "onDestroy");
    }
 
 
 
    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        Log.d(LOG, "onStartCommand");
        int time = intent.getIntExtra(MainActivity.PARAM_TIME, 1);
        PendingIntent pi = intent.getParcelableExtra(MainActivity.PARAM_PINTENT);
 
        MyRun myRun = new MyRun(time, startId, pi);
        executorService.execute(myRun);
 
        return super.onStartCommand(intent, flags, startId);
 
    }
 
    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }
 
 
    class MyRun implements Runnable{
 
        private int time, startId;
        private PendingIntent pendingIntent;
 
        public MyRun(int time, int startId, PendingIntent pendingIntent){
            this.time = time;
            this.startId = startId;
            this.pendingIntent = pendingIntent;
            Log.d(LOG, "MyRun# " + startId + " created");
        }
 
 
        @Override
        public void run() {
            Log.d(LOG, "MyRun# " + startId + " time: " + time + " start");
            try {
                pendingIntent.send(MainActivity.STATUS_START);
 
                 TimeUnit.SECONDS.sleep(time);
                Intent intent = new Intent()
                        .putExtra(MainActivity.PARAM_RESULT, time *100);
                pendingIntent.send(MyService.this, MainActivity.STATUS_FINISH, intent);
 
            }catch (PendingIntent.CanceledException ce){
                ce.getStackTrace();
            }catch (InterruptedException ie){
                ie.getStackTrace();
            }
            stop();
 
        }
 
        private void stop(){
            Log.d(LOG, "MyService# " + startId + " stoped" );
            stopSelfResult(startId);
        }
 
 
    }
 
}

В чем может быть проблема ??

Помогите, не могу понять !!

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь

0

💡Почему важно знать причины неоплаты?

Оплата банковской картой через интернет — эту услугу сейчас предлагает практически любой интернет магазин. Вы можете например купить билет на поезд, оплатив банковской картой, сделать покупку на ozon.ru, купить ЖД билет онлайн.

Я всегда заказывал и оплачивал билеты банковской картой через интернет(я использую только дебетовые карты, у меня нет кредитной карты). Самое интересное, что и эта услуга иногда дает сбой — зависают деньги на карте, не проходит оплата.

Но у меня был случай, когда оплата просто не проходила. Робокасса писала сообщение — оплата отменена. Я не знал, в чем причина. В личном кабинете найти ошибку мне не удалось.

Существует множество разных причин ошибок — они бывают по причине банка или владельца карты. Важно хотя бы предполагать причину ошибки, чтоб понимать как действовать дальше? К примеру, если не удается оплатить горячий билет, то нужно понимать в чем причина и попытаться исправить проблему. Иначе билет может быть куплен другим человеком.

Основные причины ошибок при оплате банковской картой

Первая причина, которая является самой распространенной — отсутствие нужной суммы на карте. Рекомендуется проверить ваш баланс — для этого нужно позвонить в банк или войти в интернет банк. Иногда по карте устанавливают ежемесячный или ежедневный лимит трат. Чтоб это проверить — нужно позвонить в банк.

Эта причина может быть не ясна сразу — при отказе в оплате может не отображаться ваш баланс. Ошибка аутентификации 3D secure может быть также связана с неверным вводом реквизитов карты на предыдущем шаге. В таком случае просто повторите платеж и укажите правильные данные.

Вторая причина — на стороне платежной системы. Например, терминал оплаты РЖД не позволяет платить картами MasterCard. Можно использовать только карты Visa.
Заданный магазин может не поддерживать данный способ оплаты. К примеру, Робокасса, которую подключают к множеству магазинов предлагает различные тарифы для оплаты.
Робокасса как оплатить
Я сначала хотел оплатить вебмани, однако я позвонил в магазин. Оказалось, оплатить вебмани нельзя. У них не подключена эта опция. Хотя способ оплаты через вебмани предлагается на странице оплаты.

Третья причина — возможно ваша карта заблокирована. Опять же можно позвонить в банк и проверить это. Блокировка может быть осуществлена банком автоматически в случае наличия подозрительных операций у клиента.

Четвертая причина — у вас не подключена опция 3d Secure(MasterCard SecureCode в случае MasterCard).
Технология 3D Secure заключается в следующем: при оплате вам приходит СМС от банка, которую вы должны ввести в специальном окне. Эту СМС знаете только вы и банк. Мошенничество в данном случае достаточно трудно, для него потребуется и ваш телефон.
Эта опция нужна вам для оплаты на сумму больше 3 тыс. рублей. Это как раз мой случай. Я купил в интернет магазине газовую плиту Bosh. При оплате товара на сумму 22 тыс. рублей мне выдалось вот такое сообщение:
оплата картой Робокасса

Ошибка при оплате банковской картой.
Я был в замешательстве, не знал что делать. Сначала я думал, что это проблема магазина. Но сначала я все таки позвонил в банк. В моем случае это был Промсвязьбанк и карта Доходная.
Позвонив в поддержку Промсвязьбанка, мне предложили сначала пройти процедуру аутентификации

  1. Назвать 4 последних цифры номера карты
  2. Назвать фамилию имя отчество полностью
  3. Назвать кодовое слово.

Далее для подключения услуги 3d Secure от меня потребовали 2 номера из таблицы разовых ключей.  Вроде как услугу подключили, но через полчаса оплата снова не прошла. Позвонил в банк — сказали ожидайте когда подключится — услуга подключается не сразу. Нужно подождать.

Я решил проверить, подключена ли услуга. Я залогинился в Интернет-банк — увидел, что такая услуга есть(в ПСБ ритейл это можно посмотреть на странице карты, щелкнув по номеру карты)
банк 3D Secure
Еще раз попытка оплаты — мне высветилось окно, где я должен был ввести код подтверждения. После заполнения данных карты мне пришло СМС с кодом для оплаты
оплата 3d secure
Далее вуаля — заказ наконец то оплачен. Я получил следующее окно и статус заказа в магазине изменился на «Оплачен»
Мой заказ доставили в пункт назначения, где я его заберу в течение месяца. Главное оплата прошла.
Оплата картой через интернет

Самая частая ошибка 11070: ошибка аутентификации 3d-secure — причины

Самая частая ошибка, которая происходит при оплате картой — 11070: ошибка аутентификации 3dsecure. Есть 2 возможных причины этой ошибки

  1. Введен неверный одноразовый код. Вам пришел код, но при вводе вы допустили ошибку в цифре. В результате получили ошибку
  2. Одноразовый код протух. Время, которое вам дают на ввод одноразового кода при оплате, составляет не более 5 минут. Далее вам придется повторить оплату.

В любом случае, советуем повторить процесс оплаты и удостовериться, что вы ввели одноразовый пароль 3D Secure сразу после получения и пароль введен верно.

Ошибка процессинга карты — что это такое?

Процессинг банка — это сложная программа, которая отвечает за обработку транзакций по картам. Когда вы снимаете деньги в банкомате, делаете покупку, то идет запрос по интернет в данную систему. Проверяется есть ли на вашей карте деньги. Эта программа находится на серверах в Интернет.

Вы не можете повлиять на данную ошибку никак. Вам стоит обратиться на горячую линию банка или интернет-магазина, где вы осуществляете транзакцию. Исправление ошибки — дело специалистов, поддерживающих данную систему. Остается только ждать.

Вы можете попробовать осуществить оплату повторно примерно через пол-часа. По идее такие ошибки должны исправляться очень быстро. Аналогичная ошибка бывает с сообщением «Сервис временно недоступен». Это значит, что сломалась серверная сторона и сделать ничего нельзя. Только ждать починки

Что значит хост недоступен при оплате картой

Хост — это определенный сетевой адрес. Это может быть ip адрес или же просто доменное имя(к примеру, server1.sberbak.online). При оплате картой через терминал происходит подключение к определенному сетевому адресу(хосту). На данном хосте находится программное обеспечение, которое производит оплату — снимает с карты деньги, проверяет баланс и т.д.

Если хост недоступен, значит деньги снять нельзя. Есть 2 основных причины недоступности:

  1. Нет интернет на устройстве, с которого производится оплата. В современных терминалах может быть вшит Интернет-модуль, через который терминал связывается с сервером. Возможно он потерял сеть или завис. В этом случае может помочь перезагрузка или же выход по голое небо, где Мобильный интернет ловит отлично
  2. Хост недоступен по причине поломки. В этом случае рекомендуется обратиться на горячую линию банка, который поддерживает ваш терминал. Данная проблема должна решаться на стороне хоста. Он может быть недоступен по разным причинам: завис, упал сервер, идет обновление программного обеспечения.

Что такое ошибка в CVC карты?

CVC-код — это трехзначный код, который находится на обратной стороне вашей банковской карты. Если появляется ошибка в CVC карты, то рекомендуем проверить, правильно ли вы ввели этот код? Если все правильно, пожалуйста проверьте, введены ли правильно другие данные вашей карты Сбербанка, ВТБ или другого банка.

cvc код
CVC код нужен для того, чтоб проверить, есть ли у вас на руках данная карта в руках. Данная ошибка значит, что CVC код введен неверно. Просто осуществите оплату повторно и введите все данные верно

Проблема при регистрации токена — как решить?

Проблема при регистрации токена — частая ошибка, которая проявляется на сайте РЖД при оплате билетов.
Токен — это уникальный идентификатор(стока типа 23hjsdfjsdhfjhj2323dfgg), которая формируется когда вы заказываете билет. Это как бы ваша сессия оплаты. Ошибка возникает на стороне сервера оплаты.
Решений может быть два

  1. Проблемы на сервере РЖД. Сервер оплаты очень занят и перегружен из-за числа заказов. Возможно на нем ошибка. Рекомендуем в этом случае попробывать повторить оплату позднее
  2. Токен Истек. Это вина того, кто платит. Рассмотрим ситуацию: если вы оформили билет, а потом отошли от компьютера на полчаса, а потом вернулись и нажали оплатить. Ваш заказ аннулирован, т.к. вы не оплатили вовремя. При оплате вы получите ошибку. Нужно заново купить билет и оплатить его в течение 10 минут.

Если ошибка в течение часа сохраняется, рекомендуем обратиться на горячую линию РЖД.

Ошибка банковской карты — карта не поддерживается

Ошибка «карта не поддерживается» может возникать, если вы оплачиваете какую-либо услугу картой другой платежной системы, предоплаченной картой либо же Виртуальной картой. Это не значит, что карта у вас «неправильная», на ней нет денег или еще что-либо. Просто в данном конкретном случае нельзя использовать карту вашего типа. К примеру, виртуальные карты нельзя использовать при оплате в Google Play Market.

Решение простое: попробуйте использовать другую карту. Если ошибка повторится, то обратитесь в службу поддержки интернет-магазина или платежного сервиса, где осуществляете оплату.

Таблица с кодами ошибок при оплате.

Немногие знают, что при оплате картой система обычно выдает код ошибки. Например, E00 при оплате. Иногда по ошибке можно понять, в чем проблема

Код ошибки и описание
Код 00 – успешно проведенная операция.
Код 01 – отказать, позвонить в банк, который выпустил карту.
Код 02 – отказать, позвонить в банк, который выпустил карту (специальные условия).
Код 04 — изъять карту без указания причины.
Код 05 – отказать без указания причины.
Код 17 – отказать, отклонено пользователем карты.
код 19 — тех. ошибка на стороне банка
Код 41 – изъять, утерянная карта.
Код 43 – изъять, украденная карта.
код 50 — ?
Код 51 – отказать, на счете недостаточно средств.
Код 55 – отказать, неверно введенный ПИН-код.
Код 57 – отказать, недопустимый тип операции для данного вида карты
(например, попытка оплаты в магазине по карте предназначенной только для снятия наличных).
Код 61 – отказать, превышение максимальной суммы операции для данной карты.
Код 62 – отказать, заблокированная карта.
Код 65 – отказать, превышение максимального количества операции для данной карты.
Код 75 — отказать, превышение максимального количества неверных ПИН-кодов для данной карты.
Код 83 – отказать, ошибка сети (технические проблемы).
Код 91 – отказать, невозможно направить запрос (технические проблемы).
Код 96 – отказать, невозможно связаться с банком, который выдал карту.
Код Z3 — онлайн не работает, а в оффлайне терминал отклонил транзакцию.

Что делать, если с картой все ОК, но оплата не проходит?

Самая типичная проблема, когда оплата не проходит — сбой в банковской системе. В работе банка могут наблюдаться перебои. Это может быть не обязательно ваш банк, а банк который принимает платеж на стороне клиента(которому принадлежит терминал). В этом случае можно дать 2 совета

  1. Подождать и оплатить позднее. Сбои в работе оперативно решаются и уже через час оплата может пройти без проблем. Обычно о сбоях можно узнать по СМС сообщениям или позвонив на горячую линию вашего банка.
  2. Использовать другую карту. Если нельзя оплатить одной — нужно попробывать оплатить другой картой. Если оплата и другой картой не проходит, то это скорее всего сбой на стороне, принимающей платеж. Тут остается только ждать.

3 полезных совета при оплате картой через Интернет

Во первых — заведите себе специальную карту. Не используйте для оплаты зарплатную карту, на которой у вас все деньги. Оптимально — кредитная карта. Она позволяет в отдельных случаях вернуть часть суммы покупки(CashBack). Обычно это сумма до 5 процентов от покупки. Будьте внимательны, некоторые сервисы при оплате катой берут комиссии. И конечно же адрес страницы оплаты всегда должен начинаться с https и рядом с адресом должен стоять значок в виде замка(Соединение https).

Во вторых — не держите много денег на карте. На карте должно быть немногим больше суммы, необходимой вам для покупки. Примерно плюс 10% от общей стоимости покупки. Логика проста — с нулевой карты ничего не могут снять.
Делаете покупку — просто пополняете карту в интернет банке и получаете нужную сумму.

В третьих — Делайте оплату картой в известных магазинах. Почитайте отзывы о магазинах на Яндекс.Маркет. Если вы платите картой, будьте готовы к тому, что при отмене заказа могут вернуться на вашу карту не сразу.
В последний раз, когда я делал оплату заказа и потом возвращал заказ и деньги, возврат на карту шел в течение 7 дней. Помните — никто деньги вам сразу не вернет. Будьте готовы ждать.

Популярные вопросы и ответы про оплату

Может ли пройти онлайн-оплата, если вы указали неверный cvv/cvc, но в системе 3d- secure ввели верный код из SMS?

Это вопрос из IT диктанта. Ответ на него ДА, может.

Код cvv/cvc известен только банку, который выпустил карту. И именно банк решает, пропустить транзакцию или нет. Данный код может и не передаваться при оплате, хотя и его нужно будет вводить при оплате. Авторизовать операцию возможно и без данного кода. Т.е. пройдет эта операция или нет — решает банк.

Пройдет ли оплата картой, если неверно ввести ФИО плательщика

ФИО плательщика практически не влияет на успешность оплаты. Можно ввести любое имя, хоть «Котик Вася» и при верном вводе других реквизитов карты оплата пройдет.

Дмитрий Тачков

Дмитрий Тачков

Работник банка или другого фин. учреждения
Подробнее

Создатель проекта, финансовый эксперт

Привет, я автор этой статьи и создатель всех калькуляторов данного проекта. Имею более чем 3х летний опыт работы банках Ренессанс Кредит и Промсвязьбанк. Отлично разбираюсь в кредитах, займах и в досрочном погашении. Пожалуйста оцените эту статью, поставьте оценку ниже.

Напишу сводно что нашел и как решил.

1) При обновлении Бух (Проф, КОРП) на релиз 3.0.44.177 былезала ошибка по XDTO.

Администратор сервиса в неразделенном сеансе должен открыть список регистра сведений «Кэш программных интерфейсов»

(Главное меню — Все функции — Регистры сведений — Кэш программных интерфейсов).

В открывшемся списке необходимо найти и удалить запись со значением в колонке Идентификатор  https://api.orgregister.1c.ru/orgregister/v7?wsdl.

После этого пользователи, у которых возникала ошибка при заполнении реквизитов, должны выйти из программы и войти снова.

2) По подписке ИТС:Проф или «1С:Контрагент 12 месяцев» — ограничение на количество заполнений по ИНН : 7200 операций.

3) адреса web-сервисов могут попасть в фильтр антивирусника

4) Для нормальной работы сервисов требуется, чтоб не только клиент смотрел в интернет, но и чтобы у сервера 1С предприятия была возможность.

У меня после смены сетевого железа выросла ошибка работы с 1С-Отчетностью и 1С-Контрагент — «Превышено время ожидания». При этом все настройки интернет-поддержки стояли «Прокси — системный; выход в инет с клиента». на сервере 1С прописали шлюз для выхода — все взлетело.

Describe the bug
When the setting public.app.skipCheck in /usr/share/meteor/bundle/programs/server/assets/app/config/settings.yml is set to true, a first-time user will get a «Failure on call (reason=ICE error) (error 1004)» error after allowing their browser to share the microphone.

To Reproduce
Steps to reproduce the behavior:

  1. Make sure that the BigBlueButton server HTML5 client settings (/usr/share/meteor/bundle/programs/server/assets/app/config/settings.yml) has public.app.skipCheck set to true (this instructs the HTML5 client to skip the Echo Test)
  2. Join a meeting from a browser that has not been allowed to share the microphone with it
  3. Choose to join with microphone
  4. Allow the browser to use your microphone
  5. See error

Expected behavior
Audio conference should be joined without problems

Actual behavior
A «Failure on call (reason=ICE error) (error 1004)» error is presented to the user, the audio joining method window stays active, but pushing neither «Microphone» or «Listen only» works. Closing the «How would you like to join» window and restarting the audio join process works without a problem.

Screenshots
Screenshot 2021-02-10 at 15 32 32
Screenshot 2021-02-10 at 15 32 29

BBB version (optional):
$ sudo bbb-conf —check | grep BigBlueButton
BigBlueButton Server 2.2.31

Desktop (please complete the following information):

  • OS: Mac
  • Browser Chrome
  • Version 88.0.4324.146

Describe the bug
When the setting public.app.skipCheck in /usr/share/meteor/bundle/programs/server/assets/app/config/settings.yml is set to true, a first-time user will get a «Failure on call (reason=ICE error) (error 1004)» error after allowing their browser to share the microphone.

To Reproduce
Steps to reproduce the behavior:

  1. Make sure that the BigBlueButton server HTML5 client settings (/usr/share/meteor/bundle/programs/server/assets/app/config/settings.yml) has public.app.skipCheck set to true (this instructs the HTML5 client to skip the Echo Test)
  2. Join a meeting from a browser that has not been allowed to share the microphone with it
  3. Choose to join with microphone
  4. Allow the browser to use your microphone
  5. See error

Expected behavior
Audio conference should be joined without problems

Actual behavior
A «Failure on call (reason=ICE error) (error 1004)» error is presented to the user, the audio joining method window stays active, but pushing neither «Microphone» or «Listen only» works. Closing the «How would you like to join» window and restarting the audio join process works without a problem.

Screenshots
Screenshot 2021-02-10 at 15 32 32
Screenshot 2021-02-10 at 15 32 29

BBB version (optional):
$ sudo bbb-conf —check | grep BigBlueButton
BigBlueButton Server 2.2.31

Desktop (please complete the following information):

  • OS: Mac
  • Browser Chrome
  • Version 88.0.4324.146

Если у вас подключен сервис 1С:Контрагент и почему-то перестали заполняться реквизиты контрагентов по ИНН, выдает ошибку:

В журнале регистрации написано:

{ОбщийМодуль.ДанныеЕдиныхГосРеестров.Модуль(31)}: Ошибка при вызове метода контекста (getCorporationRequisitesByINN)
Ответ = Прокси.getCorporationRequisitesByINN(ВходныеПараметры);
по причине:
При вызове веб-сервиса произошла ошибка. Ошибка вызова операции сервиса: {http://ws.orgregister.company1c.com/}:RequisitesWebServiceEndpointImpl7Service:getCorporationRequisitesByINN()
по причине:
При вызове веб-сервиса произошла ошибка. Неизвестная ошибка. Ошибка преобразования данных XDTO:
Чтение объекта типа: {http://company1c.com/orgregister/corporation}СвОКВЭД — [1,2762]Проверка дополнительного свойства:
форма: Атрибут
имя: ПрВерсОКВЭД
по причине:
Ошибка преобразования данных XDTO:
Чтение объекта типа: {http://company1c.com/orgregister/corporation}СвОКВЭД — [1,2762]Проверка дополнительного свойства:
форма: Атрибут
имя: ПрВерсОКВЭД
по причине:
Ошибка проверки данных XDTO:
Структура объекта не соответствует типу: {http://company1c.com/orgregister/corporation}СвОКВЭД

Или

ОбщийМодуль.ДанныеЕдиныхГосРеестров.Модуль(181)}: Ошибка при вызове метода контекста (getCorporationRequisitesByNameAndAddress)
Ответ = Прокси.getCorporationRequisitesByNameAndAddress(ВходныеПараметры);
по причине:
При вызове веб-сервиса произошла ошибка. Ошибка вызова операции сервиса: {http://ws.orgregister.company1c.com/}:RequisitesWebServiceEndpointImpl7Service:getCorporationRequisitesByNameAndAddress()
по причине:
При вызове веб-сервиса произошла ошибка. Неизвестная ошибка. Ошибка преобразования данных XDTO:
Чтение объекта типа: {http://company1c.com/orgregister/corporation}СвОКВЭД — [1,17598] Проверка дополнительного свойства:
форма: Атрибут
имя: ПрВерсОКВЭД
по причине:
Ошибка преобразования данных XDTO:
Чтение объекта типа: {http://company1c.com/orgregister/corporation}СвОКВЭД — [1,17598] Проверка дополнительного свойства:
форма: Атрибут
имя: ПрВерсОКВЭД
по причине:
Ошибка проверки данных XDTO:
Структура объекта не соответствует типу: {http://company1c.com/orgregister/corporation}СвОКВЭД

Вот что нужно сделать:

Нужно открыть Главное меню (1), нажать «Все функции» (2) — рис.1

Рис.1

Если у вас нет пункта «Все функции», надо открыть Главное меню (3), нажать «Сервис» (4), Парамерты (5) — рис.2

Рис.2

В открывшемся окне поставить галочку «Отображать команду «Все функции» (6), ОК (7) — рис.3

Рис.3

В открывшемся окне нажимаем на «+» Регистры сведений (8) — рис.4

Рис.4

Ищем регистр сведений «Кэш программных интерфейсов» (9) — Открыть (10) — рис.5

Рис.5

В открывшемся списке необходимо найти и удалить запись со значением в колонке Идентификатор https://api.orgregister.1c.ru/orgregister/v7?wsdl (11) — правой кнопкой — Удалить (12) — рис.6

Рис.6

После этого нужно выйти из программы и войти снова.

<div class=»sp-wrap»><div class=»sp-head-wrap»><div class=»sp-head folded clickable»>agent</div></div><div class=»sp-body»><div class=»sp-content»><!—shcode—><pre><code class=’java’>import com.ups.www.XMLSchema.XOLTWS.Rate.v1_1.*;
import com.ups.www.XMLSchema.XOLTWS.Common.v1_0.*;
import com.ups.www.XMLSchema.XOLTWS.Rate.v1_1.CodeDescriptionType;
import com.ups.www.WSDL.XOLTWS.Rate.v1_1.RateServiceLocator;
import com.ups.www.XMLSchema.XOLTWS.UPSS.v1_0.*;

import lotus.domino.*;

public class JavaAgent extends AgentBase {

Session session;
Database db;
String wssearchkey;
ShipmentType shipment;
_RateRequest raterequest;
_RateResponse rateresponse;
RequestType requestType;

public void NotesMain() {

try {
Document setdoc;
session = getSession();
db = session.getCurrentDatabase();
wssearchkey =»UPSWebServiceSetting».toLowerCase();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Document demand = db.getDocumentByID(agentContext.getCurrentAgent().getParameterDocID());

if (demand == null) {
System.out.println(«Не найден документ»);
return;
};
// System.out.println(«Нашли документ для обработки»);
setdoc = this.getsettingdoc();
if (setdoc == null) return;
//******************************************************
// System.out.println(«записываем параметры безопасности»);
_UPSSecurity upssec = new _UPSSecurity();
upssec = this.getupssecurityparams(setdoc);
if (upssec == null) return;
//******************************************************
//System.out.println(«генерируем запрос»);
raterequest = this.generaterequest(demand, setdoc);
if (raterequest == null) {
System.out.println(«raterequest == null»);
return;
};
//System.out.println(raterequest.getRequest().getRequestOption(0).toString());

// System.out.println(«запуск самого сервиса»);
// запуск самого сервиса

System.out.println(«getShipTo CountryCode: «+raterequest.getShipment().getShipTo().getAddress().getCountryCode());
System.out.println(«getShipTo getPostalCode: «+raterequest.getShipment().getShipTo().getAddress().getPostalCode());
System.out.println(«getShipTo getAddressLine: «+raterequest.getShipment().getShipTo().getAddress().getAddressLine(0));

System.out.println(«Shipper CountryCode: «+raterequest.getShipment().getShipper().getAddress().getCountryCode());
System.out.println(«Shipper getPostalCode: «+raterequest.getShipment().getShipper().getAddress().getPostalCode());
System.out.println(«Shipper getAddressLine: «+raterequest.getShipment().getShipper().getAddress().getAddressLine(0));

System.out.println(«getLength»+raterequest.getShipment().get_package(0).getDimensions().getLength());

RateServiceLocator rr = new RateServiceLocator();
//com.ups.www.WSDL.XOLTWS.Rate.v1_1.RatePortType stub = rr.getRatePort();
// URL portaddr = new URL («https://wwwcie.ups.com/webservices/Rate»);
rr.getRatePort().setCredentials(setdoc.getItemValueString(«USERNAME»), setdoc.getItemValueString(«USERPASSWORD»));

if (upssec == null) {
System.out.println(«upssec is nothing»);
return;
};

// данные о параметрах безопасности
System.out.println(«getAccessLicenseNumber «+upssec.getServiceAccessToken().getAccessLicenseNumber());
System.out.println(«getUsernameToken UserName «+upssec.getUsernameToken().getUsername());
System.out.println(«getUsernameToken Password «+upssec.getUsernameToken().getPassword());
if (raterequest == null) {
System.out.println(«raterequest== null»);
return;
};

rateresponse = rr.getRatePort().processRate(raterequest, upssec);

System.out.println(«Статус»+ rateresponse.getResponse().getResponseStatus().toString());
} catch (Exception e) {
System.out.println(«Error in AgentBase: «);
e.printStackTrace();
}
}

;

//====================================================
private Document getsettingdoc() {
try {
// System.out.println(«получение setview»);
View setview = db.getView(«(WSSETView)»);
if (setview == null) {
System.out.println(«setview is null»);
return null;
};
// System.out.println(«wssearchkey = «+wssearchkey);
Document setdoc = setview.getDocumentByKey(wssearchkey, true);

if (setdoc == null) return null;

return setdoc;

} catch (NotesException err) {
System.out.println(«Error in function ‘getsettingdoc’: «+err.toString());
return null;
}
}

//====================================================
private _UPSSecurity getupssecurityparams(Document setdoc) {
try {
_UPSSecurity usec = new _UPSSecurity();

_UPSSecurity_UsernameToken upsusnametoken = new _UPSSecurity_UsernameToken();
_UPSSecurity_ServiceAccessToken upsservaccesstoken = new _UPSSecurity_ServiceAccessToken();
// прописываем логин и пароль
upsusnametoken.setUsername(setdoc.getItemValueString(«USERNAME»));
upsusnametoken.setPassword(setdoc.getItemValueString(«USERPASSWORD»));

// ключ договора
upsservaccesstoken.setAccessLicenseNumber(setdoc.getItemValueString(«AccessLicenseNumber»));

usec.setServiceAccessToken(upsservaccesstoken);
usec.setUsernameToken(upsusnametoken);

return usec;

} catch (NotesException err) {
System.out.println(«Error in function ‘getupssecurityparams’: «+err.toString());
return null;
}

}

//====================================================
private _RateRequest generaterequest(Document demanddoc, Document setdoc) {
try {
System.out.println(«generaterequest start»);
_RateRequest grequest = new _RateRequest();
System.out.println(«grequest»);
requestType = new RequestType();
// System.out.println(«RequestType setdoc»+setdoc.getItemValueString(«REQUESTOPTION»));

String str[] = {«Rate»,»»};
requestType.setRequestOption(str);
// System.out.println(grequest.getRequest().getRequestOption(0).toString());
// формирование параметров для отправки
shipment = this.generateshipmentparameters(demanddoc, setdoc);
if (shipment == null) return null;
grequest.setShipment(shipment);
// System.out.println(«grequest getShipperNumber»+grequest.getShipment().getShipper().getShipperNumber().toLowerCase());
// System.out.println(grequest.getShipment().getService().getCode());
return grequest;
}catch(Exception e){
System.out.println(«Error in ‘generaterequest’: «+e.toString());
return null;
}

};
//====================================================

private ShipmentType generateshipmentparameters(Document demanddoc, Document setdoc) {
try {
// System.out.println («generateshipmentparameters start»);

ShipmentType shipment1 = new ShipmentType();
; // парметры отгрузки
ShipperType shipper = new ShipperType();
ShipToType shipTo = new ShipToType();
ShipFromType shipFrom = new ShipFromType();
CodeDescriptionType service = new CodeDescriptionType();
PackageType _package = new PackageType();

AddressType adr = new AddressType();
ShipToAddressType shiptoaddress = new ShipToAddressType();
// данные об отправителе
// System.out.println («данные об отправителе»);
String fromloc = demanddoc.getItemValueString(«FromLocation»);
shipper.setName(fromloc);
// System.out.println («Проставили наименование отправителя»);
shipper.setShipperNumber(demanddoc.getItemValueString(«ShipperNumber»));
// System.out.println («Проставили ShipperNumber»);
String cc[]={
demanddoc.getItemValueString(«From_Address»),»»};
adr.setAddressLine(cc);
adr.setCity(demanddoc.getItemValueString(«FromTown»)); // город откуда отправляем
// System.out.println («город откуда»);
adr.setCountryCode(setdoc.getItemValueString(«CountryCode»)); // код страны откуда отправляем
// System.out.println («код страны откуда отправляем»);
adr.setPostalCode(demanddoc.getItemValueString(«FromZip»));
// System.out.println («индекс города откуда отправляем»);
shipper.setAddress(adr);
// System.out.println («Проставили Адресные данные»);
//——————————————-//
// данные о получателе
// System.out.println («данные о получателе»);
String tolocation = demanddoc.getItemValueString(«ToLocation»);
shipTo.setName(tolocation);
String cc1[] = {demanddoc.getItemValueString(«To_Address»),»»};
shiptoaddress.setAddressLine(cc1);
shiptoaddress.setCity(demanddoc.getItemValueString(«ToTown»)); // город куда отправляем
shiptoaddress.setCountryCode(setdoc.getItemValueString(«CountryCode»)); // код страны откуда отправляем
shiptoaddress.setPostalCode(demanddoc.getItemValueString(«To_Index»));

shipTo.setAddress(shiptoaddress);
//——————————————-//
// данные об отправителе
System.out.println(«данные от кого»);
shipFrom.setName(fromloc);
adr.setAddressLine(cc);
adr.setCity(demanddoc.getItemValueString(«FromTown»)); // город откуда отправляем
adr.setCountryCode(setdoc.getItemValueString(«CountryCode»)); // код страны откуда отправляем
adr.setPostalCode(demanddoc.getItemValueString(«From_Index»));
shipFrom.setAddress(adr);

//—————————————————————
// код типа сервиса
// System.out.println («код типа сервиса»);
service.setCode(setdoc.getItemValueString(«ServiceCode»));

//данные об отправляемом объекте
// System.out.println («данные об отправляемом объекте»);
CodeDescriptionType packagingType = new CodeDescriptionType();
// System.out.println(«Corresp_Type = «+demanddoc.getItemValueString(«Corresp_Type»));
// if (demanddoc.getItemValueString(«Corresp_Type») == «01») {
// packagingType.setCode(«01»); // письмо
if ( demanddoc.getItemValueString(«Corresp_Type») == «02»){
// packagingType.setCode(«02»); // коробка
com.ups.www.XMLSchema.XOLTWS.Rate.v1_1.DimensionsType dimensions = new com.ups.www.XMLSchema.XOLTWS.Rate.v1_1.DimensionsType();
dimensions.setHeight(demanddoc.getItemValueString(«Height»));
dimensions.setLength(demanddoc.getItemValueString(«Length»));
dimensions.setWidth(demanddoc.getItemValueString(«Width»));
CodeDescriptionType cdtype = new CodeDescriptionType();

cdtype.setCode(setdoc.getItemValueString(«unitOfMeasurementCode»));
dimensions.setUnitOfMeasurement(cdtype);

// вес коробки
PackageWeightType PackageWeight = new PackageWeightType();
cdtype.setCode(setdoc.getItemValueString(«unitOfWeightCode»));
PackageWeight.setUnitOfMeasurement(cdtype); // размерность веса
PackageWeight.setWeight(demanddoc.getItemValueString(«Weight»));

_package.setPackageWeight(PackageWeight);
_package.setDimensions(dimensions);
}else{
DimensionsType dimensions = new DimensionsType();
dimensions.setHeight(«0»);
dimensions.setLength(«0»);
dimensions.setWidth(«0»);
CodeDescriptionType cdtype = new CodeDescriptionType();

cdtype.setCode(setdoc.getItemValueString(«unitOfMeasurementCode»));
dimensions.setUnitOfMeasurement(cdtype);

// вес коробки
PackageWeightType PackageWeight = new PackageWeightType();
cdtype.setCode(setdoc.getItemValueString(«unitOfWeightCode»));
PackageWeight.setUnitOfMeasurement(cdtype); // размерность веса
PackageWeight.setWeight(«0»);

_package.setPackageWeight(PackageWeight);
_package.setDimensions(dimensions);

};
packagingType.setCode(demanddoc.getItemValueString(«Corresp_Type»));
_package.setPackagingType(packagingType);
PackageType ptype[] = {_package};

// System.out.println («запись параметров»);
if (shipment1 == null) {
System.out.println(«shipment is null»);
return null;
};

shipment1.setService(service);
System.out.println(«service»);
shipment1.setShipper(shipper);
System.out.println(«shipper»);
shipment1.setShipFrom(shipFrom);
System.out.println(«shipFrom»);
shipment1.setShipTo(shipTo);
System.out.println(«shipTo»);
shipment1.set_package(ptype);

System.out.println(«set_package»);
// System.out.println («generateshipmentparameters end»);

return shipment1;

}catch(Exception err){
System.out.println(«Error in function ‘generateshipmentparameters’: «+err.toString());
return null;
}

}
}[/CODE]
<div class=»sp-wrap»><div class=»sp-head-wrap»><div class=»sp-head folded clickable»>Добавлено:</div></div><div class=»sp-body»><div class=»sp-content»><!—shcode—><pre><code class=’java’>import com.ups.www.XMLSchema.XOLTWS.Rate.v1_1.*;
import com.ups.www.XMLSchema.XOLTWS.Common.v1_0.*;
import com.ups.www.XMLSchema.XOLTWS.Rate.v1_1.CodeDescriptionType;
import com.ups.www.WSDL.XOLTWS.Rate.v1_1.RateServiceLocator;
import com.ups.www.XMLSchema.XOLTWS.UPSS.v1_0.*;

import lotus.domino.*;

public class JavaAgent extends AgentBase {

Session session;
Database db;
String wssearchkey;
ShipmentType shipment;
_RateRequest raterequest;
_RateResponse rateresponse;
RequestType requestType;

public void NotesMain() {

try {
Document setdoc;
session = getSession();
db = session.getCurrentDatabase();
wssearchkey =»UPSWebServiceSetting».toLowerCase();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Document demand = db.getDocumentByID(agentContext.getCurrentAgent().getParameterDocID());

if (demand == null) {
System.out.println(«Не найден документ»);
return;
};
// System.out.println(«Нашли документ для обработки»);
setdoc = this.getsettingdoc();
if (setdoc == null) return;
//******************************************************
// System.out.println(«записываем параметры безопасности»);
_UPSSecurity upssec = new _UPSSecurity();
upssec = this.getupssecurityparams(setdoc);
if (upssec == null) return;
//******************************************************
//System.out.println(«генерируем запрос»);
raterequest = this.generaterequest(demand, setdoc);
if (raterequest == null) {
System.out.println(«raterequest == null»);
return;
};
//System.out.println(raterequest.getRequest().getRequestOption(0).toString());

// System.out.println(«запуск самого сервиса»);
// запуск самого сервиса

System.out.println(«getShipTo CountryCode: «+raterequest.getShipment().getShipTo().getAddress().getCountryCode());
System.out.println(«getShipTo getPostalCode: «+raterequest.getShipment().getShipTo().getAddress().getPostalCode());
System.out.println(«getShipTo getAddressLine: «+raterequest.getShipment().getShipTo().getAddress().getAddressLine(0));

System.out.println(«Shipper CountryCode: «+raterequest.getShipment().getShipper().getAddress().getCountryCode());
System.out.println(«Shipper getPostalCode: «+raterequest.getShipment().getShipper().getAddress().getPostalCode());
System.out.println(«Shipper getAddressLine: «+raterequest.getShipment().getShipper().getAddress().getAddressLine(0));

System.out.println(«getLength»+raterequest.getShipment().get_package(0).getDimensions().getLength());

RateServiceLocator rr = new RateServiceLocator();
//com.ups.www.WSDL.XOLTWS.Rate.v1_1.RatePortType stub = rr.getRatePort();
// URL portaddr = new URL («https://wwwcie.ups.com/webservices/Rate»);
rr.getRatePort().setCredentials(setdoc.getItemValueString(«USERNAME»), setdoc.getItemValueString(«USERPASSWORD»));

if (upssec == null) {
System.out.println(«upssec is nothing»);
return;
};

// данные о параметрах безопасности
System.out.println(«getAccessLicenseNumber «+upssec.getServiceAccessToken().getAccessLicenseNumber());
System.out.println(«getUsernameToken UserName «+upssec.getUsernameToken().getUsername());
System.out.println(«getUsernameToken Password «+upssec.getUsernameToken().getPassword());
if (raterequest == null) {
System.out.println(«raterequest== null»);
return;
};

rateresponse = rr.getRatePort().processRate(raterequest, upssec);

System.out.println(«Статус»+ rateresponse.getResponse().getResponseStatus().toString());
} catch (Exception e) {
System.out.println(«Error in AgentBase: «);
e.printStackTrace();
}
}

;

//====================================================
private Document getsettingdoc() {
try {
// System.out.println(«получение setview»);
View setview = db.getView(«(WSSETView)»);
if (setview == null) {
System.out.println(«setview is null»);
return null;
};
// System.out.println(«wssearchkey = «+wssearchkey);
Document setdoc = setview.getDocumentByKey(wssearchkey, true);

if (setdoc == null) return null;

return setdoc;

} catch (NotesException err) {
System.out.println(«Error in function ‘getsettingdoc’: «+err.toString());
return null;
}
}

//====================================================
private _UPSSecurity getupssecurityparams(Document setdoc) {
try {
_UPSSecurity usec = new _UPSSecurity();

_UPSSecurity_UsernameToken upsusnametoken = new _UPSSecurity_UsernameToken();
_UPSSecurity_ServiceAccessToken upsservaccesstoken = new _UPSSecurity_ServiceAccessToken();
// прописываем логин и пароль
upsusnametoken.setUsername(setdoc.getItemValueString(«USERNAME»));
upsusnametoken.setPassword(setdoc.getItemValueString(«USERPASSWORD»));

// ключ договора
upsservaccesstoken.setAccessLicenseNumber(setdoc.getItemValueString(«AccessLicenseNumber»));

usec.setServiceAccessToken(upsservaccesstoken);
usec.setUsernameToken(upsusnametoken);

return usec;

} catch (NotesException err) {
System.out.println(«Error in function ‘getupssecurityparams’: «+err.toString());
return null;
}

}

//====================================================
private _RateRequest generaterequest(Document demanddoc, Document setdoc) {
try {
System.out.println(«generaterequest start»);
_RateRequest grequest = new _RateRequest();
System.out.println(«grequest»);
requestType = new RequestType();
// System.out.println(«RequestType setdoc»+setdoc.getItemValueString(«REQUESTOPTION»));

String str[] = {«Rate»,»»};
requestType.setRequestOption(str);
// System.out.println(grequest.getRequest().getRequestOption(0).toString());
// формирование параметров для отправки
shipment = this.generateshipmentparameters(demanddoc, setdoc);
if (shipment == null) return null;
grequest.setShipment(shipment);
// System.out.println(«grequest getShipperNumber»+grequest.getShipment().getShipper().getShipperNumber().toLowerCase());
// System.out.println(grequest.getShipment().getService().getCode());
return grequest;
}catch(Exception e){
System.out.println(«Error in ‘generaterequest’: «+e.toString());
return null;
}

};
//====================================================

private ShipmentType generateshipmentparameters(Document demanddoc, Document setdoc) {
try {
// System.out.println («generateshipmentparameters start»);

ShipmentType shipment1 = new ShipmentType();
; // парметры отгрузки
ShipperType shipper = new ShipperType();
ShipToType shipTo = new ShipToType();
ShipFromType shipFrom = new ShipFromType();
CodeDescriptionType service = new CodeDescriptionType();
PackageType _package = new PackageType();

AddressType adr = new AddressType();
ShipToAddressType shiptoaddress = new ShipToAddressType();
// данные об отправителе
// System.out.println («данные об отправителе»);
String fromloc = demanddoc.getItemValueString(«FromLocation»);
shipper.setName(fromloc);
// System.out.println («Проставили наименование отправителя»);
shipper.setShipperNumber(demanddoc.getItemValueString(«ShipperNumber»));
// System.out.println («Проставили ShipperNumber»);
String cc[]={
demanddoc.getItemValueString(«From_Address»),»»};
adr.setAddressLine(cc);
adr.setCity(demanddoc.getItemValueString(«FromTown»)); // город откуда отправляем
// System.out.println («город откуда»);
adr.setCountryCode(setdoc.getItemValueString(«CountryCode»)); // код страны откуда отправляем
// System.out.println («код страны откуда отправляем»);
adr.setPostalCode(demanddoc.getItemValueString(«FromZip»));
// System.out.println («индекс города откуда отправляем»);
shipper.setAddress(adr);
// System.out.println («Проставили Адресные данные»);
//——————————————-//
// данные о получателе
// System.out.println («данные о получателе»);
String tolocation = demanddoc.getItemValueString(«ToLocation»);
shipTo.setName(tolocation);
String cc1[] = {demanddoc.getItemValueString(«To_Address»),»»};
shiptoaddress.setAddressLine(cc1);
shiptoaddress.setCity(demanddoc.getItemValueString(«ToTown»)); // город куда отправляем
shiptoaddress.setCountryCode(setdoc.getItemValueString(«CountryCode»)); // код страны откуда отправляем
shiptoaddress.setPostalCode(demanddoc.getItemValueString(«To_Index»));

shipTo.setAddress(shiptoaddress);
//——————————————-//
// данные об отправителе
System.out.println(«данные от кого»);
shipFrom.setName(fromloc);
adr.setAddressLine(cc);
adr.setCity(demanddoc.getItemValueString(«FromTown»)); // город откуда отправляем
adr.setCountryCode(setdoc.getItemValueString(«CountryCode»)); // код страны откуда отправляем
adr.setPostalCode(demanddoc.getItemValueString(«From_Index»));
shipFrom.setAddress(adr);

//—————————————————————
// код типа сервиса
// System.out.println («код типа сервиса»);
service.setCode(setdoc.getItemValueString(«ServiceCode»));

//данные об отправляемом объекте
// System.out.println («данные об отправляемом объекте»);
CodeDescriptionType packagingType = new CodeDescriptionType();
// System.out.println(«Corresp_Type = «+demanddoc.getItemValueString(«Corresp_Type»));
// if (demanddoc.getItemValueString(«Corresp_Type») == «01») {
// packagingType.setCode(«01»); // письмо
if ( demanddoc.getItemValueString(«Corresp_Type») == «02»){
// packagingType.setCode(«02»); // коробка
com.ups.www.XMLSchema.XOLTWS.Rate.v1_1.DimensionsType dimensions = new com.ups.www.XMLSchema.XOLTWS.Rate.v1_1.DimensionsType();
dimensions.setHeight(demanddoc.getItemValueString(«Height»));
dimensions.setLength(demanddoc.getItemValueString(«Length»));
dimensions.setWidth(demanddoc.getItemValueString(«Width»));
CodeDescriptionType cdtype = new CodeDescriptionType();

cdtype.setCode(setdoc.getItemValueString(«unitOfMeasurementCode»));
dimensions.setUnitOfMeasurement(cdtype);

// вес коробки
PackageWeightType PackageWeight = new PackageWeightType();
cdtype.setCode(setdoc.getItemValueString(«unitOfWeightCode»));
PackageWeight.setUnitOfMeasurement(cdtype); // размерность веса
PackageWeight.setWeight(demanddoc.getItemValueString(«Weight»));

_package.setPackageWeight(PackageWeight);
_package.setDimensions(dimensions);
}else{
DimensionsType dimensions = new DimensionsType();
dimensions.setHeight(«0»);
dimensions.setLength(«0»);
dimensions.setWidth(«0»);
CodeDescriptionType cdtype = new CodeDescriptionType();

cdtype.setCode(setdoc.getItemValueString(«unitOfMeasurementCode»));
dimensions.setUnitOfMeasurement(cdtype);

// вес коробки
PackageWeightType PackageWeight = new PackageWeightType();
cdtype.setCode(setdoc.getItemValueString(«unitOfWeightCode»));
PackageWeight.setUnitOfMeasurement(cdtype); // размерность веса
PackageWeight.setWeight(«0»);

_package.setPackageWeight(PackageWeight);
_package.setDimensions(dimensions);

};
packagingType.setCode(demanddoc.getItemValueString(«Corresp_Type»));
_package.setPackagingType(packagingType);
PackageType ptype[] = {_package};

// System.out.println («запись параметров»);
if (shipment1 == null) {
System.out.println(«shipment is null»);
return null;
};

shipment1.setService(service);
System.out.println(«service»);
shipment1.setShipper(shipper);
System.out.println(«shipper»);
shipment1.setShipFrom(shipFrom);
System.out.println(«shipFrom»);
shipment1.setShipTo(shipTo);
System.out.println(«shipTo»);
shipment1.set_package(ptype);

System.out.println(«set_package»);
// System.out.println («generateshipmentparameters end»);

return shipment1;

}catch(Exception err){
System.out.println(«Error in function ‘generateshipmentparameters’: «+err.toString());
return null;
}

}
}[/CODE]

💡Почему важно знать причины неоплаты?

Оплата банковской картой через интернет — эту услугу сейчас предлагает практически любой интернет магазин. Вы можете например купить билет на поезд, оплатив банковской картой, сделать покупку на ozon.ru, купить ЖД билет онлайн.

Я всегда заказывал и оплачивал билеты банковской картой через интернет(я использую только дебетовые карты, у меня нет кредитной карты). Самое интересное, что и эта услуга иногда дает сбой — зависают деньги на карте, не проходит оплата.

Но у меня был случай, когда оплата просто не проходила. Робокасса писала сообщение — оплата отменена. Я не знал, в чем причина. В личном кабинете найти ошибку мне не удалось.

Существует множество разных причин ошибок — они бывают по причине банка или владельца карты. Важно хотя бы предполагать причину ошибки, чтоб понимать как действовать дальше? К примеру, если не удается оплатить горячий билет, то нужно понимать в чем причина и попытаться исправить проблему. Иначе билет может быть куплен другим человеком.

Основные причины ошибок при оплате банковской картой

Первая причина, которая является самой распространенной — отсутствие нужной суммы на карте. Рекомендуется проверить ваш баланс — для этого нужно позвонить в банк или войти в интернет банк. Иногда по карте устанавливают ежемесячный или ежедневный лимит трат. Чтоб это проверить — нужно позвонить в банк.

Эта причина может быть не ясна сразу — при отказе в оплате может не отображаться ваш баланс. Ошибка аутентификации 3D secure может быть также связана с неверным вводом реквизитов карты на предыдущем шаге. В таком случае просто повторите платеж и укажите правильные данные.

Вторая причина — на стороне платежной системы. Например, терминал оплаты РЖД не позволяет платить картами MasterCard. Можно использовать только карты Visa.
Заданный магазин может не поддерживать данный способ оплаты. К примеру, Робокасса, которую подключают к множеству магазинов предлагает различные тарифы для оплаты.
Робокасса как оплатить
Я сначала хотел оплатить вебмани, однако я позвонил в магазин. Оказалось, оплатить вебмани нельзя. У них не подключена эта опция. Хотя способ оплаты через вебмани предлагается на странице оплаты.

Третья причина — возможно ваша карта заблокирована. Опять же можно позвонить в банк и проверить это. Блокировка может быть осуществлена банком автоматически в случае наличия подозрительных операций у клиента.

Четвертая причина — у вас не подключена опция 3d Secure(MasterCard SecureCode в случае MasterCard).
Технология 3D Secure заключается в следующем: при оплате вам приходит СМС от банка, которую вы должны ввести в специальном окне. Эту СМС знаете только вы и банк. Мошенничество в данном случае достаточно трудно, для него потребуется и ваш телефон.
Эта опция нужна вам для оплаты на сумму больше 3 тыс. рублей. Это как раз мой случай. Я купил в интернет магазине газовую плиту Bosh. При оплате товара на сумму 22 тыс. рублей мне выдалось вот такое сообщение:
оплата картой Робокасса

Ошибка при оплате банковской картой.
Я был в замешательстве, не знал что делать. Сначала я думал, что это проблема магазина. Но сначала я все таки позвонил в банк. В моем случае это был Промсвязьбанк и карта Доходная.
Позвонив в поддержку Промсвязьбанка, мне предложили сначала пройти процедуру аутентификации

  1. Назвать 4 последних цифры номера карты
  2. Назвать фамилию имя отчество полностью
  3. Назвать кодовое слово.

Далее для подключения услуги 3d Secure от меня потребовали 2 номера из таблицы разовых ключей.  Вроде как услугу подключили, но через полчаса оплата снова не прошла. Позвонил в банк — сказали ожидайте когда подключится — услуга подключается не сразу. Нужно подождать.

Я решил проверить, подключена ли услуга. Я залогинился в Интернет-банк — увидел, что такая услуга есть(в ПСБ ритейл это можно посмотреть на странице карты, щелкнув по номеру карты)
банк 3D Secure
Еще раз попытка оплаты — мне высветилось окно, где я должен был ввести код подтверждения. После заполнения данных карты мне пришло СМС с кодом для оплаты
оплата 3d secure
Далее вуаля — заказ наконец то оплачен. Я получил следующее окно и статус заказа в магазине изменился на «Оплачен»
Мой заказ доставили в пункт назначения, где я его заберу в течение месяца. Главное оплата прошла.
Оплата картой через интернет

Самая частая ошибка 11070: ошибка аутентификации 3d-secure — причины

Самая частая ошибка, которая происходит при оплате картой — 11070: ошибка аутентификации 3dsecure. Есть 2 возможных причины этой ошибки

  1. Введен неверный одноразовый код. Вам пришел код, но при вводе вы допустили ошибку в цифре. В результате получили ошибку
  2. Одноразовый код протух. Время, которое вам дают на ввод одноразового кода при оплате, составляет не более 5 минут. Далее вам придется повторить оплату.

В любом случае, советуем повторить процесс оплаты и удостовериться, что вы ввели одноразовый пароль 3D Secure сразу после получения и пароль введен верно.

Ошибка процессинга карты — что это такое?

Процессинг банка — это сложная программа, которая отвечает за обработку транзакций по картам. Когда вы снимаете деньги в банкомате, делаете покупку, то идет запрос по интернет в данную систему. Проверяется есть ли на вашей карте деньги. Эта программа находится на серверах в Интернет.

Вы не можете повлиять на данную ошибку никак. Вам стоит обратиться на горячую линию банка или интернет-магазина, где вы осуществляете транзакцию. Исправление ошибки — дело специалистов, поддерживающих данную систему. Остается только ждать.

Вы можете попробовать осуществить оплату повторно примерно через пол-часа. По идее такие ошибки должны исправляться очень быстро. Аналогичная ошибка бывает с сообщением «Сервис временно недоступен». Это значит, что сломалась серверная сторона и сделать ничего нельзя. Только ждать починки

Что значит хост недоступен при оплате картой

Хост — это определенный сетевой адрес. Это может быть ip адрес или же просто доменное имя(к примеру, server1.sberbak.online). При оплате картой через терминал происходит подключение к определенному сетевому адресу(хосту). На данном хосте находится программное обеспечение, которое производит оплату — снимает с карты деньги, проверяет баланс и т.д.

Если хост недоступен, значит деньги снять нельзя. Есть 2 основных причины недоступности:

  1. Нет интернет на устройстве, с которого производится оплата. В современных терминалах может быть вшит Интернет-модуль, через который терминал связывается с сервером. Возможно он потерял сеть или завис. В этом случае может помочь перезагрузка или же выход по голое небо, где Мобильный интернет ловит отлично
  2. Хост недоступен по причине поломки. В этом случае рекомендуется обратиться на горячую линию банка, который поддерживает ваш терминал. Данная проблема должна решаться на стороне хоста. Он может быть недоступен по разным причинам: завис, упал сервер, идет обновление программного обеспечения.

Что такое ошибка в CVC карты?

CVC-код — это трехзначный код, который находится на обратной стороне вашей банковской карты. Если появляется ошибка в CVC карты, то рекомендуем проверить, правильно ли вы ввели этот код? Если все правильно, пожалуйста проверьте, введены ли правильно другие данные вашей карты Сбербанка, ВТБ или другого банка.

cvc код
CVC код нужен для того, чтоб проверить, есть ли у вас на руках данная карта в руках. Данная ошибка значит, что CVC код введен неверно. Просто осуществите оплату повторно и введите все данные верно

Проблема при регистрации токена — как решить?

Проблема при регистрации токена — частая ошибка, которая проявляется на сайте РЖД при оплате билетов.
Токен — это уникальный идентификатор(стока типа 23hjsdfjsdhfjhj2323dfgg), которая формируется когда вы заказываете билет. Это как бы ваша сессия оплаты. Ошибка возникает на стороне сервера оплаты.
Решений может быть два

  1. Проблемы на сервере РЖД. Сервер оплаты очень занят и перегружен из-за числа заказов. Возможно на нем ошибка. Рекомендуем в этом случае попробывать повторить оплату позднее
  2. Токен Истек. Это вина того, кто платит. Рассмотрим ситуацию: если вы оформили билет, а потом отошли от компьютера на полчаса, а потом вернулись и нажали оплатить. Ваш заказ аннулирован, т.к. вы не оплатили вовремя. При оплате вы получите ошибку. Нужно заново купить билет и оплатить его в течение 10 минут.

Если ошибка в течение часа сохраняется, рекомендуем обратиться на горячую линию РЖД.

Ошибка банковской карты — карта не поддерживается

Ошибка «карта не поддерживается» может возникать, если вы оплачиваете какую-либо услугу картой другой платежной системы, предоплаченной картой либо же Виртуальной картой. Это не значит, что карта у вас «неправильная», на ней нет денег или еще что-либо. Просто в данном конкретном случае нельзя использовать карту вашего типа. К примеру, виртуальные карты нельзя использовать при оплате в Google Play Market.

Решение простое: попробуйте использовать другую карту. Если ошибка повторится, то обратитесь в службу поддержки интернет-магазина или платежного сервиса, где осуществляете оплату.

Таблица с кодами ошибок при оплате.

Немногие знают, что при оплате картой система обычно выдает код ошибки. Например, E00 при оплате. Иногда по ошибке можно понять, в чем проблема

Код ошибки и описание
Код 00 – успешно проведенная операция.
Код 01 – отказать, позвонить в банк, который выпустил карту.
Код 02 – отказать, позвонить в банк, который выпустил карту (специальные условия).
Код 04 — изъять карту без указания причины.
Код 05 – отказать без указания причины.
Код 17 – отказать, отклонено пользователем карты.
код 19 — тех. ошибка на стороне банка
Код 41 – изъять, утерянная карта.
Код 43 – изъять, украденная карта.
код 50 — ?
Код 51 – отказать, на счете недостаточно средств.
Код 55 – отказать, неверно введенный ПИН-код.
Код 57 – отказать, недопустимый тип операции для данного вида карты
(например, попытка оплаты в магазине по карте предназначенной только для снятия наличных).
Код 61 – отказать, превышение максимальной суммы операции для данной карты.
Код 62 – отказать, заблокированная карта.
Код 65 – отказать, превышение максимального количества операции для данной карты.
Код 75 — отказать, превышение максимального количества неверных ПИН-кодов для данной карты.
Код 83 – отказать, ошибка сети (технические проблемы).
Код 91 – отказать, невозможно направить запрос (технические проблемы).
Код 96 – отказать, невозможно связаться с банком, который выдал карту.
Код Z3 — онлайн не работает, а в оффлайне терминал отклонил транзакцию.

Что делать, если с картой все ОК, но оплата не проходит?

Самая типичная проблема, когда оплата не проходит — сбой в банковской системе. В работе банка могут наблюдаться перебои. Это может быть не обязательно ваш банк, а банк который принимает платеж на стороне клиента(которому принадлежит терминал). В этом случае можно дать 2 совета

  1. Подождать и оплатить позднее. Сбои в работе оперативно решаются и уже через час оплата может пройти без проблем. Обычно о сбоях можно узнать по СМС сообщениям или позвонив на горячую линию вашего банка.
  2. Использовать другую карту. Если нельзя оплатить одной — нужно попробывать оплатить другой картой. Если оплата и другой картой не проходит, то это скорее всего сбой на стороне, принимающей платеж. Тут остается только ждать.

3 полезных совета при оплате картой через Интернет

Во первых — заведите себе специальную карту. Не используйте для оплаты зарплатную карту, на которой у вас все деньги. Оптимально — кредитная карта. Она позволяет в отдельных случаях вернуть часть суммы покупки(CashBack). Обычно это сумма до 5 процентов от покупки. Будьте внимательны, некоторые сервисы при оплате катой берут комиссии. И конечно же адрес страницы оплаты всегда должен начинаться с https и рядом с адресом должен стоять значок в виде замка(Соединение https).

Во вторых — не держите много денег на карте. На карте должно быть немногим больше суммы, необходимой вам для покупки. Примерно плюс 10% от общей стоимости покупки. Логика проста — с нулевой карты ничего не могут снять.
Делаете покупку — просто пополняете карту в интернет банке и получаете нужную сумму.

В третьих — Делайте оплату картой в известных магазинах. Почитайте отзывы о магазинах на Яндекс.Маркет. Если вы платите картой, будьте готовы к тому, что при отмене заказа могут вернуться на вашу карту не сразу.
В последний раз, когда я делал оплату заказа и потом возвращал заказ и деньги, возврат на карту шел в течение 7 дней. Помните — никто деньги вам сразу не вернет. Будьте готовы ждать.

Популярные вопросы и ответы про оплату

Может ли пройти онлайн-оплата, если вы указали неверный cvv/cvc, но в системе 3d- secure ввели верный код из SMS?

Это вопрос из IT диктанта. Ответ на него ДА, может.

Код cvv/cvc известен только банку, который выпустил карту. И именно банк решает, пропустить транзакцию или нет. Данный код может и не передаваться при оплате, хотя и его нужно будет вводить при оплате. Авторизовать операцию возможно и без данного кода. Т.е. пройдет эта операция или нет — решает банк.

Пройдет ли оплата картой, если неверно ввести ФИО плательщика

ФИО плательщика практически не влияет на успешность оплаты. Можно ввести любое имя, хоть «Котик Вася» и при верном вводе других реквизитов карты оплата пройдет.

Дмитрий Тачков

Дмитрий Тачков

Работник банка или другого фин. учреждения
Подробнее

Создатель проекта, финансовый эксперт

Привет, я автор этой статьи и создатель всех калькуляторов данного проекта. Имею более чем 3х летний опыт работы банках Ренессанс Кредит и Промсвязьбанк. Отлично разбираюсь в кредитах, займах и в досрочном погашении. Пожалуйста оцените эту статью, поставьте оценку ниже.

0 / 0 / 2

Регистрация: 19.04.2015

Сообщений: 92

1

В чем может быть ошибка при вызове сервиса?

22.04.2016, 17:20. Показов 2304. Ответов 6


Студворк — интернет-сервис помощи студентам

В чем может быть проблема при вызове сервиса?


Изучаю service, и возник вопрос по-поводу, передачи данных между сервисом и активити. Нашел этот урок, и сделал все как в нем описано. Но при вызове сервиса — выбрасывает просто с программы, при этом в логах не пишет никаких exeption или ошибок. Просто такой диалог , и закрывается программа:

Вот мой код:

активити:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
public class MainActivity extends AppCompatActivity {
 
    private final int TASK1_CODE = 1;
    private final int TASK2_CODE = 2;
    private final int TASK3_CODE = 3;
 
    public final static int STATUS_START = 100;
    public final static int STATUS_FINISH = 200;
 
    public static final String PARAM_TIME = "TIME";
    public static final String PARAM_PINTENT = "PINTENT";
    public static final String PARAM_RESULT = "RESULT";
 
    private TextView textTask1, textTask2, textTask3;
    private Button startService;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        textTask1 = (TextView) findViewById(R.id.task1);
        textTask1.setText("task 1 ");
 
        textTask2 = (TextView) findViewById(R.id.task2);
        textTask2.setText("task 2");
 
        textTask3 = (TextView) findViewById(R.id.task3);
        textTask3.setText("task 3");
 
        startService = (Button) findViewById(R.id.startButton);
        startService.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                onClickStart();
            }
        });
 
 
    }
 
 
    private void onClickStart(){
        PendingIntent pi;
        Intent intent;
 
        pi = createPendingResult(TASK1_CODE, null, 0);
        intent = new Intent(getApplicationContext(), MyService.class)
                .putExtra(PARAM_TIME, 7)
                .putExtra(PARAM_PINTENT, pi);
        startService(intent);
 
        pi = createPendingResult(TASK2_CODE, null, 0);
        intent = new Intent(getApplicationContext(), MyService.class)
                .putExtra(PARAM_TIME, 4)
                .putExtra(PARAM_PINTENT, pi);
        startService(intent);
 
        pi = createPendingResult(TASK3_CODE, null, 0);
        intent = new Intent(getApplicationContext(), MyService.class)
                .putExtra(PARAM_TIME, 6)
                .putExtra(PARAM_PINTENT, pi);
        startService(intent);
 
    }
 
 
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (resultCode == STATUS_START){
            switch (requestCode){
                case TASK1_CODE:{
                    textTask1.setText("task 1 start");
                    break;
                }
                case TASK2_CODE:{
                    textTask2.setText("task 2 start");
                    break;
                }
                case TASK3_CODE:{
                    textTask3.setText("task 3 start");
                    break;
                }
            }
        }
        if (resultCode == STATUS_FINISH){
            int result = data.getIntExtra(PARAM_RESULT, 0);
            switch (requestCode){
                case TASK1_CODE:{
                    textTask1.setText("task 1 finish, result = " + result );
                    break;
                }
                case TASK2_CODE:{
                    textTask2.setText("task 2 finish, result = " + result);
                    break;
                }
                case TASK3_CODE:{
                    textTask3.setText("task 3 finish , result = " + result);
                    break;
                }
            }
        }
 
    }
 
 
}

и сервис:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
public class MyService extends Service {
 
    private final String LOG = "MYSERVICELOG";
    private ExecutorService executorService;
 
    @Override
    public void onCreate() {
        super.onCreate();
        Log.d(LOG, "onCreate");
        executorService = Executors.newFixedThreadPool(2);
    }
 
    @Override
    public void onDestroy() {
        super.onDestroy();
        Log.d(LOG, "onDestroy");
    }
 
 
 
    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        Log.d(LOG, "onStartCommand");
        int time = intent.getIntExtra(MainActivity.PARAM_TIME, 1);
        PendingIntent pi = intent.getParcelableExtra(MainActivity.PARAM_PINTENT);
 
        MyRun myRun = new MyRun(time, startId, pi);
        executorService.execute(myRun);
 
        return super.onStartCommand(intent, flags, startId);
 
    }
 
    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }
 
 
    class MyRun implements Runnable{
 
        private int time, startId;
        private PendingIntent pendingIntent;
 
        public MyRun(int time, int startId, PendingIntent pendingIntent){
            this.time = time;
            this.startId = startId;
            this.pendingIntent = pendingIntent;
            Log.d(LOG, "MyRun# " + startId + " created");
        }
 
 
        @Override
        public void run() {
            Log.d(LOG, "MyRun# " + startId + " time: " + time + " start");
            try {
                pendingIntent.send(MainActivity.STATUS_START);
 
                 TimeUnit.SECONDS.sleep(time);
                Intent intent = new Intent()
                        .putExtra(MainActivity.PARAM_RESULT, time *100);
                pendingIntent.send(MyService.this, MainActivity.STATUS_FINISH, intent);
 
            }catch (PendingIntent.CanceledException ce){
                ce.getStackTrace();
            }catch (InterruptedException ie){
                ie.getStackTrace();
            }
            stop();
 
        }
 
        private void stop(){
            Log.d(LOG, "MyService# " + startId + " stoped" );
            stopSelfResult(startId);
        }
 
 
    }
 
}

В чем может быть проблема ??

Помогите, не могу понять !!



0



Изучаю service, и возник вопрос по-поводу, передачи данных между сервисом и активити. Нашел этот урок, и сделал все как в нем описано. Но при вызове сервиса — выбрасывает просто с программы, при этом в логах не пишет никаких exeption или ошибок. Просто такой диалог , и закрывается программа:

57fe8967f9414f518c993f3cdbe76a59.pngВот мой код:
активити:

public class MainActivity extends AppCompatActivity {

    private final int TASK1_CODE = 1;
    private final int TASK2_CODE = 2;
    private final int TASK3_CODE = 3;

    public final static int STATUS_START = 100;
    public final static int STATUS_FINISH = 200;

    public static final String PARAM_TIME = "TIME";
    public static final String PARAM_PINTENT = "PINTENT";
    public static final String PARAM_RESULT = "RESULT";

    private TextView textTask1, textTask2, textTask3;
    private Button startService;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        textTask1 = (TextView) findViewById(R.id.task1);
        textTask1.setText("task 1 ");

        textTask2 = (TextView) findViewById(R.id.task2);
        textTask2.setText("task 2");

        textTask3 = (TextView) findViewById(R.id.task3);
        textTask3.setText("task 3");

        startService = (Button) findViewById(R.id.startButton);
        startService.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                onClickStart();
            }
        });


    }


    private void onClickStart(){
        PendingIntent pi;
        Intent intent;

        pi = createPendingResult(TASK1_CODE, null, 0);
        intent = new Intent(getApplicationContext(), MyService.class)
                .putExtra(PARAM_TIME, 7)
                .putExtra(PARAM_PINTENT, pi);
        startService(intent);

        pi = createPendingResult(TASK2_CODE, null, 0);
        intent = new Intent(getApplicationContext(), MyService.class)
                .putExtra(PARAM_TIME, 4)
                .putExtra(PARAM_PINTENT, pi);
        startService(intent);

        pi = createPendingResult(TASK3_CODE, null, 0);
        intent = new Intent(getApplicationContext(), MyService.class)
                .putExtra(PARAM_TIME, 6)
                .putExtra(PARAM_PINTENT, pi);
        startService(intent);

    }


    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (resultCode == STATUS_START){
            switch (requestCode){
                case TASK1_CODE:{
                    textTask1.setText("task 1 start");
                    break;
                }
                case TASK2_CODE:{
                    textTask2.setText("task 2 start");
                    break;
                }
                case TASK3_CODE:{
                    textTask3.setText("task 3 start");
                    break;
                }
            }
        }
        if (resultCode == STATUS_FINISH){
            int result = data.getIntExtra(PARAM_RESULT, 0);
            switch (requestCode){
                case TASK1_CODE:{
                    textTask1.setText("task 1 finish, result = " + result );
                    break;
                }
                case TASK2_CODE:{
                    textTask2.setText("task 2 finish, result = " + result);
                    break;
                }
                case TASK3_CODE:{
                    textTask3.setText("task 3 finish , result = " + result);
                    break;
                }
            }
        }

    }


}

и сервис:

public class MyService extends Service {

    private final String LOG = "MYSERVICELOG";
    private ExecutorService executorService;

    @Override
    public void onCreate() {
        super.onCreate();
        Log.d(LOG, "onCreate");
        executorService = Executors.newFixedThreadPool(2);
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        Log.d(LOG, "onDestroy");
    }



    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        Log.d(LOG, "onStartCommand");
        int time = intent.getIntExtra(MainActivity.PARAM_TIME, 1);
        PendingIntent pi = intent.getParcelableExtra(MainActivity.PARAM_PINTENT);

        MyRun myRun = new MyRun(time, startId, pi);
        executorService.execute(myRun);

        return super.onStartCommand(intent, flags, startId);

    }

    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }


    class MyRun implements Runnable{

        private int time, startId;
        private PendingIntent pendingIntent;

        public MyRun(int time, int startId, PendingIntent pendingIntent){
            this.time = time;
            this.startId = startId;
            this.pendingIntent = pendingIntent;
            Log.d(LOG, "MyRun# " + startId + " created");
        }


        @Override
        public void run() {
            Log.d(LOG, "MyRun# " + startId + " time: " + time + " start");
            try {
                pendingIntent.send(MainActivity.STATUS_START);

                 TimeUnit.SECONDS.sleep(time);
                Intent intent = new Intent()
                        .putExtra(MainActivity.PARAM_RESULT, time *100);
                pendingIntent.send(MyService.this, MainActivity.STATUS_FINISH, intent);

            }catch (PendingIntent.CanceledException ce){
                ce.getStackTrace();
            }catch (InterruptedException ie){
                ie.getStackTrace();
            }
            stop();

        }

        private void stop(){
            Log.d(LOG, "MyService# " + startId + " stoped" );
            stopSelfResult(startId);
        }


    }

}

В чем может быть проблема ??

Помогите, не могу понять !!

У меня есть отдельный проект web api и отдельный простой пользовательский интерфейс. Для доступа к веб-API в проекте пользовательского интерфейса я включил CORS как показано ниже WebApiConfig.cs

    var cors = new EnableCorsAttribute("http://localhost:49567", "*", "*","*");
    config.EnableCors(cors);

В AccountController.cs когда [Authorize] отключен, я могу получить доступ к API со страницы HTML-проекта пользовательского интерфейса, используя ajax.

$.ajax({
        type: "GET",
        url: "http://localhost:51401/api/Account/UserInfo",
        data: "",
        contentType: "application/json; charset=utf-8",
        success: VerifyResponse,
        dataType: "json",
        crossDomain: true,
        failure: ajaxCallFailed});

Но когда я хочу включить [Authorize] создать аутентификацию токена, вызвав /token во-первых, ошибка Cross-Origin Request Blocked: повторяется в HTML.

$.ajax({
    method: "POST",
    url: "http://localhost:51401/Token",
    data: {
        username: $('#username').val(),
        password: $('#password').val(),
        grant_type: 'password'
    },
    contentType: "application/json",
    success: VerifyResponse,
    dataType: "json",
    crossDomain: true,
    failure: ajaxCallFailed
    });     

Мой web.config в проекте web api теперь после редактирования, сделанного после предложения @arista_14

<system.webServer>
    <modules>
      <remove name="FormsAuthentication" />
      <remove name="ApplicationInsightsWebTracking" />
      <add name="ApplicationInsightsWebTracking" type="Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web" preCondition="managedHandler" />
    </modules>

    <validation validateIntegratedModeConfiguration="false" />
  <handlers>
      <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
      <remove name="OPTIONSVerbHandler" />
      <remove name="TRACEVerbHandler" />
      <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
    </handlers>
<httpProtocol>
   <customHeaders>
       <add name="Access-Control-Allow-Origin" value="*" />
       <add name="Access-Control-Allow-Headers" value="Content-Type" />
       <add name="Access-Control-Allow-Credentials" value="true" />
       <add name="Access-Control-Allow-Methods" value="GET, POST, OPTIONS" />
   </customHeaders>
</httpProtocol> 
  </system.webServer>

Теперь ошибка:

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://localhost:51401/Token. (Reason: CORS preflight channel did not succeed).[Learn More]
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://localhost:51401/Token. (Reason: CORS request did not succeed).[Learn More]

  • Ошибка при вызове подписать менеджера криптографии
  • Ошибка при вызове операции process сервиса
  • Ошибка при вызове операции https assessment 1c ru api rest organizationinfo сервиса спарк
  • Ошибка при вызове метода подписи пфр сзв тд что это значит
  • Ошибка при вызове метода подписи на сайте пфр