Changeset 3757857 for wallet-up/trunk/src/API/WebhookHandler.php
- Timestamp:
- 10/21/2026 07:26:01 AM (3 weeks ago)
- File:
-
- 1 edited
-
wallet-up/trunk/src/API/WebhookHandler.php (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
wallet-up/trunk/src/API/WebhookHandler.php
r3757748 r3757857 481 481 } 482 482 483 if (!$isTestMode && empty($event->livemode)) { 484 $this->errorHandler->log('Stripe webhook ignored: a test-mode event (' . $event->type . ') reached a store that takes live payments'); 485 $this->updateWebhookStatus($webhookId, 'completed', 200, microtime(true) - $startTime, 'Test-mode event ignored on a live store'); 486 return new WP_REST_Response(['success' => true, 'ignored' => 'test_mode_event'], 200); 487 } 488 483 489 $eventType = $event->type; 484 490 $object = $event->data->object; … … 606 612 if ($orderKey && $order->get_order_key() !== $orderKey) { 607 613 $this->errorHandler->log("Stripe webhook: order key mismatch for order {$orderId}"); 614 return; 615 } 616 617 $paidMinor = (int) ($paymentIntent->amount_received ?? $paymentIntent->amount ?? 0); 618 $dueMinor = \WalletUpPro\Core\Payments\PaymentGatewayHandler::toMinorUnits((float) $order->get_total(), (string) $order->get_currency()); 619 $sameCurrency = strtolower((string) ($paymentIntent->currency ?? '')) === strtolower((string) $order->get_currency()); 620 if (!$order->is_paid() && (!$sameCurrency || $paidMinor < $dueMinor)) { 621 $this->errorHandler->log("Stripe webhook: PaymentIntent {$paymentIntent->id} does not cover order {$orderId}; order left unpaid"); 622 /* translators: %s: Stripe PaymentIntent ID */ 623 $order->add_order_note(sprintf(esc_html__('Stripe reported a payment (PaymentIntent: %s) that does not match this order total, so the order was not marked as paid.', 'walletup'), $paymentIntent->id)); 624 $order->save(); 608 625 return; 609 626 }
Note:
See TracChangeset
for help on using the changeset viewer.