自定义配置文件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>
回复:E00029:需要付款信息。
文档:https://developer.authorize.net/api/reference/features/customer_profiles.html
答案 0 :(得分:1)
PCI DSS允许卡数据通过商家的服务器,然而商家负责确保其环境完全符合PCI DSS。要减少PCI Scope并避免敏感数据通过服务器,可以使用Accept.js或Accept Customer创建客户配置文件。
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>
&#13;