/**
* 登陆签名生成
* @param $query_params
* @param $app_key
* @param $app_secret
* @return string
*/
private function loginSign($query_params, $app_key, $app_secret) :string
{
$query_params['appKey'] = $app_key;
$query_params['appSecret'] = $app_secret;
ksort($query_params);
$query_arr = [];
foreach ($query_params as $k => $v) $query_arr[] = "$k=$v";
$query_str = implode('&', $query_arr);
return hash("sha256", $query_str);
}
下单
/**
* 下单签名生成
* (1)被签名字符串中的关键信息需要按照key值做升序排列(a-z升序排序);
* (2)空值(空字符串或null值)不参与签名运算;
* (3)将被签名字符串转成字节数组时必须指定编码为utf-8。
* @param $query_params
* @param $app_secret
* @return string
*/
private function placeOrderSign($query_params, $app_secret_pay) :string
{
ksort($query_params);
$query_arr = [];
foreach( $query_params as $k => $v ) {
if(empty($v)) continue;
$query_arr[] = "$k=$v";
}
$query_str = implode('&', $query_arr) . '&'. strtolower(md5($app_secret_pay));
return strtolower(md5($query_str));
}
支付回调
/**
* 支付回调
* @param $query_params
* @param $app_key
* @return string
*/
private function payCallBackSign($query_params, $app_secret_pay) :string
{
ksort($query_params);
$query_arr = [];
foreach ($query_params as $k => $v) {
if (empty($v) || $k == 'signMethod' || $k == 'signature') continue;
$query_arr[] = $k . "=" . $v;
}
$query_str = implode('&', $query_arr) . '&'. strtolower(md5($app_secret_pay));
return strtolower(md5($query_str));
}
网友评论