# 代码示例

# 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

# 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

WEBHOOK解析_示例下载

# 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

快速体验

如果您目前没有可接收数据的 url, 您可以使用 requestb.in (opens new window) 提供的服务来体验下 WebHook.

  1. 点击 Create a RequestBin, 生成一个 url
  2. 在 SendCloud 中配置此 url 用以接收 WebHook 的事件数据
  3. 执行某种操作 (请求, 发送, 打开) 之后, 就可以在 requestb.in 的相关页面里看到此事件所 POST 的数据
上次更新: 2025/03/25 10:38:59