集成 PayPay Smart Payment 支付

Smart Payment 是 PayPay 推出的一款免密支付 JS SDK, 致力于优化买家的支付体验和提供支付成功率。它允许您将 PayPay 的功能集成到您的用户界面中,在获取买家授权后,买家在后续支付无需跳转 PayPay 应用即可完成支付。

用户体验

以下为首次支付和后续支付的用户体验:
首次支付
后续支付

体验差异

首次支付和后续支付的用户体验在 Web/WAP 端集成上没有差别,在移动端的差别如下:

支付流程

以下分别为首次支付和后续支付流程示意图:
首次支付
后续支付

集成准备

在您开始集成前,请阅读集成指南接口概述文档,了解服务端接口的集成步骤及调用接口的注意事项,并确保已完成以下预配置:
  • 已获得 client ID。
  • 已完成密钥配置。
  • 已完成异步通知接收地址的配置。
  • 集成服务端 SDK 资源包,并完成接口库安装及请求示例初始化。具体操作请参阅服务端 SDK
为保障支付流程的兼容性与安全性,以下列出了各浏览器及应用的最低版本要求,其中商户 WebView 和 PayPay 应用需运行在指定的系统版本及以上环境:
  • 浏览器版本要求:
  • 商户 WebView 需支持 iOS 11 或以上、Android 4.4(API level 19)或以上。
  • PayPay 应用需运行于 iOS 16 或以上、Android 9 或以上。

支付集成

开始集成,请按照以下步骤操作:
  1. 创建支付订单
  2. 获取跳转支付推进链接
  3. 接收异步通知

步骤 1:创建支付订单
服务端

调用 pay(单笔支付)接口,在请求中指定 paymentMethod.paymentMethodType
PAYPAY
,同时设置 paymentMethod.paymentMethodMetadata.smartPaymentEnabled
true
注意:
  • 首次支付和后续支付均需调用 pay(单笔支付)接口,并跳转返回的支付推进链接 (normalUrl)。
  • 商户侧传入的 paymentRedirectUrl 必须是 https:// 开头。
以下代码展示了请求报文的示例:
JSON
{
"order": {
  "env": {
    "osType": "IOS",
    "terminalType": "APP"
  },
  "orderAmount": {
    "currency": "JPY",
    "value": "1825"
  },
  "orderDescription": "TEST.COM",
  "referenceOrderId": "TEST4754300929"
},
"paymentAmount": {
  "currency": "JPY",
  "value": "1825"
},
"paymentMethod": {
  "paymentMethodMetadata": "{"smartPaymentEnabled":true}",
  "paymentMethodType": "PAYPAY"
},
"paymentNotifyUrl": "https://www.yourwebsite.com/notify/channel/notify",
"paymentRedirectUrl": "https://www.yourwebsite.com/redirect",
"paymentRequestId": "TEST4754300929",
"productCode": "CASHIER_PAYMENT",
"settlementStrategy": {
  "settlementCurrency": "JPY"
}
}
Antom 收到请求后会返回对应的 PayPay 支付推进链接(normalUrl),示例代码如下:
JSON
{
"normalUrl": "https://ac.alipay.com/page/antom-web-checkout-v2/payment-transition/pages/paypay/index.html?orderInfo=***test",
"paymentActionForm": "{"method":"GET","paymentActionFormType":"RedirectActionForm","redirectUrl":"https://ac.alipay.com/page/antom-web-checkout-v2/payment-transition/pages/paypay/index.html?orderInfo=***test"}",
"paymentAmount": {
"currency": "JPY",
"value": "1825"
},
"paymentCreateTime": "2025-09-16T20:48:47-07:00",
"paymentId": "20250917******450216341557",
"paymentRequestId": "PAYMENT_202*****46357_AUTO",
"redirectActionForm": {
"method": "GET",
"redirectUrl": "https://ac.alipay.com/page/antom-web-checkout-v2/payment-transition/pages/paypay/index.html?orderInfo=***test"
},
"result": {
"resultCode": "PAYMENT_IN_PROCESS",
"resultMessage": "payment in process",
"resultStatus": "U"
}
}

步骤 2:获取跳转支付推进链接
客户端

商户服务端拿到 Antom 返回的支付推进链 (normalUrl) 之后,将该地址传递给前端,由商户前端跳转至 PayPay 页面。以下为商户前端加载支付推进链接的示例代码:
Web/WAP
iOS
Android
注意
  • 支付流程需确保从 PayPay 成功跳回原浏览器页面,若无法回到原浏览器,支付将失败。
  • 在后续访问商店并进行购买时,若用户使用与首次支付相同的设备和浏览器,且浏览器 cookie 在 395 天内未被清除,则可在此期间免登录直接付款。若超过 395 天未再次购买商品,或更换了设备、浏览器,则需重新登录。
  • 无痕(隐私)模式 不支持后续免登录支付。
  • 在后续支付过程中,不得更换 PayPay 账号,否则流程无法继续。

步骤 3:接收异步通知
服务端

完成支付或支付失败时,Antom 会通过 pay(单笔支付)接口中的参数 paymentNotifyUrl 指定的地址发送异步通知(notifyPayment)。具体操作参阅支付结果异步通知。 异步通知详情请见以下表格:首次支付将返回授权及支付结果,后续支付仅返回支付结果。以下是常见场景:
Antom 提供发送异步通知的功能,同时也支持通过调用 inquiryPayment 接口主动查询支付结果。
支付成功
支付失败

最佳实践

根据买家移动端是否安装 PayPay 钱包应用,系统会提供不同的后续操作:
  • 买家已安装 PayPay 钱包应用,可以选择外跳拉起 PayPay 钱包应用,详情参考上述方案。
  • 买家未安装 PayPay 钱包应用,可以采用 WebView 应用内重定向流程,详情参考下文最佳实践。
iOS
Android
常见问题
问:授权成功但支付失败,后续支付如何处理?
答:授权后支付失败存在以下三种情况,请根据不同情况进行处理:
  • 授权成功但是支付失败,令牌在浏览器中仍然生效,因此后续支付时只展示 PayPay 的支付确认页,不跳转 PayPay 应用。
  • 首次授权时仅在 PayPay 侧完成认证回跳到商户侧,并没有再次跳转到 PayPay paypayRedirectUrl,则表示授权失败,令牌不会在浏览器中生效,需要引导买家再次授权并支付。
  • 首次授权成功后,如果买家清除浏览器缓存、清除应用数据或重装应用,将导致令牌失效,需要引导买家再次授权并支付。