javascript - 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 添加
解决方案
推荐阅读
- react-native - 路由“ActivityFeed”的组件必须是 React 组件
- javascript - 我可以做些什么来存储类的实例并在反应应用程序的上下文中管理状态
- kubernetes - 为一个 pod 请求所有可用的大页面
- swift - 如何解开结构中的可选项并使用 if 语句打印可选项?
- typescript - 如何在 TypeScript 中设置元组?
- javascript - 下载 Excel 后如何停止显示正在加载的 GIF
- python - 使用 Django 读取数组中的字典到 HTML
- audio - 如何在 FFmpeg 的压缩器滤波器中指定本底噪声
- excel - 未找到 VBA 消息自动化错误元素
- javascript - 修改新 Twitter UI 的 chrome 扩展