Stripe payments “的目的是什么?”;v0“;Stripe webhook API中的签名方案?
上的条带文档说明: 目前,唯一有效的签名方案是Stripe payments “的目的是什么?”;v0“;Stripe webhook API中的签名方案?,stripe-payments,Stripe Payments,上的条带文档说明: 目前,唯一有效的签名方案是v1。为了帮助测试,Stripe为测试模式事件发送一个附加签名,该签名带有一个伪v0方案 Stripe-Signature: t=1492774577, v1=5257a869e7ecebeda32affa62cdca3fa51cad7e77a0e56ff536d0ce8e108d8bd, v0=6ffbb59b2300aae63f272406069a9788598b792a944a07aba816edb039989a39 v0签名
v1
。为了帮助测试,Stripe为测试模式事件发送一个附加签名,该签名带有一个伪v0
方案
Stripe-Signature: t=1492774577,
v1=5257a869e7ecebeda32affa62cdca3fa51cad7e77a0e56ff536d0ce8e108d8bd,
v0=6ffbb59b2300aae63f272406069a9788598b792a944a07aba816edb039989a39
v0
签名以何种方式帮助测试?我可以用它做什么
如何生成
v0
签名?它只是一个随机字符串,还是一些可以验证的HMAC摘要,类似于v1
方案?如果您正在构建自己的客户端来验证Stripe的webhook事件签名,那么v0
方案可能很有用。它用于测试您的客户端是否忽略条带签名
标题中的未知方案(或者,可能在将来某个时候,不推荐的方案)
v0
摘要不使用为端点生成的签名密钥;Stripe尚未发布用于创建它的机密,因此您无法验证它
Stripe自身包含一个忽略无效方案的测试用例。例如,在Ruby库中:
should "raise a SignatureVerificationError when there are no signatures with the expected scheme" do
header = generate_header(scheme: "v0")
e = assert_raises(Stripe::SignatureVerificationError) do
Stripe::Webhook::Signature.verify_header(EVENT_PAYLOAD, header, "secret")
end
assert_match("No signatures found with expected scheme", e.message)
end