使用Authorize.Net中的客户ID获取customerProfileId

时间:2011-04-22 13:37:28

标签: c# authorize.net

我需要从Authorize.Net检索customerProfileId。

如何在customerProfileId为我的asp.net mvc(C#)应用程序创建客户资料中使用的merchantCustomerIdemail Authorize.Net

2 个答案:

答案 0 :(得分:4)

如果您尝试使用已在使用的商家客户ID创建新的客户资料,Authorize.NET将返回错误E00039 - “已存在ID为{0}的重复记录”。其中{0}是客户资料ID。

因此,例如,如果您尝试编写逻辑来创建新的客户资料,只有商家ID不存在我发现最简单的方法是继续并尝试创建它,并寻找:

((ANetApiResponse)response).messages.resultCode == messageTypeEnum.Error

如果是这样,那么可以通过运行正则表达式来找到您的客户资料ID:

ErrorResponse.messages.message[0].text

您可以尝试从错误消息中解析出客户配置文件ID。这是我发现实际扩展的唯一方法。每次尝试创建新记录时,您都无法检索100k客户记录并迭代查找匹配项,但如果您的Merchant客户ID已在使用中,则可以指望Authorize.NET业务逻辑抛出错误。当然,他们可以随时改变错误信息的格式,所以YMMV。

答案 1 :(得分:0)

您不能通过customerProfileId以外的任何方式直接查询API。您可以做的最好的事情是使用getCustomerProfileIdsRequest检索您创建的所有配置文件,然后调用getCustomerProfileRequest来获取配置文件信息。然后,您可以检查它是否与您存档的电子邮件地址或merchantCustomerID相匹配。如果您有很多配置文件,这可能需要一段时间,但代码中的一个简单循环应该可以让您轻松完成。