跳转到主要内容
印度有独特的支付基础设施,以UPI(占数字交易的60%以上)和Rupay卡为主。Dodo Payments支持这两者,并完全符合RBI的订阅授权要求。

为什么印度支付方式重要

UPI主导地位

UPI每月处理超过100亿笔交易。许多印度客户没有国际卡。

低交易成本

UPI几乎没有交易费用。非常适合高交易量、低价值的交易。

订阅支持

与大多数替代支付方式不同,UPI和Rupay支持通过RBI授权的定期付款。

支持的方法

方法类型订阅最小金额
UPI收款二维码 / VPA是*₹1
Rupay信用卡是*₹1
Rupay借记卡是*₹1
*订阅需要符合RBI的授权,并具有特殊处理规则。

配置

API方法类型

类型描述
upi_collect通过二维码或VPA输入的UPI
credit包括Rupay的信用卡
debit包括Rupay的借记卡

示例:印度专用结账

const session = await client.checkoutSessions.create({
  product_cart: [{ product_id: 'prod_123', quantity: 1 }],
  allowed_payment_method_types: [
    'upi_collect',
    'credit',
    'debit'
  ],
  billing_currency: 'INR',
  customer: {
    email: 'customer@example.in',
    name: 'Priya Sharma',
    phone_number: '+919876543210'
  },
  billing_address: {
    country: 'IN',
    zipcode: '560001'
  },
  return_url: 'https://example.com/success'
});

UPI的要求

为了在结账时显示UPI:
  1. 账单国家必须是印度 (IN)
  2. 货币必须是INR
  3. 对于非印度商家:自适应货币必须启用
如果您是非印度商家且未启用自适应货币,UPI将无法提供给您的客户。

带有RBI授权的订阅

印度支付方式的订阅在RBI(印度储备银行)规定下运行,有独特的要求。

RBI授权的工作原理

授权类型

订阅金额授权类型限制
低于₹15,000按需授权₹15,000
₹15,000或以上固定金额授权精确订阅金额
**对于计划更改非常重要:**如果升级导致费用超过现有授权限制,则费用将失败,客户必须重新授权。

48小时处理延迟

这是与国际卡支付最大的不同:
1

费用发起(第0天)

在计划续订日期,Dodo与银行发起费用。
2

预扣通知

客户收到来自其银行的即将扣款的通知。
3

48小时窗口

客户可以在此期间通过其银行应用程序取消授权。
4

扣款完成(约48-51小时)

在48小时之后(加上最多3个小时的银行处理时间),资金被扣款。
5

Webhook发送

payment.succeeded webhook在实际扣款后发送,而不是在发起时。
请勿在费用发起时授予权益。 请等待payment.succeeded webhook,它在计划扣款日期后大约48-51小时到达。

处理48小时窗口

// DON'T do this:
async function handleSubscriptionRenewal(subscription) {
  // ❌ Bad: Granting access immediately when charge is initiated
  grantPremiumAccess(subscription.customer_id);
}

// DO this:
async function handlePaymentWebhook(event) {
  if (event.type === 'payment.succeeded') {
    // ✅ Good: Only grant access after payment is confirmed
    grantPremiumAccess(event.data.customer_id);
  }
  
  if (event.type === 'payment.failed') {
    // Handle failed payment (mandate cancelled, insufficient funds)
    revokePremiumAccess(event.data.customer_id);
  }
}

为印度订阅处理Webhook事件

事件时间操作
subscription.created授权签署记录订阅开始
payment.succeeded约48小时后费用日期授予/继续访问
payment.failed扣款失败通知客户,暂停访问
subscription.on_hold付款失败提示更新支付方式
subscription.active付款后重新激活恢复访问

测试

UPI测试ID

状态UPI ID
成功success@upi
失败failure@upi

印度卡测试号码

品牌场景卡号到期CVV
Visa成功457623891277145006/32123
Visa拒绝470613121121212306/32123
Mastercard成功540916266938103406/32123
Mastercard拒绝510510510510510006/32123

最佳实践

构建您的应用程序以处理费用发起与实际付款之间的间隔。考虑:
  • 订阅访问的宽限期
  • 清晰地向客户沟通处理时间
  • 基于Webhook的履行,而不是基于日期
客户可以随时通过其银行应用程序取消授权。监控subscription.on_hold webhook,并提示客户重新订阅或更新支付方式。
对于可变定价(例如,基于使用),考虑是否₹15,000的按需授权足够。如果费用可能超过此金额,客户需要重新授权。
对于印度客户,UPI应为主要支付选项。许多用户由于熟悉度和较低摩擦,更倾向于使用UPI而不是卡。

故障排除

检查:
  1. 账单国家设置为IN
  2. 货币设置为INR
  3. 如果是非印度商家:自适应货币启用了吗?
  4. upi_collect 包含在 allowed_payment_method_types 中吗?
解决方案: 验证账单地址已包含country: "IN"billing_currency: "INR"
原因: 新费用金额超过现有授权限制(₹15,000阈值)。解决方案: 客户必须更新支付方式,以建立具有正确限制的新授权。
原因: 客户可能在48小时窗口中取消了授权,或者其银行拒绝了扣款。解决方案: 客户需要重新授权该授权或更新其支付方式。
原因: 银行API延迟可能会将处理时间延长2-3个小时。解决方案: 这是预期的。构建您的系统以处理总长达约51小时的可变延迟。
原因: 在RBI规定中的边缘情况 — 在处理窗口期间取消授权不会立即取消订阅。解决方案: 下一次扣款将失败并且订阅将移动至on_hold。监控payment.failed的webhooks。

相关页面