快速开始
先看接入步骤、必备能力和推荐阅读路径。
集成模式
对比 Apple Pay / Google Pay、信用卡组件和组合模式。
核心 API
直接进入订阅申请、查询、取消和退款接口。
PCI DSS 严格禁止在
WebView 或 iframe 中嵌入信用卡输入页。请始终在受信任的浏览器环境中完成卡信息采集与支付授权,避免合规风险和敏感数据泄露。快速开始
2
选择接入模式
订阅支付提供两种接入模式:PayUrl 跳转模式(服务端获取授权链接,跳转到 HaiPay 托管页面完成支付)和 JS CDN 嵌入模式(使用客户端令牌在你自己的页面中嵌入支付组件)。根据你的收银台设计和前端开发能力选择合适的方式。
3
接入 API、通知与取消能力
完成订阅申请后,需要能查询订阅状态、处理扣款回调,并在用户侧提供取消订阅入口。详细字段与调试入口放在本页下方的 API Reference 卡片中。
集成模式
订阅支付提供两种接入模式,它们的核心区别在于支付页面由谁承载:- PayUrl 跳转模式
- JS 嵌入模式
最简单的接入方式。商户服务端调用订阅申请接口后,使用返回的 示例代码(服务端获取 payUrl 后的前端跳转)适用建议
payUrl 将用户跳转到 HaiPay 托管的支付页面,用户在该页面完成授权和首笔支付。接入流程1
服务端调用订阅申请接口
商户服务端向 HaiPay 发起 订阅申请,在请求中传入订阅金额、周期、回调地址以及可选的
cancelUrl 等必要参数。2
获取 payUrl 并跳转
接口返回中包含
payUrl 字段,商户将用户浏览器重定向到该地址。3
用户完成支付
用户在 HaiPay 托管页面完成信用卡信息填写和支付授权。支付完成后,HaiPay 会将用户重定向回商户的
callBackUrl;如果用户在支付页面取消支付且传递了 cancelUrl,则可点击返回到该地址;同时向 notifyUrl 发送异步通知。- 希望最快速度完成订阅接入,前端改动最少。
- 对支付页面的 UI 没有强定制需求。
- 移动端 H5 场景下,跳转体验通常也能满足需求。
核心 API
详细请求字段、响应结构和在线调试,请直接进入 API Reference:订阅申请
创建订阅订单,拉起用户授权并完成首笔订阅支付。
查询订阅
查询订阅状态、平台订阅号和扣款记录。
取消订阅
由商户主动发起取消,停止后续周期扣款。
异步通知
当订阅状态变更或周期扣款完成时,HaiPay 会向商户在订阅申请时提供的notifyUrl 推送异步通知。
收到通知后,请在响应体中返回 SUCCESS(大写)。
- 订阅状态通知
- 订阅扣款通知
当订阅状态发生变更时触发(如订阅成功、订阅取消、订阅失败等)。
关键业务规则
测试卡号
模拟支付成功 使用以下测试卡号,CVC 填写任意 3 位数字,有效期填写任意未来日期:4242424242424242
- 卡号:
4000000000009995 - 无效月份:
13 - 无效 CVV:
99
常见理解问题
什么时候看这个页面,什么时候看 API Reference?
什么时候看这个页面,什么时候看 API Reference?
这个页面用于理解产品能力、选择接入模式和把握业务规则。进入开发联调阶段后,请直接查看 订阅 API Reference 获取完整字段、示例报文和调试入口。
为什么订阅业务必须强调退订入口和站外通知?
为什么订阅业务必须强调退订入口和站外通知?
订阅类交易更容易产生用户争议。清晰的授权、通知和退订能力可以显著降低拒付、投诉和风控问题,这也是订阅业务能否稳定上线的关键前置条件。
生产环境出现 Unsupported region: CN 怎么处理?
生产环境出现 Unsupported region: CN 怎么处理?
这通常表示当前生产环境不支持该地区,或当前测试方式与目标地区配置不匹配。请先确认商户配置、目标市场和支付方式组合,再联系 HaiPay 支持团队确认生产可用范围。
PayUrl 跳转和 JS CDN 嵌入应该怎么选?
PayUrl 跳转和 JS CDN 嵌入应该怎么选?
如果你希望最快上线、前端改动最少,选 PayUrl 跳转模式即可。如果你需要自定义收银台 UI、希望用户不离开你的页面完成支付,选 JS CDN 嵌入模式。两种模式都通过同一个订阅申请接口发起,区别只在于你使用返回的
payUrl 还是 clientToken。inBankCode 和 paymentMethods 应该传哪个?
inBankCode 和 paymentMethods 应该传哪个?
两个参数二选一,不可同时传入,也不可同时为空。如果只使用一种支付方式,传
inBankCode;如果需要同时支持多种支付方式(如组合模式),传 paymentMethods。注意 paymentMethods 暂时仅支持前置组件组合模式使用,其他模式请继续使用 inBankCode。如果只想尽快做一个现代化订阅页面,推荐哪种模式?
如果只想尽快做一个现代化订阅页面,推荐哪种模式?
如果选择 JS CDN 嵌入模式,优先使用”组合模式”。它能在一个容器内统一呈现多种支付方式,页面更完整,用户理解成本更低,前端开发量也更可控。

