使用Stripe CLI触发payment_intent.succeeded无邮箱数据,如何测试?
解决方案
方法1:直接为stripe trigger命令追加自定义邮箱参数
Stripe CLI的trigger指令支持通过--add参数注入自定义字段到生成的测试资源中,只需一条命令即可生成带邮箱的payment_intent.succeeded事件:
stripe trigger payment_intent.succeeded --add customer[email]=test_payer@example.com
执行后生成的事件会自动关联带指定邮箱的测试Customer对象,所有原本为NULL的email字段会自动填充对应值。
方法2:手动走完整支付流程(更贴近真实业务场景)
如果需要完全匹配线上业务的字段结构,可通过CLI手动走完支付链路,所有字段完全可控:
- 先创建带指定邮箱的测试客户,记录返回的客户ID(格式为
cus_xxx)
stripe customers create --email="real_scenario_test@example.com" --name="Test Payer"
- 创建关联该客户的PaymentIntent,记录返回的支付意图ID(格式为
pi_xxx)
stripe payment_intents create --amount=1000 --currency=cny --customer=cus_xxx
- 用官方测试卡确认支付,自动触发成功事件
stripe payment_intents confirm pi_xxx --payment-method=pm_card_visa
真实业务的邮箱字段位置说明
正常线上场景下你可以固定取两个位置的邮箱:
- 如果你是先创建客户再关联支付:取
data.object.customer对象下的email字段 - 如果你是直接获取用户提交的账单邮箱:取
data.object.charges.data[0].billing_details.email字段
内容的提问来源于stack exchange,提问作者cazort
相关产品推荐
相关产品推荐

