Authorize.net 客户配置文件的第 22 条军规:无法在不添加信用卡的情况下创建配置文件 - 违反 PCI
Catch-22 For Authorize.net Customer Profiles: Cannot create profile without adding credit card - violates PCI
自定义配置文件 API 声称允许客户输入他们的付款详细信息并将其保存在 Authorize.net 上,而信用卡号不会访问我们的服务器以保持 PCI 合规性。但是,为了创建客户资料,首先需要信用卡号!我想访问托管表单,但它需要客户资料 ID。要创建客户资料 ID,我必须创建客户资料。要创建客户资料,需要信用卡号。 API 仅使用服务器端语言,因此这意味着信用卡号正在访问我们的服务器。
我尝试编辑 API 参考中的示例请求并删除 <payment>
,但是提交时出现错误。
我想我应该能够创建一个空白的客户资料,显示表格,允许用户输入他们的付款细节,保存到 Authorize.net,然后在订阅计费期间获取付款细节.
https://developer.authorize.net/api/reference/index.html#customer-profiles-create-customer-profile
<createCustomerProfileRequest xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">
<merchantAuthentication>
<name>5GwYqmx58k</name>
<transactionKey>xxxxxxxxxxxxxxxxxxxxxxxx</transactionKey>
</merchantAuthentication>
<profile>
<merchantCustomerId>Merchant_Customer_ID</merchantCustomerId>
<description>Profile description here</description>
<email>customer-profile-email@here.com</email>
<paymentProfiles>
<customerType>individual</customerType>
</paymentProfiles>
</profile>
<validationMode>testMode</validationMode>
</createCustomerProfileRequest>
Response: E00029 : Payment information is required.
文档:https://developer.authorize.net/api/reference/features/customer_profiles.html
PCI DSS 允许卡数据通过商家的服务器,但是商家随后负责确保他们的环境完全符合 PCI DSS。要缩小您的 PCI 范围并避免敏感数据通过您的服务器,您可以使用 Accept.js 或接受客户来创建客户资料。
https://developer.authorize.net/api/reference/features/accept.html
要创建不包含付款详细信息的客户资料,请使用以下不包含付款或验证对象的内容:
<createCustomerProfileRequest xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">
<merchantAuthentication>
<name>*</name>
<transactionKey>*</transactionKey>
</merchantAuthentication>
<profile>
<merchantCustomerId>Merchant_Customer_ID</merchantCustomerId>
<email>customer-profile-email99@here.com</email>
</profile>
</createCustomerProfileRequest>
自定义配置文件 API 声称允许客户输入他们的付款详细信息并将其保存在 Authorize.net 上,而信用卡号不会访问我们的服务器以保持 PCI 合规性。但是,为了创建客户资料,首先需要信用卡号!我想访问托管表单,但它需要客户资料 ID。要创建客户资料 ID,我必须创建客户资料。要创建客户资料,需要信用卡号。 API 仅使用服务器端语言,因此这意味着信用卡号正在访问我们的服务器。
我尝试编辑 API 参考中的示例请求并删除 <payment>
,但是提交时出现错误。
我想我应该能够创建一个空白的客户资料,显示表格,允许用户输入他们的付款细节,保存到 Authorize.net,然后在订阅计费期间获取付款细节.
https://developer.authorize.net/api/reference/index.html#customer-profiles-create-customer-profile
<createCustomerProfileRequest xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">
<merchantAuthentication>
<name>5GwYqmx58k</name>
<transactionKey>xxxxxxxxxxxxxxxxxxxxxxxx</transactionKey>
</merchantAuthentication>
<profile>
<merchantCustomerId>Merchant_Customer_ID</merchantCustomerId>
<description>Profile description here</description>
<email>customer-profile-email@here.com</email>
<paymentProfiles>
<customerType>individual</customerType>
</paymentProfiles>
</profile>
<validationMode>testMode</validationMode>
</createCustomerProfileRequest>
Response: E00029 : Payment information is required.
文档:https://developer.authorize.net/api/reference/features/customer_profiles.html
PCI DSS 允许卡数据通过商家的服务器,但是商家随后负责确保他们的环境完全符合 PCI DSS。要缩小您的 PCI 范围并避免敏感数据通过您的服务器,您可以使用 Accept.js 或接受客户来创建客户资料。
https://developer.authorize.net/api/reference/features/accept.html
要创建不包含付款详细信息的客户资料,请使用以下不包含付款或验证对象的内容:
<createCustomerProfileRequest xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">
<merchantAuthentication>
<name>*</name>
<transactionKey>*</transactionKey>
</merchantAuthentication>
<profile>
<merchantCustomerId>Merchant_Customer_ID</merchantCustomerId>
<email>customer-profile-email99@here.com</email>
</profile>
</createCustomerProfileRequest>