首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >搜索Authorize.net CIM记录

搜索Authorize.net CIM记录
EN

Stack Overflow用户
提问于 2010-11-23 05:23:31
回答 3查看 390关注 0票数 1

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

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

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

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

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-11-29 02:40:41

简短的答案是,您是正确的:没有API支持搜索CIM记录。由于它的结构方式,没有一种简单的方法可以单独使用CIM来搜索所有记录。

以您所描述的方式搜索它们:

  1. 使用getCustomerProfileIdsRequest获取您存储的所有客户配置文件ID。
  2. 对于该请求返回的每个CustomerProfileIds,使用getCustomerProfileRequest获取该请求返回的每个记录的特定记录,查找所需的条件,将相关记录存储在某个其他结构中;类、多维数组、

DataTable等等。

是的,那是很繁重的。但从字面上看,这是唯一的继续下去的方法。

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

请注意,您可以在记录交易时收集您想要的数据类型,并且只要您不将其设置为个人可识别的,您就可以将其存储在本地。

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

如果您所存储的都是状态,那么您可以使用这些记录,因为没有任何东西将状态与特定的客户记录联系起来。接下来,您可以编写逻辑,在创建/更新客户配置文件记录的同时更新本地状态记录存储。

我知道这可能不是你想听的,但这就是突破口。

票数 2
EN

Stack Overflow用户

发布于 2011-02-19 01:58:21

这很可能是非常缓慢和低效的。但这里有一种方法。请求一个包含所有客户Id的数组,然后检查每个客户Id对应的字段...在我的例子中,我希望在PHP中有一个通过电子邮件搜索的功能:

代码语言:javascript
复制
$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;
        }
    }

//现在茶已经准备好了,奶油,糖,饼干,你可能有你的搜索结果了!

票数 1
EN

Stack Overflow用户

发布于 2010-11-24 05:52:50

CIM的主要目的是通过允许您将客户数据(包括信用卡)存储在客户的服务器上,然后仅使用唯一的ID访问它们,从而使PCI合规性问题脱离您的控制。如果您想要进行报告,您将需要自己跟踪此类信息。由于在存储客户地址等方面不存在PCI合规性问题,因此自己做这件事是现实的。基本上,这是一种在项目设计阶段需要淘汰的东西。

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4250360

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档