<?php
// $params: 標示「參與簽章」的參數;$apiKey: 我方提供的 API Key
function generateSign($params, $apiKey)
{
ksort($params, SORT_STRING);
$pairs = array();
foreach ($params as $key => $value) {
// 陣列參數以同名 key 重複出現,順序與送出時相同
foreach ((array) $value as $v) {
$pairs[] = urlencode($key) . '=' . urlencode($v);
}
}
// urlencode 會把 ~ 編成 %7E,我方不編碼 ~,需還原
$query = str_replace('%7E', '~', implode('&', $pairs));
return md5($query . $apiKey);
}
echo generateSign(array(
"transactionID" => "deposit-20250101000001",
"channelID" => 1,
"account" => "player001",
"currency" => "CNY",
"amount" => "10.00"
), "a188va"); // 4899d19dd28e49b04e1656afb1f7dc4f