我正在尝试验证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:没有字符串参数的编码
答案 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)
这对我有用。