E commerce 搜索.net CIM记录

E commerce 搜索.net CIM记录,e-commerce,authorize.net,E Commerce,Authorize.net,有没有人想出一种优雅的方法来搜索存储在Authorize.net的客户信息管理器(CIM)上的数据 根据他们的XML指南,似乎根本没有任何搜索功能。这是一个巨大的短缺 据我所知,CIM的卖点是商家不需要存储任何客户信息。它们只是为每个对象存储一个唯一的标识符,并根据需要检索数据。从PCI法规遵从性的角度来看,这可能很好,但从灵活性的角度来看,这很可怕 像“显示来自德克萨斯州的所有订单”这样的简单搜索突然变得非常复杂 其他人是如何处理这个问题的?CIM的主要目的是通过允许您将客户数据(包括信用卡)

有没有人想出一种优雅的方法来搜索存储在Authorize.net的客户信息管理器(CIM)上的数据

根据他们的XML指南,似乎根本没有任何搜索功能。这是一个巨大的短缺

据我所知,CIM的卖点是商家不需要存储任何客户信息。它们只是为每个对象存储一个唯一的标识符,并根据需要检索数据。从PCI法规遵从性的角度来看,这可能很好,但从灵活性的角度来看,这很可怕

像“显示来自德克萨斯州的所有订单”这样的简单搜索突然变得非常复杂


其他人是如何处理这个问题的?

CIM的主要目的是通过允许您将客户数据(包括信用卡)存储在其服务器上,然后仅使用唯一的ID访问这些数据,从而解决PCI合规性问题。如果您想做报告,您需要自己跟踪此类信息。由于在存储客户地址等方面不存在PCI遵从性问题,因此您可以自己执行此操作。基本上,这是在项目设计阶段需要清除的东西


他们确实有一个新的,可以为您提供这一功能。如果没有,很可能会在不久的将来提供,因为Authnet目前正在积极向其API推出许多新功能。

简单的回答是,您是对的:没有用于搜索CIM记录的API支持。由于它的结构方式,没有简单的方法单独使用CIM来搜索所有记录

要按照您描述的方式搜索它们,请执行以下操作:

  • 使用getCustomerProfileIdsRequest获取存储的所有客户配置文件ID
  • 对于该请求返回的每个CustomerProfileId,使用getCustomerProfileRequest获取该客户端的特定记录
  • 当时检查每个记录,寻找所需的标准,将相关记录存储在其他结构中;类、多维数组、ADO数据表等等
  • 是的,那太麻烦了。但这实际上是唯一的前进之路

    前面提到的报告API仅适用于事务,而不适用于客户信息经理

    请注意,您可以在记录交易时收集所需的数据类型,并且只要不使其具有个人身份,就可以将其存储在本地

    例如,您可以对所有CIM客户概要文件记录运行请求,并将每个客户的状态存储在本地数据库中

    如果存储的只是状态,那么就可以处理这些记录,因为状态与特定的客户记录没有任何关联。接下来,您还可以编写逻辑,在创建/更新客户概要文件记录的同时更新本地状态记录存储


    我意识到这可能不是你想听到的,但这是休息。

    这可能是非常缓慢和低效的。但这里有一个方法。请求一个包含所有客户Id的数组,然后检查每个客户Id是否为所需的字段。。。在我的例子中,我想要一个PHP中的电子邮件搜索功能:

    $cimData = new AuthorizeNetCIM;
    $profileIds = $cimData->getCustomerProfileIds();
    
    $profileIds = $cimData->getCustomerProfileIds();
    $array = $profileIds->xpath('ids');
    $authnet_cid = null;
    
    /*
    this seems ridiculously inefficient... 
    gotta be a better way to lookup a customer based on email
    */
    
        foreach ( $array[0]->numericString as $ids ) { // put all the id's into an array
           $response = $cimData->getCustomerProfile($ids); //search an individual id for a match
        //put the kettle on
    
            if ($response->xml->profile->email == $email) {
                $authnet_cid = $ids;
                $oldCustomerProfile = $response->xml->profile;
            }
        }
    

    //现在茶、奶油、糖、饼干都准备好了,你可能有了搜索结果

    是的,我想过这个方法,塞缪尔。这很难看,但会有用的。但麻烦和时间太多了。希望Authorize.net能在不久的将来为我们提供这项服务。同时,我别无选择,只能在本地保存一些客户信息(姓名、邮政编码等),效果很好。我必须修复一堆mis关联的数据,并需要查询所有CIM配置文件。我只是创建了几个db表,运行了CIM概要文件并获得了所需的数据,然后修复了不正确的数据并删除了本地表。诚然,这些表都不需要删除,因为您从CIM中获得的任何本地存储的东西都不会使PCI遵从性失效。