AdYen 支付对接

AdYen 支付对接
MeteorCatAdYen 是处于荷兰的支付公司, 具备有网上支付牌照和超低的手续费率等大量优点
对于国内出海来说, 只需要看超低手续费率就可以了(PayPal这种高额手续费不推荐), 但是需要注意以下问题
-
信用卡支付体系: 海外性用卡拒付周期很长, 一旦申诉拒付失败会有相应罚金
-
海外收款转国内: 无法直接人民币结算到中国大陆对公账户, 必须走
外币→境外账户→结汇回国 -
黑五类等审核严格: 仿牌/黑五类/虚拟商品之类申请手续麻烦, 并且有很大封号风险
可以经由香港公司以服务费用转到国内进出口公司(需账务审计), 或者跨境PSP中转(万里汇)缴纳中转费用
这里主要将以技术方面出发来做海外第三方系统支付对接, 所以商户账号申请这部分可能没这么详细
初始化
首先就是向 AdYen 提交商户相关信息, 如果是公司/企业角色最好找专家处理专门对接事项
高周转金额最好找 AdYen 的商户经理做对接, 可以更快响应支付当中的问题(须英语交流)
AdYen 目前支持以下类别主体申请成为商户主体
-
公司: 具备有海外的公司主体信息(支持香港), 涵盖法人代表和公司地址
-
个人:具备有个人护照和境外开户银行账号(支持香港), 涵盖独立跨境服务站点等信息
-
个体户: 个体户分为国内和海外个体户, 都需要各自所在地区的营业执照, 但 Adyen 不接受内地银行账户
中国的个人|个体户审核很难通过, 并具有年度最高额度限制(每年5w美元结汇额度), 不推荐申请该主体
保证商户审核通过获取账号密码, 就可以登陆 AdYen 商户后台: https://ca-live.adyen.com/ca/ca/overview
有 live 和 test 两个入口, 分别是正式上线和开发中的后台入口
一般可以现在测试后台开始做初期的对接需求, 也可以直接在正式环境配置完成跑小额支付
开发配置
在进入后台之后需要按照以下流程处理
1. 后台侧边栏选择支付配置(Developers -> API credentials)
在页面点击 创建新的凭证信息(Create new credential), 这里弹出创建菜单填写方式如下
-
凭证类型(Credential type): 直接选择Web服务(Web service user)即可 -
描述信息(Description): 这里只是作为后台补充的可见信息, 该项是作为可选填写
之后点击创建就会在页面新增类似 ws_123456@Company 凭证信息项, 后面需要再回来该页面配置
2. 后台侧边栏选择回调配置(Developers -> Webhook)
在页面点击 创建新WebHook(Create new webhook), 这里弹出创建菜单填写方式如下
-
直接添加
标准 WebHook(Standard webhook)即可(一般就是首个选项)
创建完成之后选择创建 WebHook 做详细设置(服务器配置(Server configuration)/安全(Security)/事件(Events)):
-
URL: 我们的服务端回调地址, 必须保证地址可以访问 -
Method: 回调响应的数据模式, 保持默认 JSON 即可, 可选有JSON, HTTP POST, SOAP -
Encryption protocol: 回调响应的协议, 保持默认即可, 可选有TLSv1.2, TLSv1.3 -
HMAC Key: 服务器对接的HMAC密钥, 可以生成之后保存本地, 开发回调认证需要用到 -
Events选项保持默认即可, 除非你需要监听所有的操作事件
主要的就是生成的 HMAC Key, 必须和商户名标识一起移交给服务端那边做支付开发
3. 后台侧边栏选择支付配置(Developers -> API credentials)
点击之前创建好的 凭证(credential) 用户名来进入配置详情页面:
-
生成ApiKey(Server settings -> Authentication): 可以点击生成API Key(Generate API key)生成保存本地 -
添加IP白名单(Add an allowed IP range):: 将涉及到和 AdYen 交互的服务器 IP 地址都填写上去
ApiKey 生成格式: 测试 KEY 为 test_xxx, 正式 KEY 为 live_yyy
保存完成之后, 目前就有以下信息可以提供支付对接
-
Merchant Account:商户标识, 一般在商户后台的最左上角选择商户账户有复制按纽, 可以直接点击复制 -
HMAC Key: 服务端用的回调和创建订单 KEY -
API Key: 客户端请求 AdYen 的对接 KEY
之后就是按照自身业务的订单创建和页面渲染
4. 服务端创建订单
服务端对接文档: https://docs.adyen.com/marketplaces/checkout-components
AdYen 官方目前提供 Java/PHP/C#/NodeJS/Go/Python/Ruby 服务端对接方案, 按照项目编程语言来选择即可
主要服务端对接成功之后返回
id(字符串, 订单ID) 和 sessionData(对象组, 详细数据)就是客户端需要支付窗口渲染信息
核心就是最后的支付完成返回 sessionData 对象, 用于提供给客户端和 AdYen 做渲染组件处理
5. 客户端渲染组件
客户端对接文档: https://docs.adyen.com/marketplaces/checkout-components#create-the-component
在服务端创建完成订单返回 session.id 和 session.sessionData 就可以引入对应 css/js 唤起前端组建:
1 | <!-- 引入 AdYen 相关样式和库 --> |
如果采用原生页面集成(不含React等技术), AdYen 的 JS 类库需要在 window.AdyenWeb 引入:
1 | // 原生 HTML 从 window 之中提取组建库 |
6. 支付渠道配置
这部分实际上不属于开发来处理, 该配置需要在开发后台的自行开通支付渠道(比如万事达/Visa之类)
一般这部分需要等运营去配好海外香港支付账户信息, 否则可能会出现发起支付成功但是支付过程失败的问题
不过一般走到这里就代表支付系统已经调通, 剩下的就是支付完成回调状态和其他结汇和申诉相关方面



