Skip to content

Commit 35dccc3

Browse files
Version bump 4.2.0 (#531)
* Enhance webhook handling by adding filter rzp_order_id * Version bump 4.2.0
1 parent 9bf5e5f commit 35dccc3

File tree

3 files changed

+37
-6
lines changed

3 files changed

+37
-6
lines changed

Controller/Payment/Webhook.php

Lines changed: 35 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -251,7 +251,7 @@ public function execute()
251251

252252
$this->setWebhookData($post, $orderWebhookData['entity_id'], true, $paymentId, $amountPaid);
253253

254-
$this->setWebhookNotifiedAt($orderWebhookData['entity_id']);
254+
$this->setWebhookNotifiedAt($orderWebhookData['entity_id'], $post);
255255
}
256256
}
257257
}
@@ -286,12 +286,27 @@ protected function getOrderData($orderId) : array
286286
return $collection->getData();
287287
}
288288

289-
protected function setWebhookNotifiedAt($entity_id)
289+
protected function setWebhookNotifiedAt($entity_id, $post)
290290
{
291291
$order = $this->order->load($entity_id);
292292

293293
$orderLink = $this->_objectManager->get('Razorpay\Magento\Model\OrderLink')
294-
->load($order->getEntityId(), 'order_id');
294+
->getCollection()
295+
->addFieldToFilter('order_id', $order->getEntityId())
296+
->addFieldToFilter('rzp_order_id', $post['payload']['payment']['entity']['order_id'])
297+
->getFirstItem();
298+
299+
if (!$orderLink->getId()) {
300+
$properties = [
301+
"error_message" => "OrderLink not found at setWebhookNotifiedAt",
302+
"file_path" => "controller/Payment/Webhook.php",
303+
"exception_type" => null,
304+
"notes" => null
305+
];
306+
307+
$this->trackPluginInstrumentation->rzpTrackDataLake('razorpay.std.webhook.setdata.failed', $properties);
308+
return;
309+
}
295310

296311
$orderLink->setRzpWebhookNotifiedAt(time());
297312
$orderLink->save();
@@ -312,7 +327,23 @@ protected function setWebhookData($post, $entityId, $webhookVerifiedStatus, $pay
312327
$order = $this->order->load($entityId);
313328

314329
$orderLink = $this->_objectManager->get('Razorpay\Magento\Model\OrderLink')
315-
->load($order->getEntityId(), 'order_id');
330+
->getCollection()
331+
->addFieldToFilter('order_id', $order->getEntityId())
332+
->addFieldToFilter('rzp_order_id', $post['payload']['payment']['entity']['order_id'])
333+
->getFirstItem();
334+
335+
if (!$orderLink->getId()) {
336+
337+
$properties = [
338+
"error_message" => "OrderLink not found at setWebhookData",
339+
"file_path" => "controller/Payment/Webhook.php",
340+
"exception_type" => null,
341+
"notes" => "OrderLink not found",
342+
];
343+
344+
$this->trackPluginInstrumentation->rzpTrackDataLake('razorpay.std.webhook.setdata.failed', $properties);
345+
return;
346+
}
316347

317348
$existingWebhookData = $orderLink->getRzpWebhookData();
318349

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "razorpay/magento",
33
"description": "Razorpay Magento 2.0 plugin for accepting payments.",
4-
"version": "4.1.9",
4+
"version": "4.2.0",
55
"require": {
66
"php": "7.*|^8.1",
77
"razorpay/razorpay": "2.*"

etc/module.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?xml version="1.0"?>
22
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
3-
<module name="Razorpay_Magento" setup_version="4.1.9">
3+
<module name="Razorpay_Magento" setup_version="4.2.0">
44
<sequence>
55
<module name="Magento_Sales" />
66
<module name="Magento_Payment" />

0 commit comments

Comments
 (0)