当使用Stripe作为Apple Pay的支付处理器时,出现"Payment Not Completed"错误的解决方法如下所示:
import stripe
stripe.api_key = "你的API密钥"
session = stripe.checkout.Session.create(
payment_method_types=['card'],
line_items=[{
'price_data': {
'currency': 'usd',
'product_data': {
'name': 'Product Name',
},
'unit_amount': 1000,
},
'quantity': 1,
}],
mode='payment',
success_url='https://example.com/success',
cancel_url='https://example.com/cancel',
payment_intent_data={
'capture_method': 'manual',
},
payment_method_options={
'card': {
'request_three_d_secure': 'any',
},
},
)
@app.route('/webhook', methods=['POST'])
def webhook():
payload = request.get_data()
sig_header = request.headers.get('Stripe-Signature')
try:
event = stripe.Webhook.construct_event(payload, sig_header, endpoint_secret)
# 处理支付成功逻辑
if event['type'] == 'payment_intent.succeeded':
payment_intent = event['data']['object']
# 进行订单处理逻辑
# ...
except Exception as e:
return str(e), 400
return 'success'
通过检查以上几个方面,你应该能够解决"Payment Not Completed"错误,并成功处理Apple Pay的支付。请根据你的具体需求和代码环境进行适当的调整。