TypeError: quote_from_bytes() expected bytes,Django付款跳转去支付宝链接页面时提示quote_from_bytes() expected bytes的 解决方案

Django付款跳转去支付宝链接页面时提示quote_from_bytes() expected bytes错误,如下:

 

 当时代码如下:

SDK对象对接支付宝支付的接口,得到登录页的地址

from luffyapi.libs import alipay_zf
from django.conf import settings
order_string = alipay_zf.alipay.api_alipay_trade_page_pay(
        out_trade_no=out_trade_no,
        total_amount=float(total_amount),
        subject=subject,
        return_url=settings.RETURN_URL,
        notify_url=settings.NOTIFY_URL
        )

# 这里的return_url和notify_url一定要是字符串,
# 否则就会报错quote_from_bytes() expected bytes

错误原因

如下所示:

这里纯粹就是自己当时没注意手欠,在这两个回调地址后面加了逗号,导致python的语法中认为是一个元组

# 错误原因:下面地址
RETURN_URL="https://www.luffycity.com/free-course" ,  
NOTIFY_URL="https://www.luffycity.com/free-course" ,

# 在python语法中python解释器认为上面的代码是元组,跟下面代码相同
# 而这里的值只要不是字符串,
# 支付宝就会抛出:quote_from_bytes() expected bytes的报错
RETURN_URL=("https://www.luffycity.com/free-course" , )  
NOTIFY_URL=("https://www.luffycity.com/free-course" , )

 

 解决方案:

只需要将这里的逗号去除即可,如下:

 

 这样,重新访问接口,就不会出现 quote_from_bytes() expected bytes 的异常现象了

posted @ 2022-06-19 14:05  _yessir  阅读(1081)  评论(0)    收藏  举报