Adyen storedPaymentMethods接口POST请求报错:000服务不存在
问题分析与解决方案
核心问题定位
你遇到的000 Service storePaymentMethods not present报错,核心原因是API版本不匹配:你参考的是v71文档,但实际调用的是v70的API端点——Adyen Checkout API v70及更早版本中,根本不存在POST /storePaymentMethods这个接口,该接口是v71才新增的。这也解释了为什么请求没出现在API日志里:非法的接口请求不会进入Adyen的业务处理流程,自然不会被记录。
解决方案1:升级到v71+版本(推荐)
直接使用与文档匹配的v71端点,修正你的CURL命令即可:
curl --location --request POST 'https://checkout-test.adyen.com/v71/storedPaymentMethods' \ --header 'X-API-key: YOUR_API_KEY' \ --header 'Content-Type: application/json' \ --data-raw '{ "merchantAccount":"YOUR_MERCHANT_ACCOUNT", "shopperReference":"YOUR_SHOPPER_REF", "paymentMethod":{ "type":"scheme", "encryptedCardNumber":"test_4111111111111111", "encryptedExpiryMonth":"test_03", "encryptedExpiryYear":"test_2030", "encryptedSecurityCode":"test_737", "holderName":"Test Name" }, "recurringProcessingModel":"UnscheduledCardOnFile" }'
同时确认两个配置:
- 你的API密钥已开启Checkout API v71+权限(新生成的密钥默认包含,老密钥可联系Adyen支持确认)
- 商户后台已启用Recurring/Tokenization功能(路径:
Settings > Payment methods > Recurring)
解决方案2:若必须使用v70版本
v70没有单独的卡片存储接口,需通过POST /payments接口模拟0金额交易来完成卡片存储,同时携带recurring参数:
curl --location --request POST 'https://checkout-test.adyen.com/v70/payments' \ --header 'X-API-key: YOUR_API_KEY' \ --header 'Content-Type: application/json' \ --data-raw '{ "merchantAccount":"YOUR_MERCHANT_ACCOUNT", "shopperReference":"YOUR_SHOPPER_REF", "amount":{ "currency":"USD", "value":0 }, "paymentMethod":{ "type":"scheme", "encryptedCardNumber":"test_4111111111111111", "encryptedExpiryMonth":"test_03", "encryptedExpiryYear":"test_2030", "encryptedSecurityCode":"test_737", "holderName":"Test Name" }, "recurring":{ "contract":"ONECLICK,RECURRING" }, "recurringProcessingModel":"UnscheduledCardOnFile" }'
请求成功后,返回结果中的recurringDetailReference就是你需要的卡片令牌,可用于后续支付。
内容的提问来源于stack exchange,提问作者Damini Mahawer
相关产品推荐
相关产品推荐

