如何模拟先失败后成功的Stripe退款?需用哪种测试信用卡?
测试模式下模拟Stripe先失败后成功的退款场景
操作步骤及对应测试卡号
1. 触发首次退款失败
使用Stripe测试卡号 4000000000000002 创建一笔支付订单,这个卡号的测试特性是:首次发起退款会直接失败,返回card_declined错误,原因标记为insufficient_funds。
创建支付的示例代码(Python):
import stripe stripe.api_key = "sk_test_你的测试密钥" # 创建并确认支付意向 payment_intent = stripe.PaymentIntent.create( amount=1000, currency="usd", payment_method="pm_card_4000000000000002", confirm=True, )
发起首次退款(会失败):
try: refund = stripe.Refund.create( payment_intent=payment_intent.id, amount=1000 ) except stripe.error.CardError as e: print(f"退款失败: {e.user_message}") # 此时退款对象的status为failed
2. 重试退款实现成功
不需要更换支付方式,直接再次调用退款API即可。在Stripe测试环境中,这个卡号的第二次退款请求会自动成功,退款状态变为succeeded。
重试退款的示例代码:
refund = stripe.Refund.create( payment_intent=payment_intent.id, amount=1000 ) print(f"退款成功: {refund.status}")
额外说明
- 这个测试卡号的行为是Stripe测试环境专属的,仅用于模拟先失败后成功的退款流程,生产环境中无此特性。
- 如果需要模拟其他类型的退款失败(比如账户无效、权限不足),可以通过调整测试账户的设置或结合测试webhook事件实现,但上述卡号是最直接的解决方案。
内容的提问来源于stack exchange,提问作者Karen Slon
相关产品推荐
相关产品推荐

