This option is enabled by checking "Validate Relay Response HTML" in the "Relay Response" tab of the Administration console.
If enabled, E-xact performs an extra validation of the relay response passed back by the merchant server. In order to pass this validation, the merchant server must calculate an HMAC-MD5 digest of the response content and include the digest as part of the response header.
To calculate this HMAC-MD5 digest, the merchant server should use:
- key - the Transaction Key from the payment page configuration
- message - the HTML content to be returned for the relay response
To include this digest in the relay response, the merchant server should:
- add an HTTP header field called 'Signature'
- set the field value to be a concatenation of the x_login value of the payment page and the digest, separated by a colon
For example, using the values in the table below:
Field | Value |
x_login | WSP-GOODS-70 |
Transaction Key | AL81Li7D4laXYDtpfgO_lInQ |
relay response HTML content | <html><head></head><body>hello from merchant server</body></html> |
Following are snippets of the digest calculation in a few languages:
Ruby
require 'openssl' OpenSSL::HMAC.hexdigest(OpenSSL::Digest::Digest.new('md5'), 'AL81Li7D4laXYDtpfgO_lInQ', '<html><head></head><body>hello from merchant server</body></html>')
Python
import hmac import hashlib h = hmac.new('AL81Li7D4laXYDtpfgO_lInQ','<html><head></head><body>hello from merchant server</body></html>',hashlib.md5) h.hexdigest()
PHP
hash_hmac('md5','<html><head></head><body>hello from merchant server</body></html>', 'AL81Li7D4laXYDtpfgO_lInQ');
the resulting HMAC-MD5 digest would be
1ba55452cc7e799324c69af2b675346b
and the Signature header for the response would look like:
Signature: WSP-GOODS-70:1ba55452cc7e799324c69af2b675346b
Was this article helpful?
That’s Great!
Thank you for your feedback
Sorry! We couldn't be helpful
Thank you for your feedback
Feedback sent
We appreciate your effort and will try to fix the article