Giter Site home page Giter Site logo

worldpay-magento2-cg's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

worldpay-magento2-cg's Issues

Magento 2.4.1 -> sapient/module-worldpay version 2.3.5-p1220 (Trying to find array offset of null).

Magento version : 2.4.1.
sapient/module-worldpay version : 2.3.5-p1220.

Please review the below error occurred while loading the checkout-payment page.

Stack trace :
[2021-05-13 10:56:06] main.CRITICAL: Report ID: webapi-609d05c686567; Message: Notice: Trying to access array offset on value of type null in /var/www/html/magentoTest/vendor/sapient/module-worldpay/Helper/Data.php on line 97 {"exception":"[object] (Exception(code: 0): Report ID: webapi-609d05c686567; Message: Notice: Trying to access array offset on value of type null in /var/www/html/magentoTest/vendor/sapient/module-worldpay/Helper/Data.php on line 97 at /var/www/html/magentoTest/vendor/magento/framework/Webapi/ErrorProcessor.php:208, Exception(code: 0): Notice: Trying to access array offset on value of type null in /var/www/html/magentoTest/vendor/sapient/module-worldpay/Helper/Data.php on line 97 at /var/www/html/magentoTest/vendor/magento/framework/App/ErrorHandler.php:61)"} []

Thank you and please let me know if you have any queries and provide solution to the same.
Best Regards.

Magento 2.4.4 with PHP8.1. Sapient_Worldpay is not working

Hi,

We are getting the below errors with the Sapient_Worldpay extension when we upgraded Magento to 2.4.4. Please assist us to fix it.

  1. 1/9 [===>------------------------] 11% 5 secs 170.0 Misyntax error, unexpected fully qualified name "\Payment\State"#0 D:\wamp3.2.6\www\alexandra-code\vendor\composer\ClassLoader.php(428): Composer\Autoload\includeFile('D:\wamp3.2.6\ww
    ...')
    #1 [internal function]: Composer\Autoload\ClassLoader->loadClass('Sapient\Worldpa...')

2.Fatal error: Declaration of Sapient\Worldpay\Logger\WorldpayLogger::addRecord($level, $message, array $context = []) must be compatible with
Monolog\Logger::addRecord(int $level, string $message, array $context = []): bool in D:\wamp3.2.6\www\alexandra-code\vendor\sapien
t\module-worldpay\Logger\WorldpayLogger.php on line 9

  1. Laminas\Code\Reflection\ClassReflection Object
    (
    [name] => Sapient\Worldpay\Api\PaymentTypeInterface
    [docBlock:protected] =>
    )
    Type Error occurred when creating object: Magento\Framework\Communication\Config\Data,
    Magento\Framework\Reflection\TypeProcessor::resolveFullyQualifiedClassName(): Argument #2 ($typeName) must be of type string, null given, called in D:\wamp3.2.6\www\alexandra-code\vend
    or\magento\framework\Reflection\TypeProcessor.php on line 550

In AbstractFactory.php line 131:

Type Error occurred when creating object: Magento\Framework\Communication\Config\Data,
Magento\Framework\Reflection\TypeProcessor::resolveFullyQualifiedClassName(): Argument #2 ($typeName) must be of type string, null given, called in D:\wamp3.2.6\www\alexandra-code
\vendor\magento\framework\Reflection\TypeProcessor.php on line 550

Many thanks!
Sanju

3DS2 request fail

Magento ver. 2.4.1
Browser: Chrome Version 106.0.5249.91
sapient/module-worldpay: 2.4.1-rc1220

When I complete the 3DS2 check correctly the Worldpay plugin redirects me back to the website but we could not complete the order.

While checking the logs request XML data was sent properly and got the response for that, Also notice that the extension retrieve the payment many time for completing the request but it gives the following error in response.

After 3DS2 Reqeust

Retrive pament request

According to the flow, it should redirect post-checkout page where it redirects to thank you page. It should also display the order number in the backend with the status set as SENT_FOR_AUTHORISATION.

This extension worked properly earlier, but the issue occurred last two months since we didn't update the code or configuration. We have logs for successful orders as well.

Please if you can help us to resolve this issue as soon as possible, we have connected with the WorldPay team and provided all logs and files. Reference # 221103-000144

Regards,
Azharuddin Shaikh

Installation clears composer autoload

Hi there,

I've been trying to install the module a couple of different ways without much luck:

add repo to composer.json and running composer require sapient/module-worldpay which does download the necessary files into /vendor/ but on enabling it empties my /composer/autoload_static.php file which breaks the entire site as the classes are no longer there.

