【发布时间】:2018-10-18 17:26:33
【问题描述】:
您好,我找到了一个示例代码,它要求传递 ApiLoginID、ApiTransactionKey 和 transactionId。
我能够获取 ApiLoginID 和 ApiTransactionKey,但是如何获取测试 transactionID,因为在测试模式下 authorize.net 总是将 transactionid 设为 0
下面是我需要通过它检索信用卡号码的代码。请建议这是不是检索信用卡详细信息的真实代码?
public class GetTransactionDetails
{
public static ANetApiResponse Run(String ApiLoginID, String ApiTransactionKey, string transactionId)
{
ServicePointManager.Expect100Continue = true;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
Console.WriteLine("Get transaction details sample");
ApiOperationBase<ANetApiRequest, ANetApiResponse>.RunEnvironment = AuthorizeNet.Environment.SANDBOX;
// define the merchant information (authentication / transaction id)
ApiOperationBase<ANetApiRequest, ANetApiResponse>.MerchantAuthentication = new merchantAuthenticationType()
{
name = ApiLoginID,
ItemElementName = ItemChoiceType.transactionKey,
Item = ApiTransactionKey,
};
var request = new getTransactionDetailsRequest();
request.transId = transactionId;
// instantiate the controller that will call the service
var controller = new getTransactionDetailsController(request);
controller.Execute();
// get the response from the service (errors contained if any)
var response = controller.GetApiResponse();
if (response != null && response.messages.resultCode == messageTypeEnum.Ok)
{
if (response.transaction == null)
return response;
Console.WriteLine("Transaction Id: {0}", response.transaction.transId);
Console.WriteLine("Transaction type: {0}", response.transaction.transactionType);
Console.WriteLine("Transaction status: {0}", response.transaction.transactionStatus);
Console.WriteLine("Transaction auth amount: {0}", response.transaction.authAmount);
Console.WriteLine("Transaction settle amount: {0}", response.transaction.settleAmount);
}
else if (response != null)
{
Console.WriteLine("Error: " + response.messages.message[0].code + " " +
response.messages.message[0].text);
}
return response;
}
}
}
在示例代码中,我在凭据下方传递
const string apiLoginId = "5KP3u95bQpv";
const string transactionKey = "346HZ32z3fP4hTG2";
const string transactionId = "2249735976";
我在哪里检索数据,如下图所示,但无法获取信用卡详细信息
我只想检索信用卡详细信息以进行授权。任何帮助
在我的代码中,我还添加了如下代码,但我收到错误
var obj = (creditCardMaskedType)response.transaction.payment.Item;
Console.WriteLine("Creditcard settle cardnumber: {0}", obj.cardNumber);
错误
附加信息:无法将“AuthorizeNet.Api.Contracts.V1.bankAccountMaskedType”类型的对象转换为“AuthorizeNet.Api.Contracts.V1.creditCardMaskedType”类型。
【问题讨论】:
-
你不能得到值“0”吗?
-
@theMayer 请查看更新后的问题
-
@theMayer 有什么想法吗?
-
不,我不确定您要做什么。您试图获得的东西似乎与您发布的代码完全不一致。
-
您能否至少链接到您正在查看的示例 api 文档的部分?
标签: c# asp.net payment-gateway authorize.net