TypeError:razorpay Webhook秘密验证错误的编码不包含字符串参数

时间:2019-08-08 15:36:27

标签: django webhooks razorpay

我正在尝试验证Webhook是否来自Razorpay,但出现以下错误。

TypeError:不带字符串参数的编码

代码如下:

webhook_secret = MY_WEBHOOK_SECRET
signature = request.headers['X-Razorpay-Signature']
jsondata = json.loads(request.body)
client = razorpay.Client(auth=(MY_KEY, MY_SIGNATURE))
verify = client.utility.verify_webhook_signature(jsondata, signature, webhook_secret)

最后一行出现错误。有人可以帮我弄这个吗?谢谢!

回溯(最近通话最近):   内部文件“ C:\ Users \ Sreekanth \ Anaconda3 \ lib \ site-packages \ django \ core \ handlers \ exception.py”,第34行     响应= get_response(请求)   文件“ C:\ Users \ Sreekanth \ Anaconda3 \ lib \ site-packages \ django \ core \ handlers \ base.py”,行115,位于_get_response中     响应= self.process_exception_by_middleware(e,请求)   文件“ C:\ Users \ Sreekanth \ Anaconda3 \ lib \ site-packages \ django \ core \ handlers \ base.py”,行_get_response中的第113行     响应= wraped_callback(请求,* callback_args,** callback_kwargs)   文件“ C:\ Users \ Sreekanth \ Anaconda3 \ lib \ site-packages \ django \ views \ decorators \ csrf.py”,第54行,在wrapped_view中     返回view_func(* args,** kwargs)   文件“ C:\ Users \ Sreekanth \ Documents \ BoosterKick_software \ BoosterKick \ pages \ views.py”,行168,在razorpay_webhook中     验证= client.utility.verify_webhook_signature(jsondata,签名,webhook_secret)   文件“ C:\ Users \ Sreekanth \ Anaconda3 \ lib \ site-packages \ razorpay \ utility \ utility.py”,第25行,位于verify_webhook_signature中     self.verify_signature(正文,签名,秘密)   文件“ C:\ Users \ Sreekanth \ Anaconda3 \ lib \ site-packages \ razorpay \ utility \ utility.py”,第30行,在verify_signature中     正文=字节(正文,'utf-8') TypeError:没有字符串参数的编码

1 个答案:

答案 0 :(得分:1)

webhook_secret = MY_WEBHOOK_SECRET
signature = request.headers['X-Razorpay-Signature']
jsondata = json.loads(request.body)
client = razorpay.Client(auth=(MY_KEY, MY_SIGNATURE))
client.utility.verify_webhook_signature(json.dumps(jsondata, separators=(',', ':')), signature, webhook_secret)

这对我有用。