首页 > 解决方案 > Flask Stripe 集成 - JSON 对象必须是 str 而不是字节

问题描述

我的 virtualenv 是 3.5.2 并且文档状态至少为 3.6,但整个站点是在 3.5.2 中构建的,所以我希望有人可能知道解决方法......

我正在关注此处的文档并在返回时不断收到错误消息{"error": "the JSON object must be str, not 'bytes'"}

create-payment-intent 函数

@app.route('/create-payment-intent', methods=['GET', 'POST'])
def create_payment():
#data = json.loads(request.data) #update1
data = json.loads(request.get_data(as_text=True)) #update2
print('data is ',data,'',type(data))
try:
    data = json.loads(request.data)
    intent = stripe.PaymentIntent.create(
        amount=calculate_order_amount(data['items']),
        currency='usd'
    )
    return jsonify({
      'clientSecret': intent['client_secret']
    })
except Exception as e:
    return jsonify(error=str(e)), 403

当我打开页面时,返回错误消息,前端/控制台中没有错误

在此处输入图像描述

有一个简单的解决方法吗?我尝试将数据转换为字符串data = str(json.loads(request.data)),但没有成功...

下图为 update1 添加

在此处输入图像描述

下图为 update2 添加

在此处输入图像描述

标签: javascriptpythonjsonflaskstripe-payments

解决方案


推荐阅读