We are using Magento Enterprise 1.14.0.1 with a payment bridge and CyberSource.
Through CyberSource's dashboard we are able to see a "merchant reference number", which is the same length and same characters as an md5 hash. I believe that number is passed in to CyberSource from Magento.
What I'm looking for is a way to pair up the transactions in CyberSource with our Magento orders, but I'm not sure how that "merchant reference number" is being generated.
I grep'd code/core/Enterprise for md5 and have tried md5sum-ing various bits of order information (each of: entity_id, increment_id, quote_id) and seeing if there's a match, but no luck so far.
Any ideas?
Solved! Go to Solution.
code/core/Enterprise/Pbridge/Model/Payment/Method/Pbridge.php#_importResultToPayment() is setting the Request ID used by CyberSource which makes its way into the db:
SELECT sh.comment, so.entity_id, so.increment_id FROM sales_flat_order_status_history sh INNER JOIN sales_flat_order so ON sh.parent_id = so.entity_id WHERE comment LIKE 'Original gateway transaction id:%';
I just need a CyberSource ID = Magento ID lookup and seeing where the CyberSource ID is being set should be enough to work out a solution. Thanks for the responses
I'm really surprised that there's no linking reference number in CyberSource to help you out. You can't bank on the reference number if it's hashed. Can you screenshot a sample record in CyberSource for me?
I spoke with Cybersource and they said the Merchant Reference Number is untouched by them, it's whatever our system sends. There are more fields for the items purchased below what's in the screenshot, but nothing that seems to relate to our Magento order/quote number.
What plugin are you using to connect with cybersource? Can you provide me with a link?
We're using the Payment Bridge in Magento Enterprise to connect to CyberSource.
You can contact a third party Magento developer company to solve this for you, or ask the developer to fix it.
code/core/Enterprise/Pbridge/Model/Payment/Method/Pbridge.php#_importResultToPayment() is setting the Request ID used by CyberSource which makes its way into the db:
SELECT sh.comment, so.entity_id, so.increment_id FROM sales_flat_order_status_history sh INNER JOIN sales_flat_order so ON sh.parent_id = so.entity_id WHERE comment LIKE 'Original gateway transaction id:%';
I just need a CyberSource ID = Magento ID lookup and seeing where the CyberSource ID is being set should be enough to work out a solution. Thanks for the responses