From 544f62dbc5d04afe228283f5307f11e5cac32f35 Mon Sep 17 00:00:00 2001 From: Matt Van Horn <455140+mvanhorn@users.noreply.github.com> Date: Wed, 18 Mar 2026 00:12:23 -0700 Subject: [PATCH 1/2] feat(payments): add order number to webhook payload Include the order number in the webhook payload so consumers can identify which order a payment notification belongs to. Fixes #13858 --- app/services/payments/webhook_payload.rb | 3 ++- spec/services/payments/webhook_payload_spec.rb | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/app/services/payments/webhook_payload.rb b/app/services/payments/webhook_payload.rb index 92745fd1ff..ee17d2f214 100644 --- a/app/services/payments/webhook_payload.rb +++ b/app/services/payments/webhook_payload.rb @@ -13,7 +13,7 @@ module Payments payment: @payment.slice(:updated_at, :amount, :state), enterprise: @enterprise.slice(:abn, :acn, :name) .merge(address: @enterprise.address.slice(:address1, :address2, :city, :zipcode)), - order: @order.slice(:total, :currency).merge(line_items: line_items) + order: @order.slice(:number, :total, :currency).merge(line_items: line_items) }.with_indifferent_access end @@ -31,6 +31,7 @@ module Payments def self.test_order order = Spree::Order.new( + number: "R555555555", total: 0.00, currency: "AUD", ) diff --git a/spec/services/payments/webhook_payload_spec.rb b/spec/services/payments/webhook_payload_spec.rb index 572ee71d4a..466dd8d8b5 100644 --- a/spec/services/payments/webhook_payload_spec.rb +++ b/spec/services/payments/webhook_payload_spec.rb @@ -42,6 +42,7 @@ RSpec.describe Payments::WebhookPayload do } }, order: { + number: order.number, total: order.total, currency: order.currency, line_items: line_items @@ -72,6 +73,7 @@ RSpec.describe Payments::WebhookPayload do } }, order: { + number: "R555555555", total: 0.00, currency: "AUD", line_items: [ From aa3fa59a32358a7abbdf4616c843ffa7d1edcbda Mon Sep 17 00:00:00 2001 From: Matt Van Horn <455140+mvanhorn@users.noreply.github.com> Date: Thu, 19 Mar 2026 18:05:49 -0700 Subject: [PATCH 2/2] fix(spec): include order number in webhook_service_spec expected data The webhook_payload now includes :number in the order slice, but webhook_service_spec still expected the order hash without it. Since hash_including only matches at the top level, the nested order hash comparison was strict and failed. Co-Authored-By: Claude Opus 4.6 (1M context) --- spec/services/payments/webhook_service_spec.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/spec/services/payments/webhook_service_spec.rb b/spec/services/payments/webhook_service_spec.rb index cab2394c8e..3f65bea4ef 100644 --- a/spec/services/payments/webhook_service_spec.rb +++ b/spec/services/payments/webhook_service_spec.rb @@ -56,6 +56,7 @@ RSpec.describe Payments::WebhookService do } }, order: { + number: order.number, total: order.total, currency: order.currency, line_items: line_items