payone-gmbh / magento-2 Goto Github PK
View Code? Open in Web Editor NEWPAYONE Payment Extension for Magento 2
PAYONE Payment Extension for Magento 2
would it be possible to list the extension on https://packagist.org for easier installation? I see you already have an extension there. https://packagist.org/packages/payone-gmbh/
Hi there ;)
Magento 2.1.5
PayOne Extension in most recent version.
Payment Method: PayPal
If I switch the authorization method to "pre-authorization" the redirect back to the shop fails.
After successfully logging in at paypal and confirming the payment I should see a redirect to the checkout success page, but instead I see the checkout page (step 1) again without any error message. The Payone Response status is: "REDIRECT" and I don't see any error message or error code and the order status is cancelled.
Payone status: 902 (Unbekannter Fehler bei externem Dienstleister.)
Everything is fine, if I select "authorization" as authorization mode.
Do you have any idea, or need further information about my configuration settings?
Thank you in advance!
When running integration tests on a project with this module it will fail with the message:
Base table or view not found: 1146 Table 'integration_test.quote_address' doesn't exist, query was: DESCRIBE
quote_address
Since there is no sequence defined, this modules setup is run very early and fails because quote tables have not been created yet.
Adding Magento_Quote to the sequence fixes the problem (Should probably also add Magento_Sales since order tables are being changed to be more correct).
Would be really helpful since it should not break anything and there is no way to add a sequence to another module as far as I know.
We've installed your module on a Magento 2.0.4 system. When we're trying to access the checkout we get an error:
Notice: Undefined index: Number_type in /home/stage/public_html/app/code/Payone/Core/Helper/HostedIframe.php on line 100
#0 /home/stage/public_html/app/code/Payone/Core/Helper/HostedIframe.php(100): Magento\Framework\App\ErrorHandler->handler(8, 'Undefined index...', '/home/atroposst...', 100, Array)
#1 /home/stage/public_html/app/code/Payone/Core/Helper/HostedIframe.php(123): Payone\Core\Helper\HostedIframe->getFieldConfigField('cardpan', 'Number')
#2 /home/stage/public_html/app/code/Payone/Core/Helper/HostedIframe.php(160): Payone\Core\Helper\HostedIframe->getFieldConfig()
#3 /home/stage/public_html/app/code/Payone/Core/Model/ConfigProvider.php(148): Payone\Core\Helper\HostedIframe->getHostedFieldConfig()
#4 /home/stage/public_html/vendor/magento/module-checkout/Model/CompositeConfigProvider.php(32): Payone\Core\Model\ConfigProvider->getConfig()
#5 /home/stage/public_html/vendor/magento/module-checkout/Block/Onepage.php(91): Magento\Checkout\Model\CompositeConfigProvider->getConfig()
#6 /home/stage/public_html/vendor/magento/module-checkout/view/frontend/templates/onepage.phtml(26): Magento\Checkout\Block\Onepage->getCheckoutConfig()
#7 /home/stage/public_html/vendor/magento/framework/View/TemplateEngine/Php.php(59): include('/home/atroposst...')
#8 /home/stage/public_html/vendor/magento/framework/View/Element/Template.php(255): Magento\Framework\View\TemplateEngine\Php->render(Object(Magento\Checkout\Block\Onepage), '/home/atroposst...', Array)
#9 /home/stage/public_html/vendor/magento/framework/View/Element/Template.php(279): Magento\Framework\View\Element\Template->fetchView('/home/atroposst...')
#10 /home/stage/public_html/vendor/magento/framework/View/Element/AbstractBlock.php(657): Magento\Framework\View\Element\Template->_toHtml()
#11 /home/stage/public_html/vendor/magento/framework/View/Layout.php(542): Magento\Framework\View\Element\AbstractBlock->toHtml()
#12 /home/stage/public_html/vendor/magento/framework/View/Layout.php(518): Magento\Framework\View\Layout->_renderBlock('checkout.root')
#13 /home/stage/public_html/var/generation/Magento/Framework/View/Layout/Interceptor.php(206): Magento\Framework\View\Layout->renderNonCachedElement('checkout.root')
#14 /home/stage/public_html/vendor/magento/framework/View/Layout.php(472): Magento\Framework\View\Layout\Interceptor->renderNonCachedElement('checkout.root')
#15 /home/stage/public_html/var/generation/Magento/Framework/View/Layout/Interceptor.php(193): Magento\Framework\View\Layout->renderElement('checkout.root', true)
#16 /home/stage/public_html/vendor/magento/framework/View/Layout.php(569): Magento\Framework\View\Layout\Interceptor->renderElement('checkout.root')
#17 /home/stage/public_html/vendor/magento/framework/View/Layout.php(520): Magento\Framework\View\Layout->_renderContainer('content')
#18 /home/stage/public_html/var/generation/Magento/Framework/View/Layout/Interceptor.php(206): Magento\Framework\View\Layout->renderNonCachedElement('content')
#19 /home/stage/public_html/vendor/magento/framework/View/Layout.php(472): Magento\Framework\View\Layout\Interceptor->renderNonCachedElement('content')
#20 /home/stage/public_html/var/generation/Magento/Framework/View/Layout/Interceptor.php(193): Magento\Framework\View\Layout->renderElement('content', true)
#21 /home/stage/public_html/vendor/magento/framework/View/Layout.php(569): Magento\Framework\View\Layout\Interceptor->renderElement('content')
#22 /home/stage/public_html/vendor/magento/framework/View/Layout.php(520): Magento\Framework\View\Layout->_renderContainer('main')
#23 /home/stage/public_html/var/generation/Magento/Framework/View/Layout/Interceptor.php(206): Magento\Framework\View\Layout->renderNonCachedElement('main')
#24 /home/stage/public_html/vendor/magento/framework/View/Layout.php(472): Magento\Framework\View\Layout\Interceptor->renderNonCachedElement('main')
#25 /home/stage/public_html/var/generation/Magento/Framework/View/Layout/Interceptor.php(193): Magento\Framework\View\Layout->renderElement('main', true)
#26 /home/stage/public_html/vendor/magento/framework/View/Layout.php(569): Magento\Framework\View\Layout\Interceptor->renderElement('main')
#27 /home/stage/public_html/vendor/magento/framework/View/Layout.php(520): Magento\Framework\View\Layout->_renderContainer('columns')
#28 /home/stage/public_html/var/generation/Magento/Framework/View/Layout/Interceptor.php(206): Magento\Framework\View\Layout->renderNonCachedElement('columns')
#29 /home/stage/public_html/vendor/magento/framework/View/Layout.php(472): Magento\Framework\View\Layout\Interceptor->renderNonCachedElement('columns')
#30 /home/stage/public_html/var/generation/Magento/Framework/View/Layout/Interceptor.php(193): Magento\Framework\View\Layout->renderElement('columns', true)
#31 /home/stage/public_html/vendor/magento/framework/View/Layout.php(569): Magento\Framework\View\Layout\Interceptor->renderElement('columns')
#32 /home/stage/public_html/vendor/magento/framework/View/Layout.php(520): Magento\Framework\View\Layout->_renderContainer('main.content')
#33 /home/stage/public_html/var/generation/Magento/Framework/View/Layout/Interceptor.php(206): Magento\Framework\View\Layout->renderNonCachedElement('main.content')
#34 /home/stage/public_html/vendor/magento/framework/View/Layout.php(472): Magento\Framework\View\Layout\Interceptor->renderNonCachedElement('main.content')
#35 /home/stage/public_html/var/generation/Magento/Framework/View/Layout/Interceptor.php(193): Magento\Framework\View\Layout->renderElement('main.content', true)
#36 /home/stage/public_html/vendor/magento/framework/View/Layout.php(569): Magento\Framework\View\Layout\Interceptor->renderElement('main.content')
#37 /home/stage/public_html/vendor/magento/framework/View/Layout.php(520): Magento\Framework\View\Layout->_renderContainer('page.wrapper')
#38 /home/stage/public_html/var/generation/Magento/Framework/View/Layout/Interceptor.php(206): Magento\Framework\View\Layout->renderNonCachedElement('page.wrapper')
#39 /home/stage/public_html/vendor/magento/framework/View/Layout.php(472): Magento\Framework\View\Layout\Interceptor->renderNonCachedElement('page.wrapper')
#40 /home/stage/public_html/var/generation/Magento/Framework/View/Layout/Interceptor.php(193): Magento\Framework\View\Layout->renderElement('page.wrapper', true)
#41 /home/stage/public_html/vendor/magento/framework/View/Layout.php(569): Magento\Framework\View\Layout\Interceptor->renderElement('page.wrapper')
#42 /home/stage/public_html/vendor/magento/framework/View/Layout.php(520): Magento\Framework\View\Layout->_renderContainer('root')
#43 /home/stage/public_html/var/generation/Magento/Framework/View/Layout/Interceptor.php(206): Magento\Framework\View\Layout->renderNonCachedElement('root')
#44 /home/stage/public_html/vendor/magento/framework/View/Layout.php(472): Magento\Framework\View\Layout\Interceptor->renderNonCachedElement('root')
#45 /home/stage/public_html/var/generation/Magento/Framework/View/Layout/Interceptor.php(193): Magento\Framework\View\Layout->renderElement('root', true)
#46 /home/stage/public_html/vendor/magento/framework/View/Layout.php(938): Magento\Framework\View\Layout\Interceptor->renderElement('root')
#47 [internal function]: Magento\Framework\View\Layout->getOutput()
#48 /home/stage/public_html/vendor/magento/framework/Interception/Interceptor.php(144): call_user_func_array(Array, Array)
#49 /home/stage/public_html/var/generation/Magento/Framework/View/Layout/Interceptor.php(494): Magento\Framework\View\Layout\Interceptor->___callPlugins('getOutput', Array, Array)
#50 /home/stage/public_html/vendor/magento/framework/View/Result/Page.php(241): Magento\Framework\View\Layout\Interceptor->getOutput()
#51 /home/stage/public_html/vendor/magento/framework/View/Result/Layout.php(162): Magento\Framework\View\Result\Page->render(Object(Magento\Framework\App\Response\Http\Interceptor))
#52 [internal function]: Magento\Framework\View\Result\Layout->renderResult(Object(Magento\Framework\App\Response\Http\Interceptor))
#53 /home/stage/public_html/vendor/magento/framework/Interception/Interceptor.php(74): call_user_func_array(Array, Array)
#54 /home/stage/public_html/vendor/magento/framework/Interception/Chain/Chain.php(70): Magento\Framework\View\Result\Page\Interceptor->___callParent('renderResult', Array)
#55 /home/stage/public_html/vendor/magento/framework/Interception/Chain/Chain.php(63): Magento\Framework\Interception\Chain\Chain->invokeNext('Magento\\Framewo...', 'renderResult', Object(Magento\Framework\View\Result\Page\Interceptor), Array, 'result-varnish-...')
#56 /home/stage/public_html/vendor/magento/module-page-cache/Model/Controller/Result/VarnishPlugin.php(74): Magento\Framework\Interception\Chain\Chain->Magento\Framework\Interception\Chain\{closure}(Object(Magento\Framework\App\Response\Http\Interceptor))
#57 [internal function]: Magento\PageCache\Model\Controller\Result\VarnishPlugin->aroundRenderResult(Object(Magento\Framework\View\Result\Page\Interceptor), Object(Closure), Object(Magento\Framework\App\Response\Http\Interceptor))
#58 /home/stage/public_html/vendor/magento/framework/Interception/Chain/Chain.php(67): call_user_func_array(Array, Array)
#59 /home/stage/public_html/vendor/magento/framework/Interception/Interceptor.php(136): Magento\Framework\Interception\Chain\Chain->invokeNext('Magento\\Framewo...', 'renderResult', Object(Magento\Framework\View\Result\Page\Interceptor), Array, 'result-builtin-...')
#60 /home/stage/public_html/vendor/magento/module-page-cache/Model/Controller/Result/BuiltinPlugin.php(67): Magento\Framework\View\Result\Page\Interceptor->Magento\Framework\Interception\{closure}(Object(Magento\Framework\App\Response\Http\Interceptor))
#61 [internal function]: Magento\PageCache\Model\Controller\Result\BuiltinPlugin->aroundRenderResult(Object(Magento\Framework\View\Result\Page\Interceptor), Object(Closure), Object(Magento\Framework\App\Response\Http\Interceptor))
#62 /home/stage/public_html/vendor/magento/framework/Interception/Interceptor.php(140): call_user_func_array(Array, Array)
#63 /home/stage/public_html/var/generation/Magento/Framework/View/Result/Page/Interceptor.php(130): Magento\Framework\View\Result\Page\Interceptor->___callPlugins('renderResult', Array, Array)
#64 /home/stage/public_html/vendor/magento/framework/App/Http.php(119): Magento\Framework\View\Result\Page\Interceptor->renderResult(Object(Magento\Framework\App\Response\Http\Interceptor))
#65 /home/stage/public_html/vendor/magento/framework/App/Bootstrap.php(258): Magento\Framework\App\Http->launch()
#66 /home/stage/public_html/index.php(39): Magento\Framework\App\Bootstrap->run(Object(Magento\Framework\App\Http))
#67 {main}
I just tried to install the dev-master version. There is a problem with installing it on magento 2.1.2.
Magento 2.1 requires magento/module-framework 100.1.2 and the payone module requires 100.0.*
Same problem for the magento/module-store extension.
To make it installable with magento 2.1 via composer (if 2.1 is supported) you have to change the constraints in the composer.json
for example:
{
"name": "payone-gmbh/magento-2",
"description": "PAYONE FinanceGate payment gateway for all german online and offline payment methods including PayPal, all major Credit Cards and Maestro.",
"type": "magento2-module",
"version": "1.2.2",
"license": [
"OSL-3.0",
"AFL-3.0"
],
"require": {
"php": "~5.5.0|~5.6.0|~7.0.0",
"magento/framework": "^100.0.0",
"magento/module-store": "^100.0.0"
},
"autoload": {
"files": [
"registration.php"
],
"psr-4": {
"Payone\\Core\\": ""
}
}
}
the ^ constraint operator allows increasing the minor and bugfix version but not the major version
I found this piece of Code in Observer:
$oInvoice->setRequestedCaptureCase(Invoice::CAPTURE_OFFLINE);
-> this is fix in Observer\Transactionstatus\Paid.php!!
But if invoice is captured offline for advance_payment - I could not do creditmemo because invoiced status will not arrive in pmi. Set this to CAPTURE_ONLINE sends information to pmi an I can do a creditmemo, but I get message 907 - An error occured while processing this transaction (wrong parameters) when I try do make a creditmemo with less than the complete invoice items (i.e. creditmemo for 2 of three parts)
Schritte zur Reproduktion:
Aktuelles Verhalten:
Man kommt wieder auf die Shop-Seite, allerdings mit der Meldung der Warenkorb ist leer.
Erwartetes Verhalten:
Der Warenkorb enthält die Artikel, die ich zuvor hineingelegt habe.
When paying with advance payment, an invoice is created when the customer pays. Order is marked as fully paid and goes into processing however the payment is not really captured.
Is there a reason why it does not capture automatically? Maybe I am missing some configuration. Having to manually confirm hundreds of payments each day is not a very good solution.
If I want to do more than 1 creditmemo for an invoice I receive following error:
907 - An error occured while processing this transaction (wrong parameters).
When I want to create an order from admin I can select all available payment methods. But whichever I select there are no additional form elements displayed (bank country, iban, cc,...).
When I try to create a creditmemo for an order not paid by a Payone payment I get an Invalid Method exception.
1 exception(s): Exception #0 (Magento\Framework\Exception\LocalizedException): Invalid method Magento\OfflinePayments\Model\Banktransfer\Interceptor::needsSepaDataOnDebit
Magento version: 2.2
Module version: commit beb4103
Only stops working in Developer mode, in Production it just logs the error but the error is still there.
see:
Hi!
Low priority issue.
There is no default value given for xpath payone_general/global/request_type in etc/config.xml (no such node).
If you configure payone only for one website for instance (no global values in core_config_data) and take what you see for granted (the config source model shows a "preauthorization" default - see attached image) ... no request_type is sent and thus you end up with the API errormessage | Parameter {request} faulty or missing.
I suggest you either provide a default value in the config.xml or make the <source_model>Payone\Core\Model\Source\RequestType</source_model>
return an additional empty value to show the request_type config field is "required".
Wenn man im letzten Checkout-Schritt falsche Kreditkarten-Daten angibt, erscheint eine Fehlermeldung vom Payone-Server, z.B.:
Invalid card number. Please verify your card data.
Der Text kommt aus dem javascript des iFrames.
Gibt es die Möglichkeit, dass diese in deutscher Sprache erscheint?
Oder ist dies ein Bug?
Shouldn't be a big issue, but I haven't gotten around to test it yet. This is a reminder for me.
Preconditions
In the checkout, choosing creditcard and placing an order will not work. The fullscreen loader is started, one ajax request is made (to secure.pay1.de) but nothing else happens. There are no javascript errors.
The same works if the javascript is not merged/minified.
I had a quick look and my best guess is that it doesn't work because function processPayoneResponseCCHosted(response) is not accessible when merging/bundling is enabled.
This is the function that leads to the redirect being made and if I try to call this function in browsers console it does not exist in merged/bundled mode.
This function is defined here
Hi
is there a plan for doing migration from magento1 (1.9.3.2) and latest payone extension to magento 2.1.4?
I need information for mapping etc
Thanks
michael
with compose i got these problems:
payone-gmbh/magento-2 v1.3.1 requires magento/framework ^100.0.0 -> no matching package found.
because my magento/framework is version 100.1.4.... so i think in the payone composer.json file is the "require" not write correctly.
Current version does not support partial refunds. As far as I know it's just a matter of setting
$_canRefundInvoicePartial = true;
in the payment models.
(http://stackoverflow.com/questions/16862022/magento-partial-refund-issue)
Just tested with Paypal and works without issues. Any reasons this is not being set by default?
yesterday, we had the case, that a payment could not be completed because the mastercard was not registered for mastercard securecode (regarding to the error message of the cc provider).
after the payment failed, order confirmations have still been sent to the customer.
Magento 2.1.7
PHP 5.6
Then:
1 exception(s):
Exception #0 (Exception): Notice: unserialize(): Error at offset 0 of 751 bytes in /xxx/xxx/xxx/vendor/payone-gmbh/magento-2/Helper/Base.php on line 139
Exception #0 (Exception): Notice: unserialize(): Error at offset 0 of 751 bytes in /xxx/xxx/xxx/vendor/payone-gmbh/magento-2/Helper/Base.php on line 139
#0 [internal function]: Magento\Framework\App\ErrorHandler->handler(8, 'unserialize(): ...', '/xxx/xxx/xxx/...', 139, Array)
#1 /xxx/xxx/xxx/vendor/payone-gmbh/magento-2/Helper/Base.php(139): unserialize('{"Number_type":...')
This is the original function unserialize():
/**
* @param string $sValue
* @return mixed
*/
public function unserialize($sValue) {
if (version_compare($this->shopHelper->getMagentoVersion(), '2.2.0', '>=')) { // Magento 2.2.0 and above
return json_decode($sValue, true);
}
return unserialize($sValue);
}
The Problem i think is, you are expecting here that all Magento2 versions under 2.2.0 do not deal here with json objects. But the version i am using can not deal with the returned serialized version because it is expecting here a json object.
i updated the if condition
if (version_compare($this->shopHelper->getMagentoVersion(), '2.2.0', '>='))
to
(version_compare($this->shopHelper->getMagentoVersion(), '2.1.7', '>='))
and it is works.
I have to see now, if i will get another errors because of the wrong version or wrong returned data type after i configurated Payone.
I am waiting for your feedback.
Regards.
PAYONE merchant service told me that it is mandatory to add creditcard logos on the payment page. Instead of the merchant the extension itself should take care of this.
When an order with a payone payment method was placed and captured, the refund during creditmemo creation fails in specific cases.
Given:
$order->getAllItems() = [
0 => ['productId' => 1, 'sku' = 'abc_1', 'type' => 'configurable'],
1 => ['productId' => 1, 'sku' = 'abc_1', 'type' => 'simple'],
2 => ['productId' => 1, 'sku' = 'abc_2', 'type' => 'configurable'],
3 => ['productId' => 1, 'sku' = 'abc_2', 'type' => 'simple'],
4 => ['productId' => 2, 'sku' = 'def_1', 'type' => 'configurable'],
5 => ['productId' => 2, 'sku' = 'def_1', 'type' => 'simple'],
];
$aPositions = $creditmemo->getItems() = [
0 => ['orderItemId' => 11, 'productId' => 1, 'sku' = 'abc_1'],
];
Then the following code is executed for every order item (no dummy positions) and will create an invalid API call (\Payone\Core\Model\Api\Invoice::addProductItem
):
[...]
if ($aPositions !== false && array_key_exists($oItem->getProductId(), $aPositions) !== false) {
$dItemAmount = $aPositions[$oItem->getProductId()];
}
[...]
Order item 0
is included in parameters, because productId
of creditmemo item matches order items product id. That is correct, because sku
matches also.
Order item 2
is included in parameters, because productId
of creditmemo item matches order items product id. That is not correct, because sku
does not match.
Setup: Magento CE 2.1.4, module-version 1.3.2
Steps to reproduce:
Result: An error message is displayed '950 - An error occured while processing this transaction (wrong parameters).', no refund is created.
Expected result: A refund is created matching the amount of money entered (10 € in the example above).
Additional information: the above mentioned steps do work for Magento default refunding (by clicking 'Refund Offline' instead of 'Refund').
Hi,
during an online capture the order items are collected here in order to be sent to Payone: https://github.com/PAYONE-GmbH/magento-2/blob/master/Model/Api/Request/Capture.php getInvoiceList()
As you can see it expects request parameter, this means an online capture can only be done from the backend. There should be another solution so that you can create an online capture maybe on command line or in some other scope.
The only way now is to fake the request parameters, if possible.
Thanks :-)
As a best practice, we do not deploy the dev dependencies (including phpunit) to the production systems (composer install --no-dev).
Unfortunately, there is an error during compilation of the module when phpunit is not installed
Errors during compilation:
Payone\Core\Model\Test\PayoneObjectManager
Class PHPUnit\Framework\TestCase does not exist
I sometimes have to create a lot of orders by code. It became evident now, that quite a lot (several hundreds) requests were send where the company name in the autorization request was the name of a foregone request. This leads to payments being matched to wrong orders.
Except for the company name, all customer data always was correct. The afftectet requests have consequent order_ids and very close txids.
I searched my database but all my sales_order_address and quote_addresses were correct. Now I checked in the extension code and I found the function addAdress in AddressRequest (which is extended by AuthrizationRequest)
protected function addAddress($oAddress, $blIsShipping = false)
{
$sPre = '';
if ($blIsShipping === true) {
$sPre = 'shipping_'; // add shipping prefix for shipping addresses
}
$this->addParameter($sPre.'firstname', $oAddress->getFirstname());
$this->addParameter($sPre.'lastname', $oAddress->getLastname());
if ($oAddress->getCompany()) {// company name existing?
$this->addParameter($sPre.'company', $oAddress->getCompany());
}
$aStreet = $oAddress->getStreet();
$sStreet = is_array($aStreet) ? implode(' ', $aStreet) : $aStreet; // street may be an array
$this->addParameter($sPre.'street', trim($sStreet));
$this->addParameter($sPre.'zip', $oAddress->getPostcode());
$this->addParameter($sPre.'city', $oAddress->getCity());
$this->addParameter($sPre.'country', $oAddress->getCountryId());
if (CountryHelper::isStateNeeded($oAddress->getCountryId()) && $oAddress->getRegionCode()) {
$this->addParameter($sPre.'state', $this->customerHelper->getRegionCode($oAddress));
}
}
The company ist not reset when current address does not have one. Without diffing further inot this I assume this is the reason for the explained behavoiur.
Here are some example txid pairs
236124436,236124433
236124452,236124450
236124460,236124456
236124475,236124478
I have a lot more examples if you need them ;)
A similar behaviour occurs with bankdata. I found requests with clearingtype "rec" that carry the IBAN form the request before.
It can be that my code has the bug, but I create empty quotes with Magento\Quote\Api\CartManagement::createEMptyCart() and then add sales items and customer information. As I said, my tables show no sign of any informaton from the foregone requests. And that the only affected customer information is company just fits so very nicely with the code quoted above.
If you save a css string containing double quotes (e.g. font-family: "some font", ....") in cc_template -> Standard Style -> input (for Example), the value is saved correctly and also the css works in frontend.
The Problem is, when the configuration is loaded again in the Magento Backend, the quotes are not escaped correctly and the value of the input field is empty.
Saving the configuration will then empty the value in the database and the custom styling is gone.
Current workaround for us: use single quotes.
M2.1.7
Error messages for wrong card information are not translated - even if german translation exists.
After installation of the extension I get following error message on the frontend. The Backend is working.
Fatal error: Uncaught TypeError: Argument 1 passed to Magento\Customer\Model\AccountManagement::__construct() must be an instance of Magento\Customer\Model\CustomerFactory, instance of Magento\Framework\ObjectManager\ObjectManager given, called in /var/www/viktoriamed/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php on line 93 and defined in /var/www/viktoriamed/vendor/magento/module-customer/Model/AccountManagement.php:316 Stack trace: #0 /var/www/viktoriamed/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php(93): Magento\Customer\Model\AccountManagement->__construct(Object(Magento\Framework\ObjectManager\ObjectManager)) #1 /var/www/viktoriamed/vendor/magento/framework/ObjectManager/Factory/Compiled.php(88): Magento\Framework\ObjectManager\Factory\AbstractFactory->createObject('LitExtension\Cu...', Array) #2 /var/www/viktoriamed/vendor/magento/framework/ObjectManager/Factory/Compiled.php(130): Magento\Framework\ObjectManager\Factory\Compiled->create('LitExtension\Cu...') #3 /var/www/vi in /var/www/viktoriamed/vendor/magento/module-customer/Model/AccountManagement.php on line 316
Steps to reproduce:
Expected result:
Actual result:
Method "authorize" captures the invoice and by default Magento creates the invoice paid (due to US workflow where an invoice is generated AFTER payment). But for me this is to be rather unexpected, I use PAYONE to tell me whether and if an invoice is paid and I believe this is the usecae for most German PAYONE users.
I already have an email conversation with PAYONE technical support about this issue, but they told me that they cannot reproduce. Which is strange to me since I can reproduce this in two installitons, one of them being a FRESH one.
Could you plese verify if this is expeted behaviour? Or is there anything I am missing here?
In the Last Tag is the Module Version not correct set see:
Line 28 in def5621
We tried replacing an existing extension by a third-party developer by this official one and encountered a problem with the agreements when placing the order.
It doesn't matter if the boxes are checked or not, as (using this extension and a payment method provided by it) the data about them being checked is not transmitted anymore (see payload on request to V1/cart/mine/payment-information, "extension_attributes" are nowhere to be found, even though this is a core Magento functionality).
I assume this is a bug, as the extension seems to be relatively new and untested. Please get back to me about the state of the issue and if/when we can expect a solution. For mail, please use behr [ät] basecom [DE]
Zusammenfassung:
Problem bei Kreditkartenzahlung: Bestellung wird abgeschickt, obwohl kein Vor- und/oder Nachname in den Kreditkarte angegeben ist.
Details zur Reproduktion:
Aktuelles Verhalten
Erwartetes Verhalten:
Mögliche Ursache
In der js-Datei credidcard-method.js wird zuerst die Funktion validate aufgerufen.
Das führt dazu, dass die Fehlermeldung "Bitte Vornamen angeben" erscheint.
Gleichzeitig wird aber über das iFrame ein ajax-call zu secure.pay1.de durchgeführt. In den Script (payone_hosted_min.js) wird dann wiederum in die Funktion
processPayoneResponseCCHosted(response)
(wieder in der Datei credidcard-method.js)
aufgerufen.
Obwohl die vorige Validierung (validate: function
) vorher fehlgeschlagen ist, ist die response von Payone positiv:
In Zeile: 156: if (response.status === "VALID") { ...}
=> true
ist dieses Verhalten im Testmodus normal?
Trotzdem die Frage: Wieso führt man nicht in der Funktion processPayoneResponseCCHosted nochmal eine Validierung durch, um diesen Fall zu vermeiden.
z.B.:
function processPayoneResponseCCHosted(response)
{
if (window.ccjs.firstname() != "" && window.ccjs.lastname() != "") {
window.ccjs.processPayoneResponseCCHosted(response);
}
}
The latest release is from 18th of May, since then many bugfixes have been comitted but no release has been created. Can you please create a release with the increase of the minor number for that?
Otherwise I have to clone the repository which I don't want :-) Would be great :-)
Hi...
we would like to use the extension in a Mage 2 EE project with database clustering like described here.
http://devdocs.magento.com/guides/v2.0/config-guide/multi-master/multi-master.html
Is the extension ready for working in both modes ("single" db and clustered db)?
Regards
Hello,
We have updated magneto version 2.1.7 and have latest module from payone. 1.3.4. but when we try to place order using the test mode. its saying that. "Bei der Bearbeitung dieser Transaktion ist ein Fehler aufgetreten (Falsche Parameter)."
Please help us in that
Thank you.
With the "new" invoice handling an invoice is created and paid when payment occurs. However, if the merchant creates an invoice before the order is paid (my customer wants to create and send the invoice immediately after order generation, including payment method invoice ) the status updates creates a second invoice with a grand total of 0 and pays that.
It would be better if the status update would detect an existing invoice for that order and pay that.
I'll attach a pull request in a minute.
We get on setup:di:compile in the developer mode following error message:
Repositories code generation... 1/7 [====>-----------------------] 14%
1 sec 77.8 MiBPHP Fatal error: Cannot use Magento\Framework\Controller\Result\Redirect as Redirect because the name is already in use in /xxx/vendor/payone-gmbh/magento-2/Controller/Onepage/Cancel.php on line 30
Magento 2.1.2 + sample data + payone module (dev-master)
In the payment step of the checkout I get a js error:
payone_iframe_min.js:8 Uncaught TypeError: Cannot read property 'hasOwnProperty' of null(…)
Still making an order (tested cc and paypal) seems to work, but this could break other js functionalities on the site
The module calls database table names without adding the needed prefix, which leads to exception errors.
Next Zend_Db_Statement_Exception: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'webuser_copy.sales_order' doesn't exist, query was: SELECT
*
FROM
sales_order
WHERE
entity_id = :entity_id in /home/webuser/public_html/vendor/magento/zendframework1/library/Zend/Db/Statement/Pdo.php:235
Stack trace:
#0 /home/webuser/public_html/vendor/magento/framework/DB/Statement/Pdo/Mysql.php(95): Zend_Db_Statement_Pdo->_execute(Array)
#1 /home/webuser/public_html/vendor/magento/zendframework1/library/Zend/Db/Statement.php(303): Magento\Framework\DB\Statement\Pdo\Mysql->_execute(Array)
#2 /home/webuser/public_html/vendor/magento/zendframework1/library/Zend/Db/Adapter/Abstract.php(480): Zend_Db_Statement->execute(Array)
#3 /home/webuser/public_html/vendor/magento/zendframework1/library/Zend/Db/Adapter/Pdo/Abstract.php(238): Zend_Db_Adapter_Abstract->query(' SELECT\n ...', Array)
#4 /home/webuser/public_html/vendor/magento/framework/DB/Adapter/Pdo/Mysql.php(444): Zend_Db_Adapter_Pdo_Abstract->query(' SELECT\n ...', Array)
#5 /home/webuser/public_html/vendor/magento/framework/DB/Adapter/Pdo/Mysql.php(499): Magento\Framework\DB\Adapter\Pdo\Mysql->_query(' SELECT\n ...', Array)
#6 /home/webuser/public_html/vendor/magento/zendframework1/library/Zend/Db/Adapter/Abstract.php(756): Magento\Framework\DB\Adapter\Pdo\Mysql->query(' SELECT\n ...', Array)
#7 /home/webuser/public_html/app/code/Payone/Core/Helper/Database.php(145): Zend_Db_Adapter_Abstract->fetchRow(' SELECT\n ...', Array)
#8 /home/webuser/public_html/app/code/Payone/Core/Model/UiComponent/DataProvider.php(96): Payone\Core\Helper\Database->getIncrementIdByOrderId('132')
#9 /home/webuser/public_html/vendor/magento/framework/View/Element/UiComponent/DataProvider/DataProvider.php(108): Payone\Core\Model\UiComponent\DataProvider->prepareUpdateUrl()
#10 /home/webuser/public_html/app/code/Payone/Core/Model/UiComponent/DataProvider.php(74): Magento\Framework\View\Element\UiComponent\DataProvider\DataProvider->__construct('payone_protocol...', 'id', 'order_id', Object(Magento\Framework\View\Element\UiComponent\DataProvider\Reporting), Object(Magento\Framework\Api\Search\SearchCriteriaBuilder), Object(Magento\Framework\App\Request\Http), Object(Magento\Framework\Api\FilterBuilder), Array, Array)
#11 /home/webuser/public_html/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php(118): Payone\Core\Model\UiComponent\DataProvider->__construct('payone_protocol...', 'id', 'order_id', Object(Magento\Framework\View\Element\UiComponent\DataProvider\Reporting), Object(Magento\Framework\Api\Search\SearchCriteriaBuilder), Object(Magento\Framework\App\Request\Http), Object(Magento\Framework\Api\FilterBuilder), Object(Payone\Core\Helper\Database), Array, Array)
#12 /home/webuser/public_html/vendor/magento/framework/ObjectManager/Factory/Dynamic/Developer.php(89): Magento\Framework\ObjectManager\Factory\AbstractFactory->createObject('Payone\\Core\\Mod...', Array)
#13 /home/webuser/public_html/vendor/magento/framework/ObjectManager/ObjectManager.php(57): Magento\Framework\ObjectManager\Factory\Dynamic\Developer->create('Payone\\Core\\Mod...', Array)
#14 /home/webuser/public_html/vendor/magento/framework/View/Element/UiComponent/Argument/Interpreter/ConfigurableObject.php(60): Magento\Framework\ObjectManager\ObjectManager->create('Payone\\Core\\Mod...', Array)
#15 /home/webuser/public_html/var/generation/Magento/Framework/Data/Argument/InterpreterInterface/Proxy.php(95): Magento\Framework\View\Element\UiComponent\Argument\Interpreter\ConfigurableObject->evaluate(Array)
#16 /home/webuser/public_html/vendor/magento/framework/Data/Argument/Interpreter/Composite.php(61): Magento\Framework\Data\Argument\InterpreterInterface\Proxy->evaluate(Array)
#17 /home/webuser/public_html/vendor/magento/module-ui/Model/Manager.php(191): Magento\Framework\Data\Argument\Interpreter\Composite->evaluate(Array)
#18 /home/webuser/public_html/vendor/magento/module-ui/Model/Manager.php(194): Magento\Ui\Model\Manager->evaluateComponentArguments(Array)
#19 /home/webuser/public_html/vendor/magento/module-ui/Model/Manager.php(175): Magento\Ui\Model\Manager->evaluateComponentArguments(Array)
#20 /home/webuser/public_html/vendor/magento/framework/View/Element/UiComponentFactory.php(139): Magento\Ui\Model\Manager->prepareData('payone_sales_or...')
#21 /home/webuser/public_html/vendor/magento/framework/View/Layout/Generator/UiComponent.php(124): Magento\Framework\View\Element\UiComponentFactory->create('payone_sales_or...', NULL, Array)
#22 /home/webuser/public_html/vendor/magento/framework/View/Layout/Generator/UiComponent.php(93): Magento\Framework\View\Layout\Generator\UiComponent->generateComponent(Object(Magento\Framework\View\Layout\Data\Structure), 'payone_sales_or...', Array, Object(Magento\Framework\View\Layout\Interceptor))
#23 /home/webuser/public_html/vendor/magento/framework/View/Layout/GeneratorPool.php(86): Magento\Framework\View\Layout\Generator\UiComponent->process(Object(Magento\Framework\View\Layout\Reader\Context), Object(Magento\Framework\View\Layout\Generator\Context))
#24 /home/webuser/public_html/vendor/magento/framework/View/Layout.php(327): Magento\Framework\View\Layout\GeneratorPool->process(Object(Magento\Framework\View\Layout\Reader\Context), Object(Magento\Framework\View\Layout\Generator\Context))
#25 /home/webuser/public_html/var/generation/Magento/Framework/View/Layout/Interceptor.php(89): Magento\Framework\View\Layout->generateElements()
#26 /home/webuser/public_html/vendor/magento/framework/View/Layout/Builder.php(129): Magento\Framework\View\Layout\Interceptor->generateElements()
#27 /home/webuser/public_html/vendor/magento/framework/View/Page/Builder.php(55): Magento\Framework\View\Layout\Builder->generateLayoutBlocks()
#28 /home/webuser/public_html/vendor/magento/framework/View/Layout/Builder.php(65): Magento\Framework\View\Page\Builder->generateLayoutBlocks()
#29 /home/webuser/public_html/vendor/magento/framework/View/Layout.php(244): Magento\Framework\View\Layout\Builder->build()
#30 /home/webuser/public_html/vendor/magento/framework/View/Layout.php(859): Magento\Framework\View\Layout->build()
#31 /home/webuser/public_html/var/generation/Magento/Framework/View/Layout/Interceptor.php(414): Magento\Framework\View\Layout->getBlock('menu')
#32 /home/webuser/public_html/vendor/magento/module-backend/Model/View/Result/Page.php(59): Magento\Framework\View\Layout\Interceptor->getBlock('menu')
#33 /home/webuser/public_html/var/generation/Magento/Backend/Model/View/Result/Page/Interceptor.php(24): Magento\Backend\Model\View\Result\Page->setActiveMenu('Magento_Sales::...')
#34 /home/webuser/public_html/vendor/magento/module-sales/Controller/Adminhtml/Order.php(133): Magento\Backend\Model\View\Result\Page\Interceptor->setActiveMenu('Magento_Sales::...')
#35 /home/webuser/public_html/vendor/magento/module-sales/Controller/Adminhtml/Order/View.php(23): Magento\Sales\Controller\Adminhtml\Order->_initAction()
#36 /home/webuser/public_html/var/generation/Magento/Sales/Controller/Adminhtml/Order/View/Interceptor.php(24): Magento\Sales\Controller\Adminhtml\Order\View->execute()
#37 /home/webuser/public_html/vendor/magento/framework/App/Action/Action.php(102): Magento\Sales\Controller\Adminhtml\Order\View\Interceptor->execute()
#38 /home/webuser/public_html/vendor/magento/module-backend/App/AbstractAction.php(226): Magento\Framework\App\Action\Action->dispatch(Object(Magento\Framework\App\Request\Http))
#39 [internal function]: Magento\Backend\App\AbstractAction->dispatch(Object(Magento\Framework\App\Request\Http))
#40 /home/webuser/public_html/vendor/magento/framework/Interception/Interceptor.php(74): call_user_func_array(Array, Array)
#41 /home/webuser/public_html/vendor/magento/framework/Interception/Chain/Chain.php(70): Magento\Sales\Controller\Adminhtml\Order\View\Interceptor->___callParent('dispatch', Array)
#42 /home/webuser/public_html/vendor/magento/framework/Interception/Chain/Chain.php(63): Magento\Framework\Interception\Chain\Chain->invokeNext('Magento\\Sales\\C...', 'dispatch', Object(Magento\Sales\Controller\Adminhtml\Order\View\Interceptor), Array, 'adminAuthentica...')
#43 /home/webuser/public_html/vendor/magento/module-backend/App/Action/Plugin/Authentication.php(143): Magento\Framework\Interception\Chain\Chain->Magento\Framework\Interception\Chain\{closure}(Object(Magento\Framework\App\Request\Http))
#44 [internal function]: Magento\Backend\App\Action\Plugin\Authentication->aroundDispatch(Object(Magento\Sales\Controller\Adminhtml\Order\View\Interceptor), Object(Closure), Object(Magento\Framework\App\Request\Http))
#45 /home/webuser/public_html/vendor/magento/framework/Interception/Chain/Chain.php(67): call_user_func_array(Array, Array)
#46 /home/webuser/public_html/vendor/magento/framework/Interception/Chain/Chain.php(63): Magento\Framework\Interception\Chain\Chain->invokeNext('Magento\\Sales\\C...', 'dispatch', Object(Magento\Sales\Controller\Adminhtml\Order\View\Interceptor), Array, 'designLoader')
#47 /home/webuser/public_html/vendor/magento/framework/App/Action/Plugin/Design.php(39): Magento\Framework\Interception\Chain\Chain->Magento\Framework\Interception\Chain\{closure}(Object(Magento\Framework\App\Request\Http))
#48 [internal function]: Magento\Framework\App\Action\Plugin\Design->aroundDispatch(Object(Magento\Sales\Controller\Adminhtml\Order\View\Interceptor), Object(Closure), Object(Magento\Framework\App\Request\Http))
#49 /home/webuser/public_html/vendor/magento/framework/Interception/Chain/Chain.php(67): call_user_func_array(Array, Array)
#50 /home/webuser/public_html/vendor/magento/framework/Interception/Interceptor.php(136): Magento\Framework\Interception\Chain\Chain->invokeNext('Magento\\Sales\\C...', 'dispatch', Object(Magento\Sales\Controller\Adminhtml\Order\View\Interceptor), Array, 'adminMassaction...')
#51 /home/webuser/public_html/vendor/magento/module-backend/App/Action/Plugin/MassactionKey.php(33): Magento\Sales\Controller\Adminhtml\Order\View\Interceptor->Magento\Framework\Interception\{closure}(Object(Magento\Framework\App\Request\Http))
#52 [internal function]: Magento\Backend\App\Action\Plugin\MassactionKey->aroundDispatch(Object(Magento\Sales\Controller\Adminhtml\Order\View\Interceptor), Object(Closure), Object(Magento\Framework\App\Request\Http))
#53 /home/webuser/public_html/vendor/magento/framework/Interception/Interceptor.php(140): call_user_func_array(Array, Array)
#54 /home/webuser/public_html/var/generation/Magento/Sales/Controller/Adminhtml/Order/View/Interceptor.php(39): Magento\Sales\Controller\Adminhtml\Order\View\Interceptor->___callPlugins('dispatch', Array, Array)
#55 /home/webuser/public_html/vendor/magento/framework/App/FrontController.php(55): Magento\Sales\Controller\Adminhtml\Order\View\Interceptor->dispatch(Object(Magento\Framework\App\Request\Http))
#56 [internal function]: Magento\Framework\App\FrontController->dispatch(Object(Magento\Framework\App\Request\Http))
#57 /home/webuser/public_html/vendor/magento/framework/Interception/Interceptor.php(74): call_user_func_array(Array, Array)
#58 /home/webuser/public_html/vendor/magento/framework/Interception/Chain/Chain.php(70): Magento\Framework\App\FrontController\Interceptor->___callParent('dispatch', Array)
#59 /home/webuser/public_html/vendor/magento/framework/Interception/Interceptor.php(136): Magento\Framework\Interception\Chain\Chain->invokeNext('Magento\\Framewo...', 'dispatch', Object(Magento\Framework\App\FrontController\Interceptor), Array, 'install')
#60 /home/webuser/public_html/vendor/magento/framework/Module/Plugin/DbStatusValidator.php(69): Magento\Framework\App\FrontController\Interceptor->Magento\Framework\Interception\{closure}(Object(Magento\Framework\App\Request\Http))
#61 [internal function]: Magento\Framework\Module\Plugin\DbStatusValidator->aroundDispatch(Object(Magento\Framework\App\FrontController\Interceptor), Object(Closure), Object(Magento\Framework\App\Request\Http))
#62 /home/webuser/public_html/vendor/magento/framework/Interception/Interceptor.php(140): call_user_func_array(Array, Array)
#63 /home/webuser/public_html/var/generation/Magento/Framework/App/FrontController/Interceptor.php(26): Magento\Framework\App\FrontController\Interceptor->___callPlugins('dispatch', Array, Array)
#64 /home/webuser/public_html/vendor/magento/framework/App/Http.php(115): Magento\Framework\App\FrontController\Interceptor->dispatch(Object(Magento\Framework\App\Request\Http))
#65 /home/webuser/public_html/vendor/magento/framework/App/Bootstrap.php(258): Magento\Framework\App\Http->launch()
#66 /home/webuser/public_html/index.php(39): Magento\Framework\App\Bootstrap->run(Object(Magento\Framework\App\Http))
#67 {main} [] []
In file app/code/Payone/Core/Helper/Database.php
are the functions located at:
/**
* Get increment_id from order by given order id
*
* @param string $sOrderId
* @return string|bool
*/
public function getIncrementIdByOrderId($sOrderId)
{
$oDb = $this->getDb();
$sQuery = " SELECT
*
FROM
".$oDb->getTableName('sales_order')."
WHERE
entity_id = :entity_id";
$aResult = $oDb->fetchRow($sQuery, ['entity_id' => $sOrderId]);
if ($aResult) {
return $aResult['increment_id'];
}
return false;
}
Seems like something is missing here. If I try to modify the calling database table to cc_sales_order
(cc_
is our prefix) it works perfectly nice. Seems this function just don't get the prefix, other functions doesn't seem to have problems... Very weird. Maybe re-initiate the prefix request or get it directly from env.php
? Just an idea...
we currently have an issue, that we cannot checkout with a product bundle on the live system (it seemed to work in test mode before)
After talking to the technical support, it seems like all child product sku's are concatenated with the bundle sku itself
Are there any release plans for this? I would like to get a shop running until mid november including a payone integration. Since magento 2 has been release for almost one year now, i wondered why such an important payment extension is still missing?
The sequnce number is stored only in table "payone_protocol_transactionstatus". When an API request occurs this number is fetched and incremented for that request only. The incremented sequence number is not saved. Making two consecutive api requests fails because the second tries to use the same sequence number.
Example:
Hello
We want to use your extension on Magento2 EE edition and wanted to use default Database Split feature of Magento EE. But unfortunately your extension is not compatible with it. May we expect that will will be fixed in future versions?
Thanks a lot
In the credit card payment I noticed the following: In the IFrame heavy credit card errors are displayed before sending. However, e.g. enter an incorrect valid-to date or refuse payment for other reasons after exiting the I-frame, then the return goes to /checkout/
However, Magento's new one-page checkout consists of two parts, 1. the shipping address, 2. the payment method. The payment method is reached in Magento's Checkout via the "Next" button to the URL /checkout/#payment. This would be the correct jumpback URL.
Even worse is that no error message or error is issued after jumpback. There is a return to the /checkout without any indication that an error has occurred in the credit card payment.
This also happens when you pay with 3-D Secure, if you put the "Cancel" button on secure page, but also with other errors, which occur only on the secure side.
In my opinion, this is a bug of the extension, there should be at least one hint "An error occurred while the payment was made" or "Bad payment data were specified" with a return to the /checkout/#payment (with an open I frame) and usually red-marked fields.
Maybe I am wrong and have only configured incorrect, but I have searched everything. Or is there another way to achieve a correct error recovery? Otherwise this should be implemented urgently.
Magento 2.1.7 with Payone Extension 1.3.5
Greetings,
Stefan
In the latest release, the Payone\Core\Model\WebApi\Addresscheck was added as a webservice class.
It does not follow the magento2 best practices for creating a new service in the service layer and fails an internal check which leads to an exception (in our case, when calling the getOrderList SOAP Call)
main.CRITICAL: InvalidArgumentException: The service interface name "Payone\Core\Model\WebApi\Addresscheck" is invalid. in /var/www/share/stage.ballon24.de/project/releases/20170206141358/vendor/magento/module-webapi/Model/ServiceMetadata.php:227
I assume, this breaks all SOAP API calls (maybe also REST) since the exception is thrown during the WSDL generation.
If you create order with authorization method "pre-autorization" and payment method "invoice" the amount is not yet captured.
To tell PAYONE to capture the amount I have to invoice and capture online. But that marks my invoice and order immeditely as paid, although no payment has yet occurred.
Can you reproduce the problem? Or do I have a problem in my workflow?
I solved this with interceptor for \Magento\Sales\Model\Order\Invoice::pay().
public function aroundPay(\Magento\Sales\Model\Order\Invoice $invoice, callable $proceed)
{
$order = $invoice->getOrder();
// capture online with PAYONE pre-authorization should not immediately mark the invoice as paid
// paying the invoice (invoice->setForcePay(true)) should
if ($order->getPayment()->getMethod() == 'payone_invoice'
&& $order->getPayoneAuthmode() === 'preauthorization'
&& !$invoice->getForcePay()
) {
return $invoice;
}
return $proceed();
}
Now in the transaction status paid-event one must call $invoice->setForcePay(true)->pay();
Please let me know if this solution is on interest to you then I'll attach a PR.
Hello @fjbender
I have checked both closed issues.
#22
#75
You do not need to do any significant changes to make your extension supports Magento EE.
These are basic rules for supporting EE.
http://devdocs.magento.com/guides/v2.1/config-guide/multi-master/multi-master.html#config-ee-multidb-opts
You need to overwrite code where you use SQL to Magento model(PDO) style:
The bad code style examples preventing to use DB spliting:
https://github.com/PAYONE-GmbH/magento-2/blob/master/Helper/Database.php#L132
https://github.com/PAYONE-GmbH/magento-2/blob/master/Helper/Database.php#L219
The current version is not Magento 2.2 compatible.
Hi there,
we had an address validation error (which is correct as the address was not correct) but the response from Payone lead to a PHP notice in the module.
In https://github.com/PAYONE-GmbH/magento-2/blob/master/Model/Api/Request/Consumerscore.php#L118 it is expected that the response has the score
field, but in a case of a wrong address the response looks like:
[04-Jul-2017 07:29:34 UTC] array (
'status' => 'INVALID',
'errorcode' => '4041',
'secstatus' => '30',
'errormessage' => 'Address not found',
'customermessage' => 'Address not found. Please verify your data.',
)
That is the reasons why line 118 throws a notice and nothing happens in the frontend (no message).
Thanks for your help :-)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.