Skip to main content
版本: 2.0.x

交易签名

为了系统安全的目的,在发送交易请求时,您需要将此参数添加到header:

标头内容
Content-Typetext/plain
X-Transaction-Signature{transaction_signature}

所需参数

  1. Transaction Secret: 商户后台取得(API 对接 -> QR Ph交易密钥)
  2. Request Body: 交易请求内容

生成步骤

  1. 使用 HMAC 算法,对 Request Body 以 Transaction Secret 作为密钥进行签名(hash)
  2. 使用 base64 编码签名的结果。
public static String transactionSignature(String requestBody, String transactionSecret) {
try {
Mac sha256_HMAC = Mac.getInstance("HmacSHA256");
SecretKeySpec secretKey = new SecretKeySpec(transactionSecret.getBytes(StandardCharsets.UTF_8), "HmacSHA256");
sha256_HMAC.init(secretKey);

byte[] hashBytes = sha256_HMAC.doFinal(requestBody.getBytes(StandardCharsets.UTF_8));

String signature = Base64.getEncoder().encodeToString(hashBytes);

return signature;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}