So I have checked to make 100% sure that curl is enabled. This is a live site https://zc157d.dreamhosters.com
Do not let the zc157d tag confuse you, it is an old sandbox location and I just loaded 2.0.1 into that site.
Printable View
So I have checked to make 100% sure that curl is enabled. This is a live site https://zc157d.dreamhosters.com
Do not let the zc157d tag confuse you, it is an old sandbox location and I just loaded 2.0.1 into that site.
Interesting that I had to go work on something else for a couple of hours. Came back and got the same error. Submitted a case to PP. Tried one more time and it worked...??? Is there some kind of time lag from setting up a new PP API App before the credentials are live???
Making progress. But I did learn the Paypal's developer tools are really good. I have a new error and the error is fully detailed
https://drive.google.com/file/d/1K35...usp=drive_link
Now this is clearly NOT a RESTful PayPal but an account issue at PayPal. But below this link is the full JSON Request and Response. Very nice!
Now if I can just figure out how to set up my account to take credit cards (never had issues with the older system).
I forgot that the new plugin is both Pro AND Express. We do not have a Pro account so we do not take credit cards directly. I set up the plugin to accept them so I appear to be mistaken in that regard. We have to go the PayPal site to enter and use CCs. I was able to verify a new order and refund it completely.
And no, I do not like how PP responds overall. It now FORCES you to create a PP account. But this particular site does not have a huge amount of traffic right now and we cannot pay monthly fees for PP Pro so this is just how it has to go.
> [PayPal] now FORCES you to create a PP account.
The workaround would be to use a credit card gateway like Square or Authorize.
Or update to a free business account and use Express Checkout after modifying your account settings.
https://docs.zen-cart.com/user/payme...card/#comments
or more detailed https://myzencarthost.com/index.php?...d-Setting.html
We have these settings and I was forced to create a PP Account during the testing of our new site. Now I can tell you that the entire process was a bit confusing as we were already logged into the PayPal developer platform at the same time. From what I can see, I was forced to create the PP account without any other option.
I disable Credit Card and keep using PayPal Wallet only.
Still get the same error after every order:
Logs don't show any error, and I can capture $$ without any issue.Quote:
The payment module's observer (auto.paypalrestful.php) was not loaded; the payment module has been disabled. The payment module has been automatically disabled.
/includes/classes/observers/auto.paypalrestful.php is at the right place.
I test it in Sandbox mode, and everything goes well without such an error.
Is there anything I miss?
Turn on the payment module's debug and send the resulting log to me via direct email.
I did a successful PayPal test earlier, worked fine. Now trying it again, using the same account, and the same product, and it gives me a WHITE SCREEN as soon as I click the "Confirm Order" button on the OPC checkout page. It never takes me to the PayPal login page.
Here are the two debug log files.
File: myDEBUG-20240621-191454-655888.log
File 2: paypalr-c-27905-JefMas-20240621.log (only the bottom part of the log)Code:[21-Jun-2024 12:14:55 America/Los_Angeles] Request URI: /store/index.php?main_page=checkout_one_confirmation, IP address: 76.127.00.32
--> PHP Fatal error: Uncaught Error: Call to undefined method paypalr::sendAlertMessage() in /home/domain/public_html/store/includes/modules/payment/paypalr.php:953
Stack trace:
#0 /home/domain/public_html/store/includes/classes/payment.php(248): paypalr->pre_confirmation_check()
#1 /home/domain/public_html/store/includes/modules/pages/checkout_one_confirmation/header_php.php(246): payment->pre_confirmation_check()
#2 /home/domain/public_html/store/index.php(35): require('/home/domain/...')
#3 {main}
thrown in /home/domain/public_html/store/includes/modules/payment/paypalr.php on line 953.
Is there some kind of conflict with the old paypaldp and paypalwpp modules which I also have installed? I believe I tried to disable them (not uninstall) but still saw the same issue.Code:2024-06-21 12:14:55: (checkout_one_confirmation) ==> End createOrder\ConfirmPayPalPaymentChoiceRequest::__construct(...) finished, request:
{
"paypal": {
"name": {
"given_name": "Jeff",
"surname": "Mash"
},
"email_address": "email######################",
"experience_context": {
"payment_method_preference": "IMMEDIATE_PAYMENT_REQUIRED",
"brand_name": "Brand",
"landing_page": "NO_PREFERENCE",
"shipping_preference": "SET_PROVIDED_ADDRESS",
"user_action": "PAY_NOW",
"return_url": "https:\/\/www.domain.com\/store\/ppr_webhook_main.php?op=return",
"cancel_url": "https:\/\/www.domain.com\/store\/ppr_webhook_main.php?op=cancel"
}
}
}
2024-06-21 12:14:55: (checkout_one_confirmation) ==> Start confirmPaymentSource
TokenCache::get, using saved access-token; expires in 31506 seconds.
The curlPost (v2/checkout/orders/0K792404TN0597925/confirm-payment-source) request was unsuccessful.
{
"errNum": 422,
"errMsg": "An interface error (422) was returned from PayPal.",
"curlErrno": 0,
"name": "UNPROCESSABLE_ENTITY",
"message": "The requested action could not be performed, semantically incorrect, or failed business validation.",
"details": [
{
"issue": "ORDER_ALREADY_AUTHORIZED",
"description": "Order already authorized.If 'intent=AUTHORIZE' only one authorization per order is allowed."
}
],
"debug_id": "4997a45158c3b"
}
CURL Options: {
"78": 10,
"52": false,
"75": true,
"74": true,
"42": 0,
"19913": true,
"13": 45,
"47": true,
"10002": "https:\/\/api-m.paypal.com\/v2\/checkout\/orders\/0K792404TN0597925\/confirm-payment-source",
"10015": "{\"payment_source\":{\"paypal\":{\"name\":{\"given_name\":\"Jeff\",\"surname\":\"Mash\"},\"email_address\":\"email######################\",\"experience_context\":{\"payment_method_preference\":\"IMMEDIATE_PAYMENT_REQUIRED\",\"brand_name\":\"MJM Magic\",\"landing_page\":\"NO_PREFERENCE\",\"shipping_preference\":\"SET_PROVIDED_ADDRESS\",\"user_action\":\"PAY_NOW\",\"return_url\":\"https:\\\/\\\/www.domain.com\\\/store\\\/ppr_webhook_main.php?op=return\",\"cancel_url\":\"https:\\\/\\\/www.domain.com\\\/store\\\/ppr_webhook_main.php?op=cancel\"}}}}"
}
2024-06-21 12:14:55: (checkout_one_confirmation) ==> End confirmPaymentSource
I don't understand why this worked earlier in my test and now it doesn't.
Crud, line 953-956 should read
... not sendAlertMessage.Code:$this->sendAlertEmail(
MODULE_PAYMENT_PAYPALR_ALERT_SUBJECT_CONFIRMATION_ERROR,
MODULE_PAYMENT_PAYPALR_ALERT_CONFIRMATION_ERROR . "\n" . Logger::logJSON($payment_choice_response) . "\n" . Logger::logJSON($this->ppr->getErrorInfo())
);
Update: GitHub issue created (https://github.com/lat9/paypalr/issues/26)
Hey Cindy - I manually changed the name of the function to sendAlertEmail() and tried again. This time, I get an actual error message on the OPC page:
"We are unable to process your PayPal Checkout payment at this time. Please contact us for assistance."
Looking at the debug log file, it seems to indicate that this transaction was previously authorized:
As you can see, it says "Order already authorized.If 'intent=AUTHORIZE' only one authorization per order is allowed."Code:024-06-21 14:25:37: (checkout_one_confirmation) ==> Start confirmPaymentSource
TokenCache::get, using saved access-token; expires in 32322 seconds.
The curlPost (v2/checkout/orders/0K792404TN0597925/confirm-payment-source) request was unsuccessful.
{
"errNum": 422,
"errMsg": "An interface error (422) was returned from PayPal.",
"curlErrno": 0,
"name": "UNPROCESSABLE_ENTITY",
"message": "The requested action could not be performed, semantically incorrect, or failed business validation.",
"details": [
{
"issue": "ORDER_ALREADY_AUTHORIZED",
"description": "Order already authorized.If 'intent=AUTHORIZE' only one authorization per order is allowed."
}
],
"debug_id": "81bd08dcd3053"
}
CURL Options: {
"78": 10,
"52": false,
"75": true,
"74": true,
"42": 0,
"19913": true,
"13": 45,
"47": true,
"10002": "https:\/\/api-m.paypal.com\/v2\/checkout\/orders\/0K792404TN0597925\/confirm-payment-source",
"10015": "{\"payment_source\":{\"paypal\":{\"name\":{\"given_name\":\"Jeff\",\"surname\":\"Mash\"},\"email_address\":\"email######################\",\"experience_context\":{\"payment_method_preference\":\"IMMEDIATE_PAYMENT_REQUIRED\",\"brand_name\":\"MJM Magic\",\"landing_page\":\"NO_PREFERENCE\",\"shipping_preference\":\"SET_PROVIDED_ADDRESS\",\"user_action\":\"PAY_NOW\",\"return_url\":\"https:\\\/\\\/www.mjmmagic.com\\\/store\\\/ppr_webhook_main.php?op=return\",\"cancel_url\":\"https:\\\/\\\/www.domain.com\\\/store\\\/ppr_webhook_main.php?op=cancel\"}}}}"
}
2024-06-21 14:25:37: (checkout_one_confirmation) ==> End confirmPaymentSourceWe are unable to process your PayPal Checkout payment at this time. Please contact us for assistance.
************************************************
2024-06-21 14:25:38: (checkout_one) validateCredentials: Checking (1).
TokenCache::get, using saved access-token; expires in 32321 seconds.
************************************************
However, this is a new transaction I am pushing over. Granted, I am using the same user account, same PayPal account, and purchasing the same product. But the original order that successfully submitted has been VOIDED in PayPal. So I don't know why it's still saying "ORDER_ALREADY_AUTHORIZED" since this would be a new order.
Any way to look into that? I can help debug if need be, just let me know or hit me up on Skype.
I'm wondering if what I pointed out above is somehow tied into the AUTH ONLY setting that we enabled? I don't think most people use AUTH ONLY like we do, so maybe it's a bug? Like I said, the first time we placed the order (Paypal Wallet - AUTH ONLY), it submitted. We voided it out, deleted the order, and tried again using the same customer, same PayPal account, same product. Everything about the order was identical. This time, it failed with the message and log that I documented above this post.
Hope that helps to see if we can help you reproduce it, or to help explain why we would have gotten that "ORDER_ALREADY_AUTHORIZED" error when it was a new (second) order we were testing with the same product and same account.
Hi Jeff_Mash,
Sorry to interrupt your question. Have you met such an error when you receive an auth-only order?
I also use auth-only, but not sure if it's my problem, or an issue while using auth-only mode.Quote:
The payment module's observer (auto.paypalrestful.php) was not loaded; the payment module has been disabled. The payment module has been automatically disabled.
Check Step 2 in the installation instructions:
That will probably fix your issue.Quote:
2. If your site is using a Zen Cart version prior to 2.0.0, add the payment module's required notifications to the order_total class, as described in this Wiki article. Without this update, the payment module will automatically disable itself.
Wiki Link: https://github.com/lat9/paypalr/wiki...r_total.php%60
Here is also a list of other events that could cause the module to disable:
https://github.com/lat9/paypalr/wiki...-notifications
Turns out (thanks @siliconbug for the aid in debugging!) that the auto-disable was due to the PayPal ipn_main_handler.php's operation. That was creating an instance of the paypalr payment module and since the IPN processing doesn't load auto-loaded observers ... paypalr was auto-disabling!
See this GitHub issue for the resolution: https://github.com/lat9/paypalr/issues/27
Using Paypalr 1.0.2 with ZC 1.58a and OPC 2.4.6, I've seen this e-mail alert a few times over the last day or two:
ALERT: PayPal Checkout Error (Order Requires Attention)
I *think* each one has been for a payment in EUR while our store's default currency is GBP. This is a new issue - I've been using Paypalr for months without seeing this before.Code:An error was returned by PayPal when attempting to initiate an order. As a courtesy, only the error 'code' was shown to your customer. The details of the error are shown below.
{
"errNum": 400,
"errMsg": "An interface error (400) was returned from PayPal.",
"curlErrno": 0,
"name": "INVALID_REQUEST",
"message": "Request is not well-formed, syntactically incorrect, or violates schema.",
"details": [
{
"field": "/purchase_units",
"value": "",
"location": "body",
"issue": "MISSING_REQUIRED_PARAMETER",
"description": "A required field / parameter is missing."
},
{
"field": "/intent",
"value": "",
"location": "body",
"issue": "MISSING_REQUIRED_PARAMETER",
"description": "A required field / parameter is missing."
}
],
"debug_id": "7610a5441e3e4"
}
I also have the Paypalr and OPC debug logs that I can send if it helps.
I have checked other, successful orders today and they include both card and Paypal payments via Paypalr.
When I press the Confirm Order button in PayPal, I get sent back to the cart, but I'm logged off.
The only PayPal log I have is the first one created:
2024-06-28 13:40:16: (index) ppr_webhook_main (return, live) starts.
{
"op": "return",
"token": "***",
"PayerID": "***",
"main_page": "index"
}
I wonder if this is a samesite cookie issue?
Tested - nope, that's not the problem.
For some reason, $_SESSION['PayPalRestful'] is not set on return. And a logout has been done.
Everything looks good right before the handoff:
2024-06-28 23:50:53: (checkout_confirmation) pre_confirmation_check, sending the payer-action off to PayPal.
I'm wondering if there's a session issue on their server. Investigating.
Since I switched from PayPal Express to RESTful I get a couple errors every time someone uses it. I had hoped that getting all my updates done would fix, but it has not. I have not yet tried this in my 2.0.1 dev environment. Currently on:
ZC 1.5.8a
Bootstrap 3.7.2
OPC 2.5.2
PayPal Checkout Restful 1.0.2
PayPal Express Checkout 1.5.8 (disabled)
PHP 8.1.29
First Error:
Second Error:Code:[30-Jul-2024 19:54:03 America/Chicago] Request URI: /ipn_main_handler.php, IP address: 173.0.81.140, Language id not set
#0 /includes/modules/payment/paypal/paypal_functions.php(48): zen_debug_error_handler()
#1 /includes/init_includes/init_paypal_ipn_sessions.php(34): ipn_get_stored_session()
#2 /includes/autoload_func.php(40): require_once('/home/pcs/publi...')
#3 /includes/application_top.php(237): require('/home/pcs/publi...')
#4 /ipn_main_handler.php(122): require('/home/pcs/publi...')
--> PHP Warning: Undefined array key 1 in /includes/modules/payment/paypal/paypal_functions.php on line 48.
[30-Jul-2024 19:54:03 America/Chicago] Request URI: /ipn_main_handler.php, IP address: 173.0.81.140, Language id not set
#0 /includes/modules/payment/paypal/paypal_functions.php(55): zen_debug_error_handler()
#1 /includes/init_includes/init_paypal_ipn_sessions.php(34): ipn_get_stored_session()
#2 /includes/autoload_func.php(40): require_once('/home/pcs/publi...')
#3 /includes/application_top.php(237): require('/home/pcs/publi...')
#4 /ipn_main_handler.php(122): require('/home/pcs/publi...')
--> PHP Warning: Undefined array key 1 in /includes/modules/payment/paypal/paypal_functions.php on line 55.
[30-Jul-2024 19:54:03 America/Chicago] Request URI: /ipn_main_handler.php, IP address: 173.0.81.140, Language id 1
#0 /includes/modules/payment/paypal/paypal_functions.php(48): zen_debug_error_handler()
#1 /ipn_main_handler.php(217): ipn_get_stored_session()
--> PHP Warning: Undefined array key 1 in /includes/modules/payment/paypal/paypal_functions.php on line 48.
[30-Jul-2024 19:54:03 America/Chicago] Request URI: /ipn_main_handler.php, IP address: 173.0.81.140, Language id 1
#0 /includes/modules/payment/paypal/paypal_functions.php(55): zen_debug_error_handler()
#1 /ipn_main_handler.php(217): ipn_get_stored_session()
--> PHP Warning: Undefined array key 1 in /includes/modules/payment/paypal/paypal_functions.php on line 55.
Thoughts or suggestions?Code:[30-Jul-2024 19:54:03 America/Chicago] Request URI: /ipn_main_handler.php, IP address: 173.0.81.140, Language id not set
#0 [internal function]: zen_debug_error_handler()
#1 /includes/classes/db/mysql/query_factory.php(561): preg_match()
#2 /includes/classes/db/mysql/query_factory.php(513): queryFactory->getBindVarValue()
#3 /includes/modules/payment/paypal/paypal_functions.php(48): queryFactory->bindVars()
#4 /includes/init_includes/init_paypal_ipn_sessions.php(34): ipn_get_stored_session()
#5 /includes/autoload_func.php(40): require_once('/home/pcs/publi...')
#6 /includes/application_top.php(237): require('/home/pcs/publi...')
#7 /ipn_main_handler.php(122): require('/home/pcs/publi...')
--> PHP Deprecated: preg_match(): Passing null to parameter #2 ($subject) of type string is deprecated in /includes/classes/db/mysql/query_factory.php on line 561.
[30-Jul-2024 19:54:03 America/Chicago] Request URI: /ipn_main_handler.php, IP address: 173.0.81.140, Language id not set
#0 [internal function]: zen_debug_error_handler()
#1 /includes/classes/db/mysql/query_factory.php(177): mysqli_real_escape_string()
#2 /includes/classes/db/mysql/query_factory.php(562): queryFactory->prepare_input()
#3 /includes/classes/db/mysql/query_factory.php(513): queryFactory->getBindVarValue()
#4 /includes/modules/payment/paypal/paypal_functions.php(48): queryFactory->bindVars()
#5 /includes/init_includes/init_paypal_ipn_sessions.php(34): ipn_get_stored_session()
#6 /includes/autoload_func.php(40): require_once('/home/pcs/publi...')
#7 /includes/application_top.php(237): require('/home/pcs/publi...')
#8 /ipn_main_handler.php(122): require('/home/pcs/publi...')
--> PHP Deprecated: mysqli_real_escape_string(): Passing null to parameter #2 ($string) of type string is deprecated in /includes/classes/db/mysql/query_factory.php on line 177.
[30-Jul-2024 19:54:03 America/Chicago] Request URI: /ipn_main_handler.php, IP address: 173.0.81.140, Language id 1
#0 [internal function]: zen_debug_error_handler()
#1 /includes/classes/db/mysql/query_factory.php(561): preg_match()
#2 /includes/classes/db/mysql/query_factory.php(513): queryFactory->getBindVarValue()
#3 /includes/modules/payment/paypal/paypal_functions.php(48): queryFactory->bindVars()
#4 /ipn_main_handler.php(217): ipn_get_stored_session()
--> PHP Deprecated: preg_match(): Passing null to parameter #2 ($subject) of type string is deprecated in /includes/classes/db/mysql/query_factory.php on line 561.
[30-Jul-2024 19:54:03 America/Chicago] Request URI: /ipn_main_handler.php, IP address: 173.0.81.140, Language id 1
#0 [internal function]: zen_debug_error_handler()
#1 /includes/classes/db/mysql/query_factory.php(177): mysqli_real_escape_string()
#2 /includes/classes/db/mysql/query_factory.php(562): queryFactory->prepare_input()
#3 /includes/classes/db/mysql/query_factory.php(513): queryFactory->getBindVarValue()
#4 /includes/modules/payment/paypal/paypal_functions.php(48): queryFactory->bindVars()
#5 /ipn_main_handler.php(217): ipn_get_stored_session()
--> PHP Deprecated: mysqli_real_escape_string(): Passing null to parameter #2 ($string) of type string is deprecated in /includes/classes/db/mysql/query_factory.php on line 177.
Well it looks like this does NOT happen in my 2.0.1 dev environment, so hopefully its fixed in the new version.
Noting that those errors identified in the 2nd post back are coming from the ipn_main_handler.php, which is not part of the PayPal RESTful implementation.
I am testing this module against a sandbox account and have come across a problem.
If a customer makes a sucessful purchase using paypal restful and then attempts to make a second purchase with out loging out one of 2 things happen.
The first time I tried it the paypal restful module was disable so paypal could not be used for the second transaction.
This produced an admin log. (so it may have been a different issue as i sucessfully issues a refund).
The second time I tested it (having logged out and back in) I got the message " We are unable to process your PayPal Checkout payment at this time. Please contact us for assistance."Code:[09-Aug-2024 10:38:01 UTC] Request URI: /sales/ILSadmin/index.php?cmd=orders&origin=index&page=1&oID=2087&action=edit, IP address: 127.0.0.1, Language id 1
#0 [internal function]: zen_debug_error_handler()
#1 /home/lotus/public_html/innerlightcrystals/sales/includes/modules/payment/paypalr.php(547): trigger_error()
#2 /home/lotus/public_html/innerlightcrystals/sales/includes/modules/payment/paypalr.php(534): paypalr->setConfigurationDisabled()
#3 /home/lotus/public_html/innerlightcrystals/sales/includes/modules/payment/paypalr.php(291): paypalr->validateConfiguration()
#4 /home/lotus/public_html/innerlightcrystals/sales/ILSadmin/orders.php(514): paypalr->__construct()
#5 /home/lotus/public_html/innerlightcrystals/sales/ILSadmin/index.php(16): require('...')
--> PHP Warning: Setting configuration disabled: The <b>sandbox</b> credentials for the <var>paypalr</var> payment module are invalid. in /home/lotus/public_html/innerlightcrystals/sales/includes/modules/payment/paypalr.php on line 547.
I think this is the pertenat bit of the log file
This is against zen cart 2.0.1 using php 8.3.9 mysql 8.3.9Code:"errMsg": "An interface error (422) was returned from PayPal.",
"curlErrno": 0,
"name": "UNPROCESSABLE_ENTITY",
"message": "The requested action could not be performed, semantically incorrect, or failed business validation.",
"details": [
{
"issue": "ORDER_ALREADY_CAPTURED",
"description": "Order already captured.If 'intent=CAPTURE' only one capture per order is allowed."
}
If you need any further info please let me know.
Yea, I need to come up with a better GUID; that's where the 'already captured' message is coming from.
It's a matter of choosing variables that are part of the uniquid; I'm already using a sha256 hash to create that GUID.
I'm unclear as to what condition an email should be sent to the admin as the processing already sends an email to the admin if the configuration is auto-disabled.
Possible duplicate of this GitHub issue: https://github.com/lat9/paypalr/issues/28
Zen Cart v2.0.1
paypalr-1.0.2
https://alchemycabinet.com
I'm trying to get this plugin to work. I used to use it or one very similar with great results, so I'd really like to get it up and running again.
I may not have my configuration data correct on the PayPal side; I may have to contact them to help me with that.
Before I do that I want to make sure the Zen Cart side is functioning properly, but if I do a test run to check out with PayPal, I get the following errors:
The cart sends me to this url: https://alchemycabinet.com/ipn_main_handler.php?type=ec which simply says the cart can't handle the request.
The admin logs send me these errors (both errors for each instance):
[09-Aug-2024 17:17:42 UTC] Request URI: /ipn_main_handler.php?type=ec, IP address: 207.173.41.241
--> PHP Fatal error: Uncaught TypeError: CouponValidation::is_product_valid(): Argument #2 ($coupon_id) must be of type int, string given, called in /includes/functions/functions_gvcoupons.php on line 90 and defined in /includes/classes/CouponValidation.php:14
Stack trace:
#0 /includes/functions/functions_gvcoupons.php(90): CouponValidation::is_product_valid(2, '')
#1 /includes/modules/order_total/ot_coupon.php(635): is_product_valid(2, '')
#2 /includes/modules/order_total/ot_coupon.php(138): ot_coupon->get_order_total('')
#3 /includes/classes/order_total.php(197): ot_coupon->process()
#4 /includes/modules/payment/paypalwpp.php(1635): order_total->pre_confirmation_check()
#5 /ipn_main_handler.php(81): paypalwpp->ec_step1()
#6 {main}
thrown in /includes/classes/CouponValidation.php on line 14.
[09-Aug-2024 17:17:42 UTC] Request URI: /ipn_main_handler.php?type=ec, IP address: 207.173.41.241
--> PHP Fatal error: Uncaught TypeError: CouponValidation::is_product_valid(): Argument #2 ($coupon_id) must be of type int, string given, called in /includes/functions/functions_gvcoupons.php on line 90 and defined in /includes/classes/CouponValidation.php:14
Stack trace:
#0 /includes/functions/functions_gvcoupons.php(90): CouponValidation::is_product_valid(2, '')
#1 /includes/modules/order_total/ot_coupon.php(635): is_product_valid(2, '')
#2 /includes/modules/order_total/ot_coupon.php(138): ot_coupon->get_order_total('')
#3 /includes/classes/order_total.php(197): ot_coupon->process()
#4 /includes/modules/payment/paypalwpp.php(1635): order_total->pre_confirmation_check()
#5 /ipn_main_handler.php(81): paypalwpp->ec_step1()
#6 {main}
thrown in /includes/classes/CouponValidation.php on line 14.
I have no idea what is going on there as I don't have any coupons enabled or in use.
Thanks in advance for any help you can give. :)
ETA: I don't have either of the other PayPal modules enabled, so I don't think they're interfering with each other.
Okay; so why was I taken to a page that says the cart can't handle the request? Is that on the PayPal end?
ZC 2.0.1 on local host.
Have installed Restful API and got my credentials (Client ID/Client Secret) from Paypal, but the mod wont activate.
I get this message:
The live credentials for the paypalr payment module are invalid. The payment module has been automatically disabled.
Do I have to test from a live site?
I want to USE it.
Is it somehow out of date or is there a later module that is better somehow? I just downloaded the plugin as it is up-to-date with the latest version of Zen Cart and I'm trying to set it up as (currently) my only payment method. I'm under the impression the built-in PayPal modules are older, as I think they were around when I was using ZC ten years ago.
I'd forgotten about that restriction and have updated the payment-module's wiki to identify the requirement: https://github.com/lat9/paypalr/wiki...sked-Questions
??? So am I.
I have installed the PayPal RESTful API Payment Module and am trying to make it WORK.
I think I have all the proper information filled in, I'm in sandbox mode for testing at both my site and PayPal, but it returns the error I posted before.
If anyone can help me figure out the issue so I can make it work, I would much appreciate it.
PS: "PayPal Payments Standard" doesn't work at all. When trying to configure it there's a form for a "PDT Token (Payment Data Transfer)" value which doesn't return any results when I search PayPal's business tools. So even when I turn off the PayPal Express module, I can't make the other work, and I really do want to make sure I can take PayPal payments, even if I add other payment methods in the future.
The problem, I think, is that the forms on ZC do not match the API info from PayPal.
PayPal supplies a merchant ID, an 80+ character client ID and an 80+ character secret key.
The ZC forms ask for a username, password, and a signature code.
I'm not sure the information is analogous between the two. I've been *assuming* it is, and that the language used is the only distinction, but maybe that's not true?
Also, I can't find any place on the PayPal site to supply the IPN url information. Of course, that doesn't mean it isn't there, but I can't find it.
Have you tried the built-in PayPal Express with your credentials?
If "ZC forms" refers to the configuration information for the payment module, I can confirm that the PayPal Checkout (RESTful) module requests Client ID (live) and Client Secret (live) values.
I've got no clue where you are seeing username/password/signature code entries. Clue found: You're editing the PayPal Express Checkout module's settings.
? I only have ONE?
My options are:
PayPal Payments Standard
PayPal Payments Pro
PayPal Express Checkout
I cannot use the standard version because its asking for a PDT Token which I can't seem to find on PayPal anywhere.
I cannot use PayPal Payments Pro until I get Express checkout working. It also requires curl over SSL, which I may have but will have to ask my hosting company.
Mayhaps I haven't installed something correctly?
Okay; re-installed it. Apparently I put some files in the wrong folder, which I've noticed causing problems before. ;)
Anyway, module *seems* to work on the admin side, but no PayPal button shows up on the storefront checkout page.
There were error codes when I first installed it but I deleted them because I had so many from before...now I'm regretting that because it isn't displaying any new ones.
(sigh)
I'm pretty sure I do have everything uploaded correctly, so any clues what else may be going on now?
Okay, I made a fake account and used the checkout now button to buy an imaginary item in sandbox mode, but got the following errors:
First, I was sent to https://alchemycabinet.com/index.php...eckout_payment with the message "this page isn't working right now".
The admin error log messages are:
[11-Aug-2024 17:05:26 UTC] Request URI: /index.php?main_page=checkout_payment, IP address: 207.173.41.241
--> PHP Fatal error: Uncaught TypeError: CouponValidation::is_product_valid(): Argument #2 ($coupon_id) must be of type int, string given, called in /includes/functions/functions_gvcoupons.php on line 90 and defined in /includes/classes/CouponValidation.php:14
Stack trace:
#0 /includes/functions/functions_gvcoupons.php(90): CouponValidation::is_product_valid(4, '')
#1 /includes/modules/order_total/ot_coupon.php(635): is_product_valid(4, '')
#2 /includes/modules/order_total/ot_coupon.php(138): ot_coupon->get_order_total('')
#3 /includes/classes/order_total.php(197): ot_coupon->process()
#4 /includes/modules/pages/checkout_payment/header_php.php(101): order_total->pre_confirmation_check()
#5 /index.php(35): require('/home/alchem44/...')
#6 {main}
thrown in /includes/classes/CouponValidation.php on line 14.
[11-Aug-2024 17:05:26 UTC] Request URI: /index.php?main_page=checkout_payment, IP address: 207.173.41.241
--> PHP Fatal error: Uncaught TypeError: CouponValidation::is_product_valid(): Argument #2 ($coupon_id) must be of type int, string given, called in /includes/functions/functions_gvcoupons.php on line 90 and defined in /includes/classes/CouponValidation.php:14
Stack trace:
#0 /includes/functions/functions_gvcoupons.php(90): CouponValidation::is_product_valid(4, '')
#1 /includes/modules/order_total/ot_coupon.php(635): is_product_valid(4, '')
#2 /includes/modules/order_total/ot_coupon.php(138): ot_coupon->get_order_total('')
#3 /includes/classes/order_total.php(197): ot_coupon->process()
#4 /includes/modules/pages/checkout_payment/header_php.php(101): order_total->pre_confirmation_check()
#5 /index.php(35): require('/home/alchem44/...')
#6 {main}
thrown in /includes/classes/CouponValidation.php on line 14.
Which...seem a lot like the original messages I was getting trying to use the PayPal Express module I had installed before?
This needs to be reported as a base Zen Cart bug; not associated with this payment module.
Update: Those line numbers don't line up with the zc201 version of the /includes/modules/order_totals/ot_coupon.php file; I'll suggest you re-compare your installation to the files provided in the base zip-file.
This is a fresh install, so it should all match. Nevertheless, I'll find that file and see if I can find any differences. I have installed several add-ons, and I can't be sure one of them didn't overwrite that.
Ugh.
Comparing using online tool there are a bunch of differences. :(
I'll have to make a plan....
Thank-you very much for all your help so far. :)
I'm a glutton for punishment, it seems.
I made a new folder and a new database and installed ZC 2.0.1 from scratch to get a testing arena.
Once it was up and running, I installed "PayPal RESTful API Payment Module" as the very first (so far only) plugin, and so far, it works. :D
It is a little weird to me, as I get TWO PayPal buttons on checkout step 2. One sems "express" and opens a PayPal window, the other takes me to the checkout confirmation page. I would prefer to only show the first one.
I do intend to install one page checkout, but its a low priority right now as I have other stuff that's more important.
I'll put in the other addons over time and see if I can figure out which one is causing the problems with the cart I intend to use live. Now we know it IS an add-on, so that is a huge step in the right direction.
Thanks for all your help here...I'll continue to post if I discover anything that might be useful or if I need more help. :)
ETA: Ah...the second PayPal button was from the pre-installed PayPal module. I removed it, and now only have the "express" button showing. :)
The "optional core overrides" of the "edit orders 4.71" breaks the cart, at least with respect to this PayPal module, leading to a page that says the site can't handle the request.
It worked okay before I uploaded the optional core overrides, so I'll be reverting those back right away!
v1.0.3 of the PayPal RESTful payment module is now available for download: https://www.zen-cart.com/downloads.php?do=file&id=2382
This release contains changes associated with these GitHub issues:
#26: Correct undefined method sendAlertMessage; should be sendAlertEmail.
#27: ipn_main_handler call-back results in paypalr's auto-disable kicking in
#28: Ensure that the GUID is unique, preventing 'ORDER_ALREADY_AUTHORIZED' errors.
#29: MISSING_REQUIRED_PARAMETER returned when customer's first/last contains multi-byte characters
v1.0.4 the PayPal RESTful payment module is now available for download: https://www.zen-cart.com/downloads.php?do=file&id=2382
This version replaces the now-removed v1.0.3 and contains changes associated with these GitHub issues:
#26: Correct undefined method sendAlertMessage; should be sendAlertEmail.
#27: ipn_main_handler call-back results in paypalr's auto-disable kicking in
#28: Ensure that the GUID is unique, preventing 'ORDER_ALREADY_AUTHORIZED' errors.
#29: MISSING_REQUIRED_PARAMETER returned when customer's first/last contains multi-byte characters
#32: Use 'fit-content' for credit-card selection's icon-list.
#34: Correcting admin logs when no record exists in the paypal table for the selected order.
#35: Use $template class to locate .css overrides instead of direct-directory checks.
#36: Payment-module constructor was running storefront-only code in admin, resulting in unwanted logs.
#37: Restore use of Logger::logJSON sanitization.
Cindy - I have the latest version of the module, but how do we see what the AVS response is for a credit card? This is really important because we get a lot of fraudulent users who we don't ship orders if the AVS doesn't return with a 'Y'.
So we have the module on AUTHORIZE only so that we can check the AVS and capture the funds after our background checks.
Am I missing something, or is there a way to check where the AVS response is? I looked in the order (by clicking the 'click for Additional Payment Handling Options' link, and then looking at the DETAILS button). I also looked under the Paypal transaction in our account but they aren't showing the AVS.
EDIT: IN THE MEANTIME, is that information recorded in the debug log files for me to check, in case it's not yet in the code somewhere?
I'll get this into the payment module "soon", as identified in this GitHub issue: https://github.com/lat9/paypalr/issues/24
In the meantime (!), if you've got the payment module's logging enabled, I'm pretty sure (keywords) that the information is sent back by PayPal.
I just got this email from PayPal:
When I look at the logs, I see this error:Code:Please check your server that handles PayPal Instant Payment Notifications (IPN). IPNs sent to the following URL(s) are failing:
https://www.mydomain.com/store/ipn_main_handler.php
Seems like it could be related. I don't think our server went down or anything, so could this be something else?Code:[20-Sep-2024 09:07:50 America/Los_Angeles] Request URI: /store/ipn_main_handler.php, IP address: 173.0.81.140, Language id 1
#0 /home/domain/public_html/store/includes/modules/payment/paypal/paypal_functions.php(367): zen_debug_error_handler()
#1 /home/domain/public_html/store/ipn_main_handler.php(446): ipn_create_order_update_array()
--> PHP Warning: Undefined array key "pending_reason" in /home/domain/public_html/store/includes/modules/payment/paypal/paypal_functions.php on line 367.
[20-Sep-2024 09:07:50 America/Los_Angeles] Request URI: /store/ipn_main_handler.php, IP address: 173.0.81.140
--> PHP Fatal error: Uncaught Error: Undefined constant "MODULE_PAYMENT_PAYPAL_ORDER_STATUS_ID" in /home/domain/public_html/store/ipn_main_handler.php:475
Stack trace:
#0 {main}
thrown in /home/domain/public_html/store/ipn_main_handler.php on line 475.
Correction provided in Zen Cart 2.0.0 via this PR: https://github.com/zencart/zencart/pull/6316
Good morning. Hoping for some help.
Paypal Restful 1.0.4 stopped working for us on 9/17. No changes had been made to any files. Upgrade to 1.0.4 in August had been working fine. I checked/ re-installed all files and re-checked all steps. Everything looks fine.
Checkout seems to all work, but customer gets error message saying, "unable to process Paypal at this time."
ZC 1.5.8a; Paypal 1.0.4
Turned on error logging and tried it myself:
Logfile includes:
Line 134: The curlPost (v2/checkout/orders) request was successful (200).
Line 242: The curlPost (v2/checkout/orders/6NH65985XU492371R/confirm-payment-source) request was successful (200).
Line 334: The curlGet (v2/checkout/orders/6NH65985XU492371R) request was successful (200).
Line 457: 2024-09-25 09:17:01: (index) Order's status set to APPROVED; posting back to checkout_one_confirmation.
Line 473: 2024-09-25 09:17:01: (checkout_one_confirmation) pre_confirmation_check, completed for payment-source paypal.
Lines: 484-493:
TokenCache::get, using saved access-token; expires in 31559 seconds.
handleCurlError for curlPost (v2/checkout/orders/6NH65985XU492371R/authorize) : CURL error ({
"errNum": -2,
"errMsg": "Operation timed out after 45002 milliseconds with 0 bytes received",
"curlErrno": 28,
"name": "n\/a",
"message": "n\/a",
"details": "n\/a",
"debug_id": "n\/a"
}
Line 506: 2024-09-25 09:17:46: (checkout_process) ==> End authorizeOrderWe are unable to process your PayPal Checkout payment at this time. Please contact us for assistance.
From my standpoint as the customer, everything looked fine: logged into Paypal, selected payment method, clicked confirm.
Any hints as to what needs to be done?
Thank you.
Deleting original post. We had accidentally clicked on the EDIT order button which caused the error in question. Doesn't seem related to the PayPal Restful module.
I posted elsewhere about this same warning from Paypal, and only then saw the reference to this thread. I see that it is valid for 1.58. Can anyone confirm that it will work with 1.57 as well?
The module discussed in this thread is different from the built-in PayPal modules in Zen Cart.
See https://docs.zen-cart.com/user/payment/paypal_overview/ for details.
Is it just me or is the following backwards?
Attachment 20812
If I select True, everyone can use CC from PayPal.
If I select False, only registered customers can use CC from PayPal.
Ther wording seems to be correct, but the action when selecting True or False seems to be reversed.
:huh:
Do you consider the same results if you slightly modify what is being stated?
Essentially, it is say do you want to limit and the default is no. (false)
However, selecting that I do want to limit, gives access to all.
Perhaps "If you are using One Page Checkout, you can limit credit card payments. Who can access your store's credit card processing? Default Everyone.
Everyone
No One
Account Holders Only
That covers all the bases although I can't think of a scenario where a business would want to deny CC processing completely unless they're a street-corner, cash-only business.:P
I'm probably number 1189 on the top ten list of PHP knowledge but I do have an extensive English background with three English majors in the family. They all guessed that the selection of false let everyone process. All based on the emphasis on limit.
Cindy - I posted this on the GitHub repository, but thought I'd include it here in case it helps get more attention:
Version v1.0.4.
I am noticing an issue in our system. When a customer places a PayPal order (not all the time, but a lot), the STATE that is being sent to PayPal is "California" where we are based.
For example, in ZenCart database, the address in both the Customer and the Orders Table is:
1234 Newbank Circle Suite 207
Dublin, OH 43017
But when I pull up PayPal to look if the address is verified, I see this on PayPal:
1234 Newbank Circle Suite 207
Dublin, CA 43017
I have seen this with multiple orders now, where the order looks fine in ZenCart, but when pulling it up on PayPal's website, they have "CA" as the state.
Is this a bug or perhaps is there something I need to check with my current installation?
I checked the "ipn_1732546861_MsKv7.log" file created for this example order and it shows "CA" as the state being pushed to PayPal, so something within our installation is sending that incorrect state to PayPal.
UPDATE: This doesn't seem to happen with every order.......but when it did, I noticed another WARNING LOG for the same transaction (ipn_1732546861_MsKv7-warning.log)
It seems that that warning log may indicate what is causing CA to be passed as the state to PayPal?
Yeah, I don't know either. I just noticed that at the exact same time as the PayPal transaction occurred (with the incorrect STATE being passed to PayPal), I had that corresponding IPN log file, which references the ipn_main_handler.php.
If you look at the contents of that IPN warning log, you can see that it references the PayPal IPN as well as the freeoptions.php.
When I look at my Payment Modules, only paypalr is enabled. The other two (paypaldp and paypalwpp) are orange (disabled). Perhaps I should actually REMOVE them and see if that helps?
Well, I removed the old paypalwpp and paypald from the system. Yet, I still get the incorrect STATE passed to PayPal with the paypal restful module.
Only seems to happen with the Paypal Restful module on certain orders (and both using PayPal or Credit Card).
For example:
Order comes in like this:
Customer Address:
Joe Shmoe
119A Jamestown Dr
P.O. Box 303
Sitka Alaska 99835
Sub-Total: $59.90
United States Postal Service (Priority MailŪ (2 - 3 days)): $13.79
Shipping Insurance (Recommended): $3.00
Total: $76.69
But on PayPal, I see:
Joe Shmoe
119A Jamestown Dr
P.O. Box 303
Sitka, CA 99835
UNITED STATES
In the logs, I see this warning created at the same exact time:
Everything gets processed fine in PayPal EXCEPT for the customer's state. Whenever this happens, the customer's state always says "CA" instead of their actual state on the ZenCart side of the transaction.Code:[11-Dec-2024 05:36:56 America/Los_Angeles] Request URI: /store/ipn_main_handler.php, IP address: 173.0.81.140, Language id 1
#0 /home/domain/public_html/store/ipn_main_handler.php(352): zen_debug_error_handler()
--> PHP Warning: Undefined array key "payment" in /home/domain/public_html/store/ipn_main_handler.php on line 352.
[11-Dec-2024 05:36:56 America/Los_Angeles] Request URI: /store/ipn_main_handler.php, IP address: 173.0.81.140, Language id 1
#0 /home/domain/public_html/store/ipn_main_handler.php(353): zen_debug_error_handler()
--> PHP Warning: Undefined array key "shipping" in /home/domain/public_html/store/ipn_main_handler.php on line 353.
[11-Dec-2024 05:36:56 America/Los_Angeles] Request URI: /store/ipn_main_handler.php, IP address: 173.0.81.140, Language id 1
#0 /home/domain/public_html/store/includes/modules/shipping/freeoptions.php(104): zen_debug_error_handler()
#1 /home/domain/public_html/store/includes/modules/shipping/freeoptions.php(85): freeoptions->update_status()
#2 /home/domain/public_html/store/includes/classes/shipping.php(91): freeoptions->__construct()
#3 /home/domain/public_html/store/ipn_main_handler.php(353): shipping->__construct()
--> PHP Warning: Attempt to read property "delivery" on null in /home/domain/public_html/store/includes/modules/shipping/freeoptions.php on line 104.
[11-Dec-2024 05:36:56 America/Los_Angeles] Request URI: /store/ipn_main_handler.php, IP address: 173.0.81.140, Language id 1
#0 /home/domain/public_html/store/includes/modules/shipping/freeoptions.php(104): zen_debug_error_handler()
#1 /home/domain/public_html/store/includes/modules/shipping/freeoptions.php(85): freeoptions->update_status()
#2 /home/domain/public_html/store/includes/classes/shipping.php(91): freeoptions->__construct()
#3 /home/domain/public_html/store/ipn_main_handler.php(353): shipping->__construct()
--> PHP Warning: Trying to access array offset on value of type null in /home/domain/public_html/store/includes/modules/shipping/freeoptions.php on line 104.
[11-Dec-2024 05:36:56 America/Los_Angeles] Request URI: /store/ipn_main_handler.php, IP address: 173.0.81.140, Language id 1
#0 /home/domain/public_html/store/includes/modules/shipping/freeoptions.php(104): zen_debug_error_handler()
#1 /home/domain/public_html/store/includes/modules/shipping/freeoptions.php(85): freeoptions->update_status()
#2 /home/domain/public_html/store/includes/classes/shipping.php(91): freeoptions->__construct()
#3 /home/domain/public_html/store/ipn_main_handler.php(353): shipping->__construct()
--> PHP Warning: Trying to access array offset on value of type null in /home/domain/public_html/store/includes/modules/shipping/freeoptions.php on line 104.
[11-Dec-2024 05:36:56 America/Los_Angeles] Request URI: /store/ipn_main_handler.php, IP address: 173.0.81.140, Language id 1
#0 /home/domain/public_html/store/includes/modules/order_total/ot_shipping.php(67): zen_debug_error_handler()
#1 /home/domain/public_html/store/includes/classes/order_total.php(72): ot_shipping->process()
#2 /home/domain/public_html/store/ipn_main_handler.php(365): order_total->process()
--> PHP Warning: Undefined array key "country_id" in /home/domain/public_html/store/includes/modules/order_total/ot_shipping.php on line 67.
Why is this a big deal?
Because PayPal will only offer Seller Protection if you ship to the exact same address in their posted transaction. But if all the addresses are showing the incorrect state, it could violate any Seller Protection that we have. Meaning, any chargebacks or disputes will be automatically found in the buyer's favor even if you have proper proof of delivery (because you are delivering to the correct address and not to the incorrect address on PayPal).
Getting an issue related to PayPal REST checkout when products have a checkbox in their attribute configuration. Zen Cart 2.0.1. PP Rest 1.0.4. Bootstrap 3.7.4.
In CreatePayPalOrderRequest.php, should the constructor strip off the "_chk" that is added to the customers_basket_attributes entry on includes/classes/shopping_cart.php line 355?
Log here:
Code:[14-Dec-2024 06:38:46 America/Denver] Request URI: /shop/index.php?main_page=checkout_confirmation, IP address: 2601:188:c404:8520:39bb:5ae1:e114:c498, Language id 1
#0 [internal function]: zen_debug_error_handler()
#1 /home2/client/public_html/shop/includes/classes/db/mysql/query_factory.php(714): trigger_error()
#2 /home2/client/public_html/shop/includes/classes/db/mysql/query_factory.php(659): queryFactory->show_error()
#3 /home2/client/public_html/shop/includes/classes/db/mysql/query_factory.php(299): queryFactory->set_error()
#4 /home2/client/public_html/shop/includes/modules/payment/paypal/PayPalRestful/Zc2Pp/CreatePayPalOrderRequest.php(291): queryFactory->Execute()
#5 /home2/client/public_html/shop/includes/modules/payment/paypal/PayPalRestful/Zc2Pp/CreatePayPalOrderRequest.php(237): PayPalRestful\Zc2Pp\CreatePayPalOrderRequest->isProductPhysical()
#6 /home2/client/public_html/shop/includes/modules/payment/paypal/PayPalRestful/Zc2Pp/CreatePayPalOrderRequest.php(98): PayPalRestful\Zc2Pp\CreatePayPalOrderRequest->getItems()
#7 /home2/client/public_html/shop/includes/modules/payment/paypalr.php(1102): PayPalRestful\Zc2Pp\CreatePayPalOrderRequest->__construct()
#8 /home2/client/public_html/shop/includes/modules/payment/paypalr.php(940): paypalr->createPayPalOrder()
#9 /home2/client/public_html/shop/includes/classes/payment.php(248): paypalr->pre_confirmation_check()
#10 /home2/client/public_html/shop/includes/modules/pages/checkout_confirmation/header_php.php(92): payment->pre_confirmation_check()
#11 /home2/client/public_html/shop/index.php(35): require('/home2/client...')
--> PHP Fatal error: MySQL error 1054: Unknown column '3_chk7' in 'where clause' :: SELECT products_attributes_id
FROM zen_products_attributes_download
WHERE products_attributes_id IN (
SELECT products_attributes_id
FROM zen_products_attributes
WHERE products_id = 1807
AND ((options_id = 30 AND options_values_id = 0) OR (options_id = 32 AND options_values_id = 0) OR (options_id = 31 AND options_values_id = 0) OR (options_id = 33 AND options_values_id = 0) OR (options_id = 3_chk7 AND options_values_id = 7) OR (options_id = 5 AND options_values_id = 11)
)
) ==> (as called by) /home2/client/public_html/shop/includes/modules/payment/paypal/PayPalRestful/Zc2Pp/CreatePayPalOrderRequest.php on line 291 <== in /home2/client/public_html/shop/includes/classes/db/mysql/query_factory.php on line 714.
Yep, thanks for the report. GitHub issue for tracking: https://github.com/lat9/paypalr/issues/46
I'll be adding the highlighted castings to line 292 of /includes/modules/payment/paypal/PayPalRestful/Zc2Pp/CreatePayPalOrderRequest.php
Code:$attributes_where = [];
foreach ($product['attributes'] as $next_att) {
$attributes_where[] = '(options_id = ' . (int)$next_att['option_id'] . ' AND options_values_id = ' . (int)$next_att['value_id'] . ')';
}
Thank you for the quick resolution!
Verified working perfectly!
v1.0.5 of the payment-module is now available for download: https://www.zen-cart.com/downloads.php?do=file&id=2382
This release contains changes associated with the following GitHub issues:
#40: Send current billing address for PayPal Wallet payments.
#41: Correct alternate payment-module pre-selected on checkout_payment page
#42: Don't send payment request to PayPal if there are existing payment-related messages to be displayed.
#43: Use language-constants for additional status-history record's information.
#44: Remove intervening spaces from addresses' postal_codes.
#46: Correct MySQL error when checking out with a checkbox-type attributed product.
Just wondering if this supports UK at all? Only reason as was using Paypal Payment Pro for many years but had to stop as 3DS 2.0 was enforced for UK, and had to switch to Breathe Pay dedicated card handler on zencart. Which is good, but its happened quite a few times where a customer gets an error and payment goes through but not order (I have to push manually). Which never happened with Paypal Payment Pro I might add, it was 100% or thereabouts reliable. So am keeping eye on this module and it is paypal based, but not noticed anybody UK based using it, but I could be wrong? Thanks in advance.
Just checking. Does the setting "Accept Credit Cards?" only apply to one-page checkout as if I set it to false, PayPal still gives the person the option to pay via a credit card rather than log in.
Interesting failure on a 1.5.8a site. We are not seeing this on any 2.#.# site.
hornedlizardcreationsDOTcom
PHP 7.4
MySQL 5.5.5-10.5.27-MariaDB
Edit Orders 4.7.0
Bootstrap 3.6.0
OPC 2.5.0
PayPal Restful 1.0.5
Square Webpay 1.0.4
Restful is easily reset by turning it back on. However, at the first attempted use, an error is thrown and the mod is turned off.Code:[07-Jan-2025 23:26:15 America/Denver] Request URI: /index.php?main_page=checkout_one_confirmation, IP address: **************, Language id 1
#1 trigger_error() called at [/includes/modules/payment/paypalr.php:556]
#2 paypalr->setConfigurationDisabled() called at [/includes/modules/payment/paypalr.php:1188]
#3 paypalr->getOrderTotalsInfo() called at [/includes/modules/payment/paypalr.php:1093]
#4 paypalr->createPayPalOrder() called at [/includes/modules/payment/paypalr.php:954]
#5 paypalr->pre_confirmation_check() called at [/includes/classes/payment.php:248]
#6 payment->pre_confirmation_check() called at [/includes/modules/pages/checkout_one_confirmation/header_php.php:161]
#7 require(/includes/modules/pages/checkout_one_confirmation/header_php.php) called at [/index.php:35]
--> PHP Warning: Setting configuration disabled: The required notifications in the order_total.php class were not applied; the payment module cannot place orders. in /includes/modules/payment/paypalr.php on line 556.
Turning on the debug for Restful shows the following before the above log file.
-------------------------------------------------------------------------------------Code:************************************************
2025-01-07 23:25:36: () validateCredentials: Checking ().The curlPost (v1/oauth2/token) request was successful (200).
{
"token_type": "Bearer",
"expires_in": 31312
}
************************************************
************************************************
2025-01-07 23:25:37: () validateCredentials: Checking ().The curlPost (v1/oauth2/token) request was successful (200).
{
"token_type": "Bearer",
"expires_in": 31312
}
************************************************
Turning on the debug for Restful shows the following after the above log file.
Code:************************************************
2025-01-07 23:25:56: (checkout_one) validateCredentials: Checking (1).
TokenCache::get, using saved access-token; expires in 31293 seconds.
************************************************
************************************************
2025-01-07 23:26:05: (checkout_one) validateCredentials: Checking (1).
TokenCache::get, using saved access-token; expires in 31284 seconds.
************************************************
************************************************
2025-01-07 23:26:15: (checkout_one_confirmation) validateCredentials: Checking (1).
TokenCache::get, using saved access-token; expires in 31274 seconds.
************************************************
************************************************
2025-01-07 23:26:15: (checkout_one_confirmation) pre_confirmation_check starts ...
We are unable to process your PayPal Checkout payment at this time. Please contact us for assistance.
Works fine on my 1.5.8a site with fewer plug-ins:
PHP 7.4
MySQL 5.5.5-10.11.6-MariaDB
Bootstrap 3.6.2
PayPal Restful 1.0.5
When using paypal restful live. I get the following error log when the order is confirmed.
I know this is connected to the old paypal method which I have set to retired. Have I missed somthing at the paypal end?Code:[09-Jan-2025 11:22:32 Europe/London] Request URI: /sales/ipn_main_handler.php, IP address: 173.0.81.140, Language id 1
#0 /ipn_main_handler.php(352): zen_debug_error_handler()
--> PHP Warning: Undefined array key "payment" in /ipn_main_handler.php on line 352.
[09-Jan-2025 11:22:32 Europe/London] Request URI: /sales/ipn_main_handler.php, IP address: 173.0.81.140, Language id 1
#0 /ipn_main_handler.php(353): zen_debug_error_handler()
--> PHP Warning: Undefined array key "shipping" in /ipn_main_handler.php on line 353.
[09-Jan-2025 11:22:32 Europe/London] Request URI: /sales/ipn_main_handler.php, IP address: 173.0.81.140, Language id 1
#0 /includes/modules/shipping/freeshipper.php(92): zen_debug_error_handler()
#1 /includes/modules/shipping/freeshipper.php(79): freeshipper->update_status()
#2 /includes/classes/shipping.php(103): freeshipper->__construct()
#3 /includes/classes/shipping.php(50): shipping->initialize_modules()
#4 /ipn_main_handler.php(353): shipping->__construct()
--> PHP Warning: Attempt to read property "delivery" on null in /includes/modules/shipping/freeshipper.php on line 92.
[09-Jan-2025 11:22:32 Europe/London] Request URI: /sales/ipn_main_handler.php, IP address: 173.0.81.140, Language id 1
#0 /includes/modules/shipping/freeshipper.php(92): zen_debug_error_handler()
#1 /includes/modules/shipping/freeshipper.php(79): freeshipper->update_status()
#2 /includes/classes/shipping.php(103): freeshipper->__construct()
#3 /includes/classes/shipping.php(50): shipping->initialize_modules()
#4 /ipn_main_handler.php(353): shipping->__construct()
--> PHP Warning: Trying to access array offset on value of type null in /includes/modules/shipping/freeshipper.php on line 92.
[09-Jan-2025 11:22:32 Europe/London] Request URI: /sales/ipn_main_handler.php, IP address: 173.0.81.140, Language id 1
#0 /includes/modules/shipping/freeshipper.php(92): zen_debug_error_handler()
#1 /includes/modules/shipping/freeshipper.php(79): freeshipper->update_status()
#2 /includes/classes/shipping.php(103): freeshipper->__construct()
#3 /includes/classes/shipping.php(50): shipping->initialize_modules()
#4 /ipn_main_handler.php(353): shipping->__construct()
--> PHP Warning: Trying to access array offset on value of type null in /includes/modules/shipping/freeshipper.php on line 92.
Good idea, I assume that this would not allow me to process any historic PayPal transactions?Quote:
Perhaps disabling IPNs from the PayPal account?