- 20 Jan 2022
- 3 Minutes to read
- Contributors
- Print
- DarkLight
- PDF
API Approve
- Updated on 20 Jan 2022
- 3 Minutes to read
- Contributors
- Print
- DarkLight
- PDF
Request message
Input request parameter | Description |
Merchant Authentication Token | Y2ExNzE2NDBlZjEyNmZhZjRmMmRmY2Iy |
MessageID | 10 |
TransactionID | 12345678901234567890 |
MerchantID | STSPayOneM |
estn | cmdWd0xLS0dUU2JrZjJDTUhzczNKYXpPNUhCaGhuM1BITzYyUXZnTDZSMVNLQ |
PaymentMethod | 2 |
Parameters Order | |
MerchantID, MessageID, PaymentMethod, TransactionID, estn Note: The parameters are ordered alphabetically in the secure hash. | |
The input to the Secure Hash generation routine | |
Y2ExNzE2NDBlZjEyNmZhZjRmMmRmY2IySTSPayOneM10212345678901234567890 cmdWd0xLS0dUU2JrZjJDTUhzczNKYXpPNUhCaGhuM1BITzYyUXZnTDZSMVNLQjk4NW9KOHV | |
Output | |
460bd68a6c0a020408b55f3751184f39e9c537914d45b586f5960c1a1d3a66fe |
Response message
Input response parameter | Description |
Merchant Authentication Token | Y2ExNzE2NDBlZjEyNmZhZjRmMmRmY2Iy |
Response.MessageID | 10 |
Response.TransactionID | 12345678901234567890 |
Response.StatusCode | 00000 |
Response.StatusDescription | Payment processed successfully |
Response.GatewayStatusCode | 0000 |
Response.GatewayName | TestGateway |
Response.Amount | 2000 |
Response.CurrencyISOCode | 840 |
Response.MerchantID | STSPayOneM |
Parameters Order | |
Response.Amount, Response.CurrencyISOCode, Response.GatewayName, Response.GatewayStatusCode, Response.MerchantID, Response.MessageID, Note: The parameters are ordered alphabetically in the secure hash. | |
The input to the Secure Hash generation routine | |
Y2ExNzE2NDBlZjEyNmZhZjRmMmRmY2Iy2000840TestGateway0000STSPayOneM1000000Pa | |
Output | |
b8289e077922b40d382cd2275354d845811bc25f6ca13ea8d45420e3f5100229 |
Sample Code (Java)
//Step 1: Generate Secure Hash
String SECRET_KEY = "Y2FkMTdlOWZiMzJjMzY4ZGFkMzhkMWIz"; // Use Yours, Please Store Your
Secret Key in safe Place(e.g. database)
// put the parameters in a TreeMap to have the parameters to have them sorted
alphabetically.
Map <String,String> parameters = new TreeMap<String,String> ();
String transactionId=String.valueOf(System.currentTimeMillis());
// fill required parameters
parameters.put("MessageID", "1");
parameters.put("TransactionID", transactionId);
parameters.put("MerchantID", "ANBRedirectM");
parameters.put("PaymentMethod", "1");
//it's real length is very longer than this this value is just a sample
parameters.put("PARes", URLEncoder.encode("eJzFV2mTokoW/Ssd9T4a3ewiHZQvkh2","UTF-8"));
//in case of sadad payment
//parameters.put("estn", "Test123");
//for Card Payment (conditional;paymentMethod=1)
parameters.put("CardNumber", "4012001045873335");
parameters.put("ExpiryDateYear", "01");
parameters.put("ExpiryDateMonth", "19");
parameters.put("SecurityCode", "123");
parameters.put("CardHolderName", "1");
//Create an Ordered String of The Parameters Map with Secret Key
StringBuilder orderedString = new StringBuilder();
orderedString.append(SECRET_KEY);
for (String treeMapKey : parameters.keySet()) {
orderedString.append(parameters.get(treeMapKey));
}
System.out.println("orderdString "+orderedString);
// Generate SecureHash with SHA256
// Using DigestUtils from appache.commons.codes.jar Library
String secureHash = new String(DigestUtils.sha256Hex(orderedString.toString()).getBytes());
Other Request Code (.Net /PHP)
Sample Code (.Net)
1. String SECRET_KEY = "Y2FkMTdlOWZiMzJjMzY4ZGFkMzhkMWIz"; // Use Yours, Please
Store Your Secret Key in safe Place(e.g.database)
2.
3. // put the parameters in a SortedDictionary to have the parameters to have
them sorted alphabetically.
4. SortedDictionary<string, string> parameters = new SortedDictionary<String, S
tring>(StringComparer.Ordinal);
5.
6. long
transactionId = (DateTime.Now.Ticks / TimeSpan.TicksPerMillisecond); //getting time
in milliseconds
7.
8. // fill required parameters
9. parameters.Add("MessageID", "1");
10. parameters.Add("TransactionID", transactionId.ToString());
11. parameters.Add("MerchantID", "ANBRedirectM");
12. parameters.Add("PaymentMethod", "1");
13.
14. //it's real length is very longer than this this value is just a
sample
15. parameters.Add("PARes", HttpContext.Current.Server.UrlEncode("eJzFV2mT
okoW/Ssd9T4a3ewiHZQvkh2"));
16. //in case of sadad payment
17. //parameters.Add("estn", "Test123");
18. //for Card Payment (conditional;paymentMethod=1)
19. parameters.Add("CardNumber", "4012001045873335");
20. parameters.Add("ExpiryDateYear", "01");
21. parameters.Add("ExpiryDateMonth", "19");
22. parameters.Add("SecurityCode", "123");
23. parameters.Add("CardHolderName", "1");
24.
25. //Create an Ordered String of The Parameters SortedDictionary with
Secret Key
26. StringBuilder orderedString = new StringBuilder();
27. orderedString.Append(SECRET_KEY);
28. foreach (KeyValuePair<string, string> kv in parameters)
29. {
30. orderedString.Append(kv.Value);
31. }
32. Console.WriteLine("orderdString " + orderedString);
33.
34. // Generate SecureHash with SHA256
35. SHA256 sha256;
36. byte[] bytes, hash;
37. string secureHash = string.Empty;
38.
39. bytes = Encoding.UTF8.GetBytes(orderedString.ToString().ToString());
40. sha256 = SHA256Managed.Create();
41. hash = sha256.ComputeHash(bytes);
42. foreach (byte x in hash)
43. {
44. secureHash += String.Format("{0:x2}", x);
45. }
46.
47. Console.WriteLine("Secure Hash: " + secureHash.ToString());
48.
Sample Code (PHP)
1. <?php
2. //Step 1: Generate Secure Hash
3. $SECRET_KEY = "Y2FkMTdlOWZiMzJjMzY4ZGFkMzhkMWIz"; // Use Yours, Please Store
Your Secret Key in safe Place(e.g. database)
4. // put the parameters in a TreeMap to have the parameters to have them sorted
alphabetically.
5. $parameters = [];
6. $transactionId = (int)microtime(true)*1000; //output to be like: 1495004320389
7.
8. // fill required parameters
9. $parameters["MessageID"] = "1";
10. $parameters["TransactionID"] = $transactionId;
11. $parameters["MerchantID"] = "ANBRedirectM";
12. $parameters["PaymentMethod"] = "1";
13.
14. //it's real length is very longer than this this value is just a sample
15. $parameters["PARes"] = urlencode("eJzFV2mTokoW/Ssd9T4a3ewiHZQvkh2");
16.
17. //in case of sadad payment
18. //$_SESSION["estn"] = "Test123";
19.
20. //for Card Payment (conditional;paymentMethod=1)
21. $parameters["CardNumber"] = "4012001045873335";
22. $parameters["ExpiryDateYear"] = "01";
23. $parameters["ExpiryDateMonth"] = "19";
24. $parameters["SecurityCode"] = "123";
25. $parameters["CardHolderName"] = "1";
26. ksort($parameters);
27.
28. //Create an Ordered String of The Parameters Map with Secret Key
29. $orderedString = $SECRET_KEY;
30. foreach($parameters as $param) {
31. $orderedString .= $param;
32. }
33. echo ("orderdString " . $orderedString);
34.
35. // Generate SecureHash with SHA256
36. $secureHash = hash('sha256', $orderedString, false);
37.