我正在尝试在Flask项目中设置Paypal付款。我正在从Paypal复制智能付款按钮代码,并将其粘贴到模板中。付款流程有效的购买响应详细信息位于javascript中。如何将响应返回到我的Flask应用,以便确认付款?
这在我的模板中:
<div id="paypal-button-container"></div>
<script src="https://www.paypal.com/sdk/js?client-id=fake¤cy=USD" data-sdk-integration-source="button-factory"></script>
<script>
paypal.Buttons({
style: {
shape: 'pill',
color: 'gold',
layout: 'vertical',
label: 'paypal',
},
//method: 'POST',
createOrder: function(data, actions) {
return actions.order.create({
purchase_units: [{
amount: {
value: '10'
}
}]
});
},
onApprove: function(data, actions) {
return actions.order.capture().then(function(details) {
// Show a success message to the buyer
// window.write('Transaction completed by ' + details.payer.name.given_name + '!');
console.log("success");
return details;
})
}
}).render('#paypal-button-container');
</script>
和应用代码:
@app.route('/upgrade/<username>', methods=['GET','POST'])
@login_required
def upgrade(username):
user = User.query.filter_by(username=username).first()
result = request.get_json()
flash(result)
return render_template('upgrade.html', user=user)
Flash消息返回空dict。
答案 0 :(得分:0)
Flask是一个服务器框架,因此您应该使用以下前端UI:https://developer.paypal.com/demo/checkout/#/pattern/server
并使用服务器上的两条相应路由对其进行解析,一条用于“设置交易”,另一条用于“捕获交易”,记录在这里:https://developer.paypal.com/docs/checkout/reference/server-integration/
您可以在这些调用中使用Checkout-Python-SDK。