Catch-22 For Authorize.net客户资料:无法在不添加信用卡的情况下创建个人资料 - 违反了PCI

时间:2018-03-12 20:04:43

标签: xml authorize.net

自定义配置文件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

1 个答案:

答案 0 :(得分:1)

PCI DSS允许卡数据通过商家的服务器,然而商家负责确保其环境完全符合PCI DSS。要减少PCI Scope并避免敏感数据通过服务器,可以使用Accept.js或Accept Customer创建客户配置文件。

https://developer.authorize.net/api/reference/features/accept.html

要创建没有付款详细信息的客户资料,请使用以下内容而不使用付款或验证对象:

&#13;
&#13;
<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;
&#13;
&#13;