百度云推送应该是现在推送领域的后起之秀了,做的不错,但是问题在于REST API设计的太复杂了...尤其是那个签名验证方法
复杂就复杂吧,还不给提供做好的接口,只能用户自己去拼了...
虽然这个页面http://developer.baidu.com/wiki/index.php?title=docs/cplat/push/api中说的挺清楚的,还是会有一些误会,这里记录下来:
1、基础算法:
百度用了一个php代码作为例子:
/**
* $secret_key //应用的secret key
* $method //GET或POST
* $url url
* $arrContent //请求参数(包括GET和POST的所有参数,不含计算的sign)
* return $sign string
**/
function genSign($secret_key, $method, $url, $arrContent) {
$gather = $method.$url;
ksort($arrContent);
foreach($arrContent as $key => $value) {
$gather .= $key.'='.$value;
}
$gather .= $secret_key;
$sign = md5(urlencode($gather));
return $sign