php计算获取抖音签名

//以订单详情作为案例来展示代码
//请求参数
	 $biz_params =[
	   'shop_order_id'=>$shop_order_id
	 ];

 //序列化参数
	 function marshal(array $param){
	     rec_ksort($param); // 对关联数组中的kv,执行排序,需要递归
	     $s = json_encode($param, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE); // 重新序列化,确保所有key按字典序排序
	     // 加入flag,确保斜杠不被escape,汉字不被escape
	     return $s;
	 }
 	//对参数进行排序
	function rec_ksort(array &$arr) {
       $kstring = true;
       foreach ($arr as $k => &$v) {
           if (!is_string($k)) {
               $kstring = false;
           }
           if (is_array($v)) {
              rec_ksort($v);
           }
       }
       if ($kstring) {
           ksort($arr);
       }
    }
    

  //计算签名
  function Douyinsign(string $appKey, string $appSecret, string $method, string $timestamp, string $paramJson): string {
        $paramPattern = 'app_key' . $appKey . 'method' . $method . 'param_json' . $paramJson . 'timestamp' . $timestamp . 'v2';
        $signPattern = $appSecret . $paramPattern . $appSecret;


        return hash_hmac("sha256", $signPattern, $appSecret);
    }
 //序列化后的参数
  $paramJson = marshal($biz_params);
  //获取签名
  $appid = 'xxxx';
  $key = 'xxxxx'
  $method = 'order.orderDetail';
  $timestamp = time();
  
  $sign = Douyinsign($appid,$key,$method,$timestamp,$paramJson);
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值