# 代码示例
# Python 代码示例
import hashlib, hmac
def verify(appkey, token, timestamp, signature):
return signature == hmac.new(
key=appkey,
msg='{}{}'.format(timestamp, token),
digestmod=hashlib.sha256).hexdigest()
1
2
3
4
5
6
2
3
4
5
6
# Java 代码示例
(依赖 apache codec (opens new window))
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import org.apache.commons.codec.binary.Hex;
public boolean verify(String appkey, String token, long timestamp,
String signature) throws NoSuchAlgorithmException, InvalidKeyException {
Mac sha256HMAC = Mac.getInstance("HmacSHA256");
SecretKeySpec secretKey = new SecretKeySpec(appkey.getBytes(),"HmacSHA256");
sha256HMAC.init(secretKey);
StringBuffer buf = new StringBuffer();
buf.append(timestamp).append(token);
String signatureCal = new String(Hex.encodeHex(sha256HMAC.doFinal(buf
.toString().getBytes())));
return signatureCal.equals(signature);
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# php 代码示例
function verify($appkey,$token,$timestamp,$signature){
$hash="sha256";
$result=hash_hmac($hash,$timestamp.$token,$appkey);
return strcmp($result,$signature)==0?1:0;
}
1
2
3
4
5
2
3
4
5
快速体验
如果您目前没有可接收数据的 url
, 您可以使用 requestb.in (opens new window) 提供的服务来体验下 WebHook.
- 点击
Create a RequestBin
, 生成一个url
- 在 SendCloud 中配置此
url
用以接收WebHook
的事件数据 - 执行某种操作 (请求, 发送, 打开) 之后, 就可以在
requestb.in
的相关页面里看到此事件所 POST 的数据