php 調用拼多多接口方法 生成 sign方法

目錄:

方法一:

方法二:


 方法一:

function getSign($params, $client_secret) {
    if (is_array($params)) {
        ksort($params);
        $paramsStr = '';
        array_walk($params, function ($item, $key) use (&$paramsStr) {
            $paramsStr .= sprintf('%s%s', $key, $item);
        });
        $sign = strtoupper(md5($client_secret .$paramsStr.$client_secret));
        return $sign;
    }else{
        return "";
    }
}

 

方法二:

 function getPddApi($param, $common)
{

    $client_secret= $common['client_secret'];
    $param['client_id'] = $common['client_id'];
    $param['type'] = $common['method'];
    $param['access_token'] = $common['access_token'];
    $param['data_type'] = 'JSON';
    $param['timestamp'] = getMillisecond();
    ksort($param);    //  排序
    $str = '';      //  拼接的字符串
    foreach ($param as $k => $v) $str .= $k . $v;
    $sign = strtoupper(md5($client_secret. $str . $client_secret));    //  生成簽名    MD5加密轉大寫
    $param['sign'] = $sign;
    $url = 'http://gw-api.pinduoduo.com/api/router';
    return curl_post($url, $param);
}

//  post請求
function curl_post($url, $curlPost)
{
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($ch, CURLOPT_HEADER, false);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_REFERER, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);
    $result = curl_exec($ch);
    curl_close($ch);
    return $result;
}


function getMillisecond() {
    list($microsecond , $time) = explode(' ', microtime()); //' '中間是一個空格
    return (float)sprintf('%.0f',(floatval($microsecond)+floatval($time))*1000);
}

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章