让我一步一步指导你:
注意:以下是Merchant Page 2.0请求签名生成的示例:
第 1 步:在文件顶部添加这些变量
private final static String KEY_MERCHANT_IDENTIFIER = "merchant_identifier";
private final static String KEY_SERVICE_COMMAND = "service_command";
private final static String KEY_LANGUAGE = "language";
private final static String KEY_ACCESS_CODE = "access_code";
private final static String KEY_MERCHANT_REFERENCE = "merchant_reference";
private final static String MERCHANT_IDENTIFIER = "YOUR_MERCHANT_IDENTIFIER";
private final static String ACCESS_CODE = "YOUR_ACCESS_CODE";
private final static String SHA_TYPE = "SHA-256";
private final static String SHA_REQUEST_PHRASE = "YOUR_SHA_REQUEST_PHRASE ";
private final static String LANGUAGE_TYPE = "en";
确保您使用的是 Payfort 提供的 MERCHANT_IDENTIFIER、ACCESS_CODE 和 SHA_REQUEST_PHRASE。
第 2 步:创建字符串
String concatenatedString = SHA_REQUEST_PHRASE +
KEY_ACCESS_CODE + "=" + ACCESS_CODE +
KEY_LANGUAGE + "=" + LANGUAGE_TYPE +
KEY_MERCHANT_IDENTIFIER + "=" + MERCHANT_IDENTIFIER +
KEY_MERCHANT_REFERENCE + "=" + YOUR_MERCHANT_REFERENCE +
KEY_SERVICE_COMMAND + "=" + "TOKENIZATION" +
SHA_REQUEST_PHRASE;
YOUR_MERCHANT_REFERENCE 是您唯一的商家参考。每个请求都应该是唯一的
第 3 步: 创建一个函数以从您的
第 2 步中的 concatenatedString
private String createSignature(String s) {
try {
// Create MD5 Hash
MessageDigest digest = MessageDigest.getInstance(SHA_TYPE);
digest.update(s.getBytes());
byte messageDigest[] = digest.digest();
return String.format("%0" + (messageDigest.length * 2) + 'x', new BigInteger(1, messageDigest));
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
return "";
}
终于
通过在步骤 2 中传递您的 concatenatedString 来调用 createSignature 函数。
String signature = createSignature(concatenatedString);