Seb*_*olm 76
用途hash_hmac:
$sig = hash_hmac('sha256', $string, $secret)
Run Code Online (Sandbox Code Playgroud)
$secret你的钥匙在哪里?
Pas*_*TIN 13
这个hash_hmac()功能可以帮助,在这里:
使用HMAC方法生成键控哈希值
例如,以下代码部分:
$hash = hash_hmac('sha256', 'hello, world!', 'mykey');
var_dump($hash);
Run Code Online (Sandbox Code Playgroud)
给出以下输出:
string '07a932dd17adc59b49561f33980ec5254688a41f133b8a26e76c611073ade89b' (length=64)
Run Code Online (Sandbox Code Playgroud)
并且,要获取可以使用的散列算法列表,请参阅hash_algos().
这是使用HMAC-SHA-256调用PSP之前的数据传输交易签名(瑞士电子支付解决方案)的示例。
希望它能对一些开发人员有所帮助。
$hmacKey = 30911337928580013;
$merchantId = 1100004624;
$amount = $total * 100;
$currency = 'EUR';
$refno = $orderId;
// HMAC Hex to byte
$secret = hex2bin("$hmacKey");
// Concat infos
$string = $merchantId . $amount. $currency . $refno;
// generate SIGN
$sign = bin2hex(hash_hmac('sha256', $string, $secret));
Run Code Online (Sandbox Code Playgroud)
注意:商户ID和HMAC密钥均来自Datatrans文档,可从此处获得:https ://admin.sandbox.datatrans.com/showcase/doc/Technical_Implementation_Guide.pdf