Skip to content

Commit

Permalink
SecurePayAU: Send order ID for payments with stored cards
Browse files Browse the repository at this point in the history
As per XML spec (https://auspost.com.au/payments/docs/securepay/resources/API_Card_Storage_and_Scheduled_Payments.pdf )

test/unit/gateways/secure_pay_au_test.rb
24 tests, 106 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

test/remote/gateways/remote_secure_pay_au_test.rb
18 tests, 57 assertions, 0 failures, 0 errors, 0 pendings, 2 omissions, 0 notifications
100% passed

Co-authored-by: David Cook <[email protected]>
  • Loading branch information
andypalmer and dacook committed May 13, 2021
1 parent e8fc249 commit 60ee332
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 2 deletions.
1 change: 1 addition & 0 deletions lib/active_merchant/billing/gateways/secure_pay_au.rb
Original file line number Diff line number Diff line change
Expand Up @@ -203,6 +203,7 @@ def build_periodic_item(action, money, credit_card, options)
end
xml.tag! 'amount', amount(money)
xml.tag! 'periodicType', PERIODIC_TYPES[action] if PERIODIC_TYPES[action]
xml.tag! 'transactionReference', options[:order_id] if options[:order_id]

xml.target!
end
Expand Down
3 changes: 2 additions & 1 deletion test/remote/gateways/remote_secure_pay_au_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ def setup
@credit_card = credit_card('4242424242424242', { month: 9, year: 15 })

@options = {
order_id: '2',
order_id: 'order123',
billing_address: address,
description: 'Store Purchase'
}
Expand Down Expand Up @@ -166,6 +166,7 @@ def test_successful_triggered_payment
assert response = @gateway.purchase(12300, 'test1234', @options)
assert_success response
assert_equal response.params['amount'], '12300'
assert_equal response.params['ponum'], 'order123'

assert_equal 'Approved', response.message
end
Expand Down
10 changes: 9 additions & 1 deletion test/unit/gateways/secure_pay_au_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ def setup
@amount = 100

@options = {
order_id: '1',
order_id: 'order123',
billing_address: address,
description: 'Store Purchase'
}
Expand Down Expand Up @@ -79,6 +79,14 @@ def test_purchase_with_stored_id_calls_commit_periodic
@gateway.purchase(@amount, '123', @options)
end

def test_periodic_payment_submits_order_id
stub_comms(@gateway, :ssl_request) do
@gateway.purchase(@amount, '123', @options)
end.check_request do |method, endpoint, data, headers|
assert_match(/<transactionReference>order123<\/transactionReference>/, data)
end.respond_with(successful_purchase_response)
end

def test_purchase_with_creditcard_calls_commit_with_purchase
@gateway.expects(:commit).with(:purchase, anything)

Expand Down

0 comments on commit 60ee332

Please sign in to comment.