@@ -217,14 +217,16 @@ public function handleManualRefund(Transaction $transaction): void
217217 */
218218 public function handleIpn (Event $ event , Order $ order ): void
219219 {
220+ $ payment = $ event ->data ['object ' ];
221+
220222 $ transaction = Transaction::proxy ()
221223 ->newQuery ()
222- ->where ('key ' , $ event -> data [ ' object ' ] ['id ' ])
223- ->firstOr (function () use ($ order , $ event ): Transaction {
224+ ->where ('key ' , $ payment ['id ' ])
225+ ->firstOr (function () use ($ order , $ payment ): Transaction {
224226 return $ this ->pay (
225227 $ order ,
226- $ event -> data [ ' object ' ] ['amount ' ] / 100 ,
227- ['key ' => $ event -> data [ ' object ' ] ['id ' ]]
228+ $ payment ['amount ' ] / 100 ,
229+ ['key ' => $ payment ['id ' ]]
228230 );
229231 });
230232
@@ -236,21 +238,21 @@ public function handleIpn(Event $event, Order $order): void
236238 */
237239 public function handleIrn (Event $ event , Order $ order ): void
238240 {
239- foreach ( $ event ->data ['object ' ][ ' refunds ' ][ ' data ' ] as $ refund ) {
240- $ transaction = $ order -> refunds -> first (
241- static function ( Transaction $ transaction) use ( $ refund ): bool {
242- return $ transaction-> key === $ refund[ ' id ' ];
243- },
244- function () use ( $ order , $ refund ): Transaction {
245- return $ this -> refund (
246- $ order ,
247- $ refund [ ' amount ' ] / 100 ,
248- [ ' key ' => $ refund ['id ' ]]
249- );
250- }
251- );
252-
253- $ transaction -> markAsCompleted ();
254- }
241+ $ refund = $ event ->data ['object ' ];
242+
243+ $ transaction = $ order -> refunds -> first (
244+ static function ( Transaction $ transaction) use ( $ refund): bool {
245+ return $ transaction -> key === $ refund [ ' id ' ];
246+ },
247+ function () use ( $ order , $ refund): Transaction {
248+ return $ this -> refund (
249+ $ order ,
250+ $ refund ['amount ' ] / 100 ,
251+ [ ' key ' => $ refund [ ' id ' ]]
252+ );
253+ }
254+ );
255+
256+ $ transaction -> markAsCompleted ();
255257 }
256258}
0 commit comments