copy the module folder into /app/code/sapient and enabling that way.
this did show in the magento module manager however on installation i got the following error:

Column not found: 1054 Unknown column 'risk_provider_final' in 'worldpay_payment' which i know was mentioned on #6

Im not sure if theres supposed be a specific way im meant to be installing this as standard methods dont seem to be working?

FYI i'm trying to install on Magento 2.2.3

Thanks!

Cannot localise checkout dropdown

We are unable to translate the default values in the dropdown menus as they are hard-coded into the templates. Can they eventually be made into templates that will allow localisation changes?

E.g: "Select Your Credit Card"

Stored Credentials

Wordplay have released the details of the new required Stored Credentials integration for Visa and Mastercard token payments, and Mechant Initiated Transactions for both card and Pay As Order,

are you going to release an update to incorporate the new requirements, the deadline from Worldpay is 30th Apr 2019 !!

Order Code

Whats the use of appending time() along with reserved order id for order code, can anyone make clear of developing team can clear it. As per my requirement I need to customise on it adding some random number collecting from user.

private function _generateOrderCode($quote)
{
return $quote->getReservedOrderId() . '-' . time();
}

Saved Cards Count Lookup

The following method to lookup a customer's saved cards count is broken.

https://github.com/Worldpay/Worldpay-Magento2-CG/blob/master/Helper/Data.php#L987

This is due to the DateInterval not being subtracted from the current date properly leading to the following error:

SQLSTATE[HY000]: General error: 1525 Incorrect TIMESTAMP value: 'Y-m-d H:i:s', query was: SELECT main_table.id, main_table.id FROM worldpay_token AS main_table WHERE (customer_id = 1) AND (created_at <= '2020-09-23 10:21:43') AND (created_at >= 'Y-m-d H:i:s')

Fix is the following:

$now = new \DateTime();
$lastDay = $now->sub(new \DateInterval(sprintf('P%dD', 1)));

Magento 2.2.x

Is the module compatible with M2.2? I appreciate you say M2.1.8+, but there's been some significant changes in M2.2 that has been causing some issues with previously M2.1 compatible extensions.

Unable to unserialize value. Error: Syntax error Sapient\\Worldpay\\Helper\\Recurring->getAdminLabels()

Every time we try to edit a product in the backend, we are getting an exception.

How to reproduce:

  • Login as Admin user.
  • Go to edit any product in Catalog->Products

Environment:
Magento 2.4.3-p1
Saptient Worldpay 2.4.3-rc1221

Full Report:
{"0":"Unable to unserialize value. Error: Syntax error","1":"#1 Sapient\Worldpay\Helper\Recurring->getAdminLabels() called at [vendor/sapient/module-worldpay/Ui/DataProvider/Product/Form/Modifier/RecurringPlans.php:106]\n#2 Sapient\Worldpay\Ui\DataProvider\Product\Form\Modifier\RecurringPlans->modifyMeta() called at [vendor/magento/module-catalog/Ui/DataProvider/Product/Form/ProductDataProvider.php:73]\n#3 Magento\Catalog\Ui\DataProvider\Product\Form\ProductDataProvider->getMeta() called at [vendor/magento/framework/View/Element/UiComponentFactory.php:330]\n#4 Magento\Framework\View\Element\UiComponentFactory->mergeMetadata() called at [vendor/magento/framework/View/Element/UiComponentFactory.php:231]\n#5 Magento\Framework\View\Element\UiComponentFactory->create() called at [vendor/magento/framework/View/Layout/Generator/UiComponent.php:140]\n#6 Magento\Framework\View\Layout\Generator\UiComponent->generateComponent() called at [vendor/magento/framework/View/Layout/Generator/UiComponent.php:103]\n#7 Magento\Framework\View\Layout\Generator\UiComponent->process() called at [vendor/magento/framework/View/Layout/GeneratorPool.php:93]\n#8 Magento\Framework\View\Layout\GeneratorPool->process() called at [vendor/magento/framework/View/Layout.php:365]\n#9 Magento\Framework\View\Layout->generateElements() called at [generated/code/Magento/Framework/View/Layout/Interceptor.php:68]\n#10 Magento\Framework\View\Layout\Interceptor->generateElements() called at [vendor/magento/framework/View/Layout/Builder.php:129]\n#11 Magento\Framework\View\Layout\Builder->generateLayoutBlocks() called at [vendor/magento/framework/View/Page/Builder.php:65]\n#12 Magento\Framework\View\Page\Builder->generateLayoutBlocks() called at [vendor/magento/framework/View/Layout/Builder.php:65]\n#13 Magento\Framework\View\Layout\Builder->build() called at [vendor/magento/framework/View/Layout.php:271]\n#14 Magento\Framework\View\Layout->build() called at [vendor/magento/framework/View/Layout.php:896]\n#15 Magento\Framework\View\Layout->getBlock() called at [generated/code/Magento/Framework/View/Layout/Interceptor.php:293]\n#16 Magento\Framework\View\Layout\Interceptor->getBlock() called at [vendor/magento/module-backend/Model/View/Result/Page.php:26]\n#17 Magento\Backend\Model\View\Result\Page->setActiveMenu() called at [vendor/magento/module-catalog/Controller/Adminhtml/Product/Edit.php:82]\n#18 Magento\Catalog\Controller\Adminhtml\Product\Edit->execute() called at [vendor/magento/framework/Interception/Interceptor.php:58]\n#19 Magento\Catalog\Controller\Adminhtml\Product\Edit\Interceptor->___callParent() called at [vendor/magento/framework/Interception/Interceptor.php:138]\n#20 Magento\Catalog\Controller\Adminhtml\Product\Edit\Interceptor->Magento\Framework\Interception\{closure}() called at [vendor/magento/framework/Interception/Interceptor.php:153]\n#21 Magento\Catalog\Controller\Adminhtml\Product\Edit\Interceptor->___callPlugins() called at [generated/code/Magento/Catalog/Controller/Adminhtml/Product/Edit/Interceptor.php:23]\n#22 Magento\Catalog\Controller\Adminhtml\Product\Edit\Interceptor->execute() called at [vendor/magento/framework/App/Action/Action.php:111]\n#23 Magento\Framework\App\Action\Action->dispatch() called at [vendor/magento/module-backend/App/AbstractAction.php:151]\n#24 Magento\Backend\App\AbstractAction->dispatch() called at [vendor/magento/framework/Interception/Interceptor.php:58]\n#25 Magento\Catalog\Controller\Adminhtml\Product\Edit\Interceptor->___callParent() called at [vendor/magento/framework/Interception/Interceptor.php:138]\n#26 Magento\Catalog\Controller\Adminhtml\Product\Edit\Interceptor->Magento\Framework\Interception\{closure}() called at [vendor/magento/module-backend/App/Action/Plugin/Authentication.php:143]\n#27 Magento\Backend\App\Action\Plugin\Authentication->aroundDispatch() called at [vendor/magento/framework/Interception/Interceptor.php:135]\n#28 Magento\Catalog\Controller\Adminhtml\Product\Edit\Interceptor->Magento\Framework\Interception\{closure}() called at [vendor/magento/framework/Interception/Interceptor.php:153]\n#29 Magento\Catalog\Controller\Adminhtml\Product\Edit\Interceptor->___callPlugins() called at [generated/code/Magento/Catalog/Controller/Adminhtml/Product/Edit/Interceptor.php:32]\n#30 Magento\Catalog\Controller\Adminhtml\Product\Edit\Interceptor->dispatch() called at [vendor/magento/framework/App/FrontController.php:245]\n#31 Magento\Framework\App\FrontController->getActionResponse() called at [vendor/magento/framework/App/FrontController.php:212]\n#32 Magento\Framework\App\FrontController->processRequest() called at [vendor/magento/framework/App/FrontController.php:147]\n#33 Magento\Framework\App\FrontController->dispatch() called at [vendor/magento/framework/Interception/Interceptor.php:58]\n#34 Magento\Framework\App\FrontController\Interceptor->___callParent() called at [vendor/magento/framework/Interception/Interceptor.php:138]\n#35 Magento\Framework\App\FrontController\Interceptor->Magento\Framework\Interception\{closure}() called at [vendor/magento/framework/Interception/Interceptor.php:153]\n#36 Magento\Framework\App\FrontController\Interceptor->___callPlugins() called at [generated/code/Magento/Framework/App/FrontController/Interceptor.php:23]\n#37 Magento\Framework\App\FrontController\Interceptor->dispatch() called at [vendor/magento/framework/App/Http.php:116]\n#38 Magento\Framework\App\Http->launch() called at [generated/code/Magento/Framework/App/Http/Interceptor.php:23]\n#39 Magento\Framework\App\Http\Interceptor->launch() called at [vendor/magento/framework/App/Bootstrap.php:264]\n#40 Magento\Framework\App\Bootstrap->run() called at [pub/index.php:29]\n","url":"/phil_admin/catalog/product/edit/id/690/key/17660bbaba8b6c6efbd7f10f6ee9ce8dfa424b4e821218bfdbe176fab72771a2/","script_name":"/pub/index.php","report_id":"8cc3e2ed879043ec6a8d6b8a353391d500a5d98b147ece554730362b723f0b89"}

It looks to be something to do with Recurring Payments / Subscriptions, but we aren't using any of that.

Any help resolving this would be greatly received. Thanks :)

Magento 2.4.4 | User ID and Type ID cannot be empty

Description
As Magento now uses Magento\JwtUserToken\Model\Issuer to generate token it goes through following check

    if (!$userContext->getUserId() || !$userContext->getUserType()) {
            throw new UserTokenException('User ID and Type ID cannot be empty');
        }

This causes error as for guest users customer id is not assigned.

Error message :

1 exception(s):
Exception #0 (Magento\Integration\Api\Exception\UserTokenException): User ID and Type ID cannot be empty

Exception #0 (Magento\Integration\Api\Exception\UserTokenException): User ID and Type ID cannot be empty
<pre>#1 Magento\JwtUserToken\Model\Issuer\Interceptor->create() called at [vendor/magento/module-integration/Model/Oauth/Token.php:246]
#2 Magento\Integration\Model\Oauth\Token->createCustomerToken() called at [vendor/sapient/module-worldpay/Block/Webpayment.php:173]
#3 Sapient\Worldpay\Block\Webpayment->getCustomerToken() called at [generated/code/BAT/Worldpay/Block/Webpayment/Interceptor.php:113]

-> view/frontend/templates/webpayment.phtml:9


Suggested Solution

createCustomerToken is deprecated. Magento suggests to use Issuer (Magento\Integration\Api\UserTokenIssuerInterface) which is used by Magento_JwtUserToken module recently introduced. See below createCustomerToken
https://github.com/magento/magento2/blob/2.4.4/app/code/Magento/JwtUserToken/Model/Issuer.php#L63

User Guide pdf

Hi there, in the user guide pdf, page 7, there are 2 screenshots overlapped.

Support for us online payments and payfac

Dear Team,
Is it support US online payments and Payfac transactions.
We don't need sub merchants register,we should be able to authorise order amount to sub merchants.

Issue : Guest Checkout Popup is not displaying

Steps to Replicate

  1. Go to Admin Sales -> Checkout -> Checkout Option and set Allow Guest Checkout to No
  2. Add product to cart
  3. Wait for minicart to be updated
  4. Click on the minicart
  5. Click "Proceed to checkout"

Expected Result:
Magento popup should be shown with options either to log in or register a a new customer

Actual Result:
Customer is being redirected to cart page
Error message "Guest checkout is disabled" is showing

Observation
sapient/module-worldpay/view/frontend/templates/onepage/link.phtml
"Process to Checkout" button behaviour has been changed in above file

data-mage-init='{"Magento_Checkout/js/proceed-to-checkout":{"checkoutUrl":"getCheckoutUrl() ?>"}}'
Changed to
onclick="location.href='getCheckoutUrl() ?>'"

Is this updated for any purpose.

Atatched the error file and expected
error
expected

file.

sapient/module-worldpay is not compatible with PHP 7.2

When installing the module via composer, I receive the error that the module is not compatible with PHP 7.2:
sapient/module-worldpay 1.5.3 requires php ~5.5.0|~5.6.0|~7.0.0|~7.1.0 -> your PHP version (7.2.4) does not satisfy that requirement.

Order Conformation email not sent in Live mode

#000000118 _ Orders _ Operations _ Sales _ Magento Admin _ HAILLY LONDON UK
Hi ,
Magento version is 2.3.4, PHP - 7.1.3, Wordlpay - 2.1.6.

When in test mode, and order is placed via worldpay, customer gets order confirmation email
But when in Live mode, and order is placed, customer is not getting order Confirmation email
Please advise,

Thanks

Jag

Payment Capture Issue

Hi Team,

On the live site, we noticed that for some orders the order amount is captured. But the customer is not redirected to the order success page.
We are using Module version 2.4.3-p2
Please let us know if you have a fix already

Thanks!
Sanju

Moto Card fields hidden at create order

Version 1.3
Live environment

When creating an order in the backend, the heading for MOTO shows but no fields for entry.

When saving the order the system shows invalid payment type.

No console errors

The html code

<div id="order-billing_method" class="admin__page-section-item order-billing-method">
<div class="admin__page-section-title">
    <span class="title">Payment Method</span>
    </div>

<div id="order-billing_method_form">
    <dl class="admin__payment-methods">
                <dt class="admin__field-option">
                    <span class="no-display">
                <input id="p_method_worldpay_moto" value="worldpay_moto" type="radio" name="payment[method]" class="admin__control-radio" checked="checked">
            </span>
        
            <label class="admin__field-label" for="p_method_worldpay_moto">MOTO            </label>
        </dt>
        <dd class="admin__payment-method-wrapper">
                    </dd>
        </dl>
</div>
    
</div>

capture

3DSecure authorize payment log out/session issue

Magento ver. 2.4.1 B2B
Browser: Chrome Version 103.0.5060.114
sapient/module-worldpay: 2.4.1-rc1220

Steps to reproduce:

  1. Go to checkout, fill form, press Place order. Magento redirects me to 3DSecure authorize payment page. I press cancel Payment. I am redirected to Magento card page. (Alternative is: I fill incorrect credit card information)

  2. Second time, I do the same, but on Authorize Payment page I just waits until payment will cancel by timeout.

Actual result:
I am redirected to Magento card page, but I am logger out. I as a customer losing my Basket, when I log in.

Expected result:
I am redirected to Magento card page and I am logged in customer.

Additional info:
This bug is rarely reproduced. Approximately from 10 attempt it will occurs once.

Broken checkout in Internet Explorer when using APM's

When trying to checkout in Internet Explorer and reaching step two of the onepage checkout (billing/payment information section), the checkout crashes because of an error on line 56 of the /apm-method.js file.

Error:
SCRIPT 1006: Expected ')'
File: apm-method.js, Line 56, Column: 46

It seems to be the filterAjax function is trying to add a default value of 'null' to statusCheck parameter but this functionality was brought in to ECMAScript 6/2015 which is NOT supported in any version of Internet Explorer.

FIX:
Removing the '= null' prevents the checkout from crashing and this shouldn't cause further issues as this function is only called twice, both times from this file and both times a value of 1 is passed through.

Quick fix is to copy this file into your theme directory and remove the '= null'.

Place order issue

Hi,

We are on Magento 2.4.4 and PHP 8.1 . We are getting the below issue while trying to place an order using world pay,

{"message":"Deprecated Functionality: Constant FILTER_SANITIZE_STRING is deprecated in /app/c7t5qvabrjwco_stg/vendor/sapient/module-worldpay/Model/Mapping/Service.php on line 315"}

Please help us to resolve this issue.

Thanks!
Sanju

Worldpay

Hi,
How much time will you update this plugin for php 7.1 , 7.2 , 7.3 & also in magento 2.2.7 , 2.3.0 version.

Not work in production with minify javascript

The plugin not work in production environment and minified javascript, apparently magento adds extra min.
Production:

https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.2/rollups/hmac-sha256.min.js
https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.2/components/enc-base64-min.min.js
[ERROR] Failed to load the “Sapient_Worldpay/js/view/payment/method-renderer/cc-method” component.

Correct URL

https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.2/rollups/hmac-sha256.js
https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.2/components/enc-base64-min.js

image

You need to exclude those JS from minification in config.xml

Worldpay enabled 3D Secure enabled error

Hi,

Current module version: 2.1.5
We have enabled the 3D secure in Worldpay and some issues started to show in the module

  1. In a relative busy day we have around 200 occurrences of the error:
    Uncaught Error: Call to a member function getEchoData() on null in app/code/Sapient/Worldpay/Model/Authorisation/ThreeDSecureService.php:56

  2. Duplicate orders have been placed

Could you please tell me if you have any other customers complaining of the same issue after enabling the 3D secure check?

Also is the module 3DS2 ready? Is there anything we need to set for this to work?

pass Encrypted data to order api

We are using Magento 2 with reactjs as headless frontend.
I think we need to use client side and serverside encryption.
And our payment action is authorise only.
Where i need to pass encrypted data in order api.
May i know file location for adding encrypted data.
Thanks in advance

Magento 2.3.4-p2 > 2.4.2 Commerce with release-v2.4.2-rc0421 Throws error during setup:upgrade

Please see error message and stack trace below during setup:upgrade.

We're upgrading Magento to 2.4.2 from 2.3.4-p2 and using the dev release branch release-v2.4.2-rc0421 of the Worldpay module.

I've investigate the issue and appears to be around the saving of "klarna_config/klarna_countries_config" config.

`Module 'Sapient_Worldpay':
Upgrading data.. PHP Fatal error: Uncaught TypeError: Argument 1 passed to Magento\Config\Model\Config::getOriginalFieldId() must be an instance of Magento\Config\Model\Config\Structure\Element\Group, instance of Magento\Config\Model\Config\Structure\Element\Field\Interceptor given, called in /magento/vendor/magento/module-config/Model/Config.php on line 279 and defined in /magento/vendor/magento/module-config/Model/Config.php:248
Stack trace:
#0 /magento/vendor/magento/module-config/Model/Config.php(279): Magento\Config\Model\Config->getOriginalFieldId()
#1 /magento/vendor/magento/module-config/Model/Config.php(429): Magento\Config\Model\Config->getField()
#2 /magento/vendor/magento/module-config/Model/Config.php(200): Magento\Config\Model\Config->_processGroup()
#3 /magento/vendor/magento/framework/Interception/Interceptor.php(58): Magento\Config\Model\Config->save()
#4 /magento/vendor/magento/framework/Interception/Interceptor.php(138): Magento\Config\Model\Config\Interceptor->___callParent()
#5 /magento/vendor/magento/module-catalog-permi in /magento/vendor/magento/module-config/Model/Config.php on line 248

Fatal error: Uncaught TypeError: Argument 1 passed to Magento\Config\Model\Config::getOriginalFieldId() must be an instance of Magento\Config\Model\Config\Structure\Element\Group, instance of Magento\Config\Model\Config\Structure\Element\Field\Interceptor given, called in /magento/vendor/magento/module-config/Model/Config.php on line 279 and defined in /magento/vendor/magento/module-config/Model/Config.php on line 248

TypeError: Argument 1 passed to Magento\Config\Model\Config::getOriginalFieldId() must be an instance of Magento\Config\Model\Config\Structure\Element\Group, instance of Magento\Config\Model\Config\Structure\Element\Field\Interceptor given, called in /magento/vendor/magento/module-config/Model/Config.php on line 279 in /magento/vendor/magento/module-config/Model/Config.php on line 248

Call Stack:
0.0003 350344 1. {main}() /magento/bin/magento:0
0.4371 7037720 2. Magento\Framework\Console\Cli->run(???, ???) /magento/bin/magento:23
0.4464 7120704 3. Magento\Framework\Console\Cli->doRun(class Symfony\Component\Console\Input\ArgvInput, class Symfony\Component\Console\Output\ConsoleOutput) /magento/vendor/symfony/console/Application.php:149
0.4464 7120704 4. Magento\Framework\Console\Cli->doRun(class Symfony\Component\Console\Input\ArgvInput, class Symfony\Component\Console\Output\ConsoleOutput) /magento/vendor/magento/framework/Console/Cli.php:115
10.9444 123766568 5. Magento\Framework\Console\Cli->doRunCommand(class Magento\Setup\Console\Command\UpgradeCommand, class Symfony\Component\Console\Input\ArgvInput, class Symfony\Component\Console\Output\ConsoleOutput) /magento/vendor/symfony/console/Application.php:273
10.9444 123766568 6. Magento\Setup\Console\Command\UpgradeCommand->run(class Symfony\Component\Console\Input\ArgvInput, class Symfony\Component\Console\Output\ConsoleOutput) /magento/vendor/symfony/console/Application.php:1009
10.9447 123768720 7. Magento\Setup\Console\Command\UpgradeCommand->execute(class Symfony\Component\Console\Input\ArgvInput, class Symfony\Component\Console\Output\ConsoleOutput) /magento/vendor/symfony/console/Command/Command.php:255
68.3338 277831968 8. Magento\Setup\Model\Installer->installDataFixtures(array(13), true) /magento/setup/src/Magento/Setup/Console/Command/UpgradeCommand.php:147
68.3371 277832648 9. Magento\Setup\Model\Installer->handleDBSchemaData(class Magento\Setup\Module\DataSetup, string(4), array(13)) /magento/setup/src/Magento/Setup/Model/Installer.php:960
68.5428 278868720 10. Sapient\Worldpay\Setup\UpgradeData->upgrade(class Magento\Setup\Module\DataSetup, class Magento\Setup\Model\ModuleContext) /magento/setup/src/Magento/Setup/Model/Installer.php:1059
68.5556 279131512 11. Magento\Config\Model\Config\Interceptor->save() /magento/vendor/sapient/module-worldpay/Setup/UpgradeData.php:1496
68.5559 279132848 12. Magento\Config\Model\Config\Interceptor->___callPlugins(string(4), array(0), array(1)) /magento/generated/code/Magento/Config/Model/Config/Interceptor.php:23
68.5559 279133832 13. Magento\Config\Model\Config\Interceptor->Magento\Framework\Interception{closure:/magento/vendor/magento/framework/Interception/Interceptor.php:104-151}(...variadic()) /magento/vendor/magento/framework/Interception/Interceptor.php:153
68.5562 279136664 14. Magento\CatalogPermissions\Model\Indexer\Plugin\ConfigData->aroundSave(class Magento\Config\Model\Config\Interceptor, class Closure) /magento/vendor/magento/framework/Interception/Interceptor.php:135
68.5583 279140968 15. Magento\Config\Model\Config\Interceptor->Magento\Framework\Interception{closure:/magento/vendor/magento/framework/Interception/Interceptor.php:104-151}(...variadic()) /magento/vendor/magento/module-catalog-permissions/Model/Indexer/Plugin/ConfigData.php:97
68.5583 279141000 16. Magento\Config\Model\Config\Interceptor->___callParent(string(4), array(0)) /magento/vendor/magento/framework/Interception/Interceptor.php:138
68.5583 279141000 17. Magento\Config\Model\Config\Interceptor->save() /magento/vendor/magento/framework/Interception/Interceptor.php:58
68.5603 279142760 18. Magento\Config\Model\Config\Interceptor->_processGroup(string(37), array(1), array(5), string(8), array(0), array(0), class Magento\Framework\DB\Transaction, class Magento\Framework\DB\Transaction) /magento/vendor/magento/module-config/Model/Config.php:200
68.5607 279144504 19. Magento\Config\Model\Config\Interceptor->getField(string(8), string(37), string(15)) /magento/vendor/magento/module-config/Model/Config.php:429
68.5607 279144584 20. Magento\Config\Model\Config\Interceptor->getOriginalFieldId(class Magento\Config\Model\Config\Structure\Element\Field\Interceptor, string(15)) /magento/vendor/magento/module-config/Model/Config.php:279`

Not compatible with Magento 2.3.5-p2

{"0":"URI is not valid and cannot be converted into a string","1":"#1 Laminas\Http\Header\AbstractLocation->getUri() called at [vendor/laminas/laminas-http/src/Header/AbstractLocation.php:138]\n#2 Laminas\Http\Header\AbstractLocation->toString() called at [vendor/laminas/laminas-http/src/PhpEnvironment/Response.php:114]\n#3 Laminas\Http\PhpEnvironment\Response->sendHeaders() called at [generated/code/Magento/Framework/App/Response/Http/Interceptor.php:323]\n#4 Magento\Framework\App\Response\Http\Interceptor->sendHeaders() called at [vendor/laminas/laminas-http/src/PhpEnvironment/Response.php:144]\n#5 Laminas\Http\PhpEnvironment\Response->send() called at [generated/code/Magento/Framework/App/Response/Http/Interceptor.php:349]\n#6 Magento\Framework\App\Response\Http\Interceptor->send() called at [vendor/magento/framework/HTTP/PhpEnvironment/Response.php:45]\n#7 Magento\Framework\HTTP\PhpEnvironment\Response->sendResponse() called at [vendor/magento/framework/Interception/Interceptor.php:58]\n#8 Magento\Framework\App\Response\Http\Interceptor->___callParent() called at [vendor/magento/framework/Interception/Interceptor.php:138]\n#9 Magento\Framework\App\Response\Http\Interceptor->Magento\Framework\Interception\{closure}

Option selection message for configurable products displayed multiple times

How to reproduce the issue:

  1. Login as Admin user.
  2. Create a configurable product and make sure it is displayed on Homepage.
  3. From Homepage find the configurable product and add it to cart (by clicking the “Add To Cart” button).
  4. The site redirects you to the configurable product’s page. Usually there should be shown a message saying “You need to choose options for your item.”, but in this case there are more possibilities, such as: the message will be displayed once, or it will be displayed multiple times, or sometimes not at all.

Environments where the issue was reproduced:

  1. Magento 2.4.3-p1 Vanilla with Saptient Worldpay 2.4.3-rc1221

This is how the message should be displayed:
configurable_happy_flow

Unfortunately this is how the message is displayed sometimes:
configurable_display_1

If we go with the same scenario but this time on a Bundle Product there are the same results of the message being displayed multiple times.
bundle_display_1

But when you add the bundle after the configurable product’s scenario was done, you might get something like the image below. This is also happening the other way round.
bundle_and_conf

To fix this issues for our project, we added a patch that changes the condition from vendor/sapient/module-worldpay/view/frontend/web/js/minicart.js:112
The condition in the file is if (cartData()['website_id'] !== window.checkout.websiteId)
We changed it to the condition from the Magento Core file (vendor/magento/module-checkout/view/frontend/web/js/view/minicart.js:105) that the file extends which is
if (
cartData().website_id !== window.checkout.websiteId && cartData().website_id !== undefined ||
cartData().storeId !== window.checkout.storeId && cartData().storeId !== undefined
)

Could this issue be fixed by Worldpay?

Thank you and have a great day!

How to install module

The installation instructions for the module are somewhat brief, containing just the statement:

Worldpay Extension is hosted at https://github.com/Worldpay/Worldpay-Magento-CG , To run below
installation steps, access to repository is required.

Nothing further on what this actually means. Complete instructions should be included for those not familiar with this process. Anyhow, added the following to Magento composer.json repositories section:

"sapient": { "type": "composer", "url": "https://github.com/Worldpay/Worldpay-Magento-CG" }

Now running composer require sapient/module-worldpay getting the following:

[Composer\Downloader\TransportException]
The "https://github.com/Worldpay/Worldpay-Magento-CG/packages.json" file could not be downloaded (HTTP/1.1 301 Moved Permanently)

Should it not be using the module's composer.json? Is the repository definition correct? Any ideas?

Generate hash for the following script https://storage.googleapis.com/prshim/v1/payment-shim.js

Hi all,
We have encountered a problem with one of our security systems, it seems that the js script included in the head does not contain a hash for the content security policy. Path to the file mentioned : "vendor/sapient/module-worldpay/view/frontend/layout/default.xml:4".
Documentation for the hash mentioned above from Magento 2 https://devdocs.magento.com/guides/v2.4/extension-dev-guide/security/content-security-policies.html

The browsers will validate the scripts if they are included in the csp_whitelist.xml file, but the security systems that we use, for example Tenable IO and others will still see this script as a one without a hash and reported in the generated overall report.
Could you please generate a hash for the mentioned script and send us a patch.

Thank you and please let me know if you have any queries.
Best Regards,
Ionut Peter
Web Developer

"Place Order" button does nothing.

I've installed this extension on a Magento 2.3.2 platform.

Mode: Test
Credit Cards: Enabled
Integration Mode: Direct
PHP Version: 7.1.3.2

When I populate the credit card form with test card details and press "Place Order" absolutely nothing happens. No console errors, nothing in the logs. The button does absolutely nothing.

I've changed the Magento theme to Luma to see if the issue is resolved, the same happens.

Please advise?

Collection namespace is incorrect

vendor/sapient/module-worldpay/Model/ResourceModel/Worldpayment/Collection.php

namespace currently:
namespace Sapient\Worldpay\Model\ResourceModel\Collection;

When it should be:
namespace Sapient\Worldpay\Model\ResourceModel\WorldPayment;

Getting error while running setup upgrade with version 2.4.3-p20622

Hi,
We are getting this error while running the setup upgrade on the latest version of the Worldpay module code

Unable to apply data patch Sapient\Worldpay\Setup\Patch\Data\DefaultConfigurations for module Sapient_Worldpay. Original exception message: Warning: foreach() argument must be of type array|object, string given in /xxxx/vendor/sapient/module-worldpay/Model/System/Config/Backend/MyAccountException.php on line 81

Thanks!
Sanju

Unable to upgrade module to version 2.4.3-p0322 due to db_schema.xml syntax error

Preconditions:

  1. Magento 2.4.3-p1
  2. Installed sapient/module-worldpay version 2.4.3-rc1221

Steps to reproduce:

  1. Upgrade module from 2.4.3-rc1221 to 2.4.3-p0322 via composer
  2. Run bin/magento setup:upgrade.

Expected result: it running without any errors.
Actual result: it throws errors and stops upgrading the database.

Trace:

Updating modules:
Cache cleared successfully
Schema creation/updates:
The XML in file "/var/www/html/vendor/sapient/module-worldpay/etc/db_schema.xml" is invalid:
Element 'column', attribute 'padding': The attribute 'padding' is not allowed.
Line: 5

Element 'column', attribute 'unsigned': The attribute 'unsigned' is not allowed.
Line: 5

Element 'column', attribute 'identity': The attribute 'identity' is not allowed.
Line: 5

Element 'column', attribute 'padding': The attribute 'padding' is not allowed.
Line: 100

Element 'column', attribute 'unsigned': The attribute 'unsigned' is not allowed.
Line: 100

Element 'column', attribute 'identity': The attribute 'identity' is not allowed.
Line: 100

Verify the XML and try again.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.