Closed Azamatjon closed 5 years ago
Разрабатываемую версию использовать не рекомендуется, поскольку её интерфейс ещё не зафиксирован, обратная совместимость не обеспечивается, возможны любые изменения. Эта версия доступна для изучения нововведений и раннего начала разработки плагина для будущей версии API, чтобы к моменту её выпуска иметь готовый или почти готовый плагин, предоставляющий новые возможности.
Версия API V6 это разрабатываемая версия API. Прогнозируемый срок её выпуска: iiko 7.0. До этого момента по данной версии нет обратной совместимости. Для версии iiko 6.4 рекомендую собрать ваш плагин под API V6Preiview5. Её можно взять из nuget и как вы можете увидеть из схемы в первой ссылке, она будет совместима с версиями iiko 6.4 и 7.0
Конкретно в вашем случае ругается на CollectData
потому что в API V6 в iiko 6.3 и iiko 6.4 разные сигнатуры у этого метода интерфейса. Если вы возьмете SDK от iiko 6.4 и попытаетесь собрать свой код, компилятор укажет вам на эту разницу.
@ierof можете ссылку на пример paymentPlugin для iiko 6.3 оставить?
В публичном поле такой ссылки нет. Обратитесь на api@iiko.ru за SDK от версии 6.3.
Здравствуйте, Написал плагин под SamplePaymentPlugin. И он работает на версии iiko 6.4 API V6. Поставил на продакшн на iiko 6.3. Перестал работать. Посмотрел в логах, там написано якобы не существует метод CollectData. В чём проблема? Хотя все методы прописаны.
Код плагина:
Прилагаю лог плагина:
[2019-08-02 11:16:39,938] INFO [ 1] - ================================================================================ [2019-08-02 11:16:39,944] INFO [ 1] - Resto.Front.Api.Host ver. 6.3.3014.0 [2019-08-02 11:16:39,944] INFO [ 1] - ================================================================================ [2019-08-02 11:16:39,944] INFO [ 1] - Host process PaymentSystem.iikoNet (9108) for “Resto.Front.Api.SamplePaymentPlugin.SamplePaymentPlugin” class from “C:\Program Files\iiko\iikoRMS\Front.Net\Plugins\PaymentSystem.iikoNet\Resto.Front.Api.SamplePaymentPlugin.dll” assembly is running in background mode. [2019-08-02 11:16:39,945] INFO [ 1] - Plugin assembly info: iiko Resto.Front.Api.SamplePaymentPlugin v0.0.0.0, (Resto.Front.Api.SamplePaymentPlugin.dll v0.0.0.0, Resto.Front.Api.SamplePaymentPlugin) [2019-08-02 11:16:39,955] INFO [ 1] - Created plugin domain “PaymentSystem.iikoNet” using “C:\Program Files\iiko\iikoRMS\Front.Net\Plugins\PaymentSystem.iikoNet\Resto.Front.Api.SamplePaymentPlugin.dll.config” [2019-08-02 11:16:39,959] INFO [ 1] - Registering ipc channel... [2019-08-02 11:16:40,226] INFO [ 1] - Plugin context initialized, creating plugin instance... [2019-08-02 11:16:40,237] ERROR [ 1] - Couldn't create plugin instance, constructor thrown an exception: System.Reflection.TargetInvocationException: Адресат вызова создал исключение. ---> System.TypeLoadException: Отсутствует реализация метода "CollectData" в типе "Resto.Front.Api.SamplePaymentPlugin.ExternalPaymentProcessorSample" из сборки "Resto.Front.Api.SamplePaymentPlugin, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null". в Resto.Front.Api.SamplePaymentPlugin.SamplePaymentPlugin..ctor() --- Конец трассировки внутреннего стека исключений --- в System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck) в System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark) в System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark) в System.Activator.CreateInstance(Type type, Boolean nonPublic) в System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, StackCrawlMark& stackMark) в System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes) в System.Activator.CreateInstanceFromInternal(String assemblyFile, String typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, Evidence securityInfo) в Resto.Front.Api.Host.PluginRunner.TryCreatePluginInstance(String assemblyPath, String className) в H:\BuildAgent\work\release-installer\dev\iikoFront.Net\Resto.Front.Api.Host\PluginRunner.cs:строка 149 [2019-08-02 11:16:40,237] ERROR [ 1] - InnerException: System.TypeLoadException: Отсутствует реализация метода "CollectData" в типе "Resto.Front.Api.SamplePaymentPlugin.ExternalPaymentProcessorSample" из сборки "Resto.Front.Api.SamplePaymentPlugin, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null". в Resto.Front.Api.SamplePaymentPlugin.SamplePaymentPlugin..ctor() [2019-08-02 11:16:40,244] INFO [ 1] - Unregistering ipc channel... [2019-08-02 11:16:40,244] INFO [ 1] - Unloading plugin domain... [2019-08-02 11:16:40,248] INFO [ 1] - Shutdown completed