【问题标题】:Not able to test the transaction using test account in Authorize.net无法使用 Authorize.net 中的测试帐户测试交易
【发布时间】:2013-11-17 09:59:53
【问题描述】:

在 iPhone 模拟器中,我已经注册并使用 authorize.net 成功登录。但我无法执行交易。 MobileDeviceLoginRequest 和 createTransaction 的代码如下。

-(void)loginToGateway {

MobileDeviceLoginRequest *mobileDeviceLoginRequest = [MobileDeviceLoginRequest mobileDeviceLoginRequest];

mobileDeviceLoginRequest.anetApiRequest.merchantAuthentication.name = @"***";

mobileDeviceLoginRequest.anetApiRequest.merchantAuthentication.password = @"*****";

mobileDeviceLoginRequest.anetApiRequest.merchantAuthentication.mobileDeviceId = [OpenUDID 值];

[AuthNet authNetWithEnvironment:ENV_TEST];

AuthNet *an = [AuthNet getInstance];

[一个 setDelegate:self]; [一个 mobileDeviceLoginRequest:mobileDeviceLoginRequest];

}

-(void)mobileDeviceLoginSucceeded:(MobileDeviceLoginResponse *)response {

 sessionToken = [response.sessionToken retain];

 [self createTransaction];

} -(void)createTransaction {

AuthNet *an = [AuthNet getInstance];
[an setDelegate:self];
CreditCardType *creditCardType = [CreditCardType creditCardType];
creditCardType.cardNumber = @"4111111111111111";
creditCardType.cardCode = @"100";
creditCardType.expirationDate = @"1212";
PaymentType *paymentType = [PaymentType paymentType];
paymentType.creditCard = creditCardType;

ExtendedAmountType *extendedAmountTypeTax = [ExtendedAmountType extendedAmountType];
extendedAmountTypeTax.amount = @"0";
extendedAmountTypeTax.name = @"Tax";

ExtendedAmountType *extendedAmountTypeShipping = [ExtendedAmountType extendedAmountType];
extendedAmountTypeShipping.amount = @"0";
extendedAmountTypeShipping.name = @"Shipping";

LineItemType *lineItem = [LineItemType lineItem];
lineItem.itemName = @"Soda";
lineItem.itemDescription = @"Soda";
lineItem.itemQuantity = @"1";
lineItem.itemPrice = @"1.00";
lineItem.itemID = @"1";

TransactionRequestType *requestType = [TransactionRequestType transactionRequest];
requestType.lineItems = [NSArray arrayWithObject:lineItem];
requestType.amount = @"1.00";
requestType.payment = paymentType;
requestType.tax = extendedAmountTypeTax;
requestType.shipping = extendedAmountTypeShipping;
CreateTransactionRequest *request = [CreateTransactionRequest createTransactionRequest];    
request.transactionRequest = requestType;
request.transactionType = AUTH_ONLY;
request.anetApiRequest.merchantAuthentication.mobileDeviceId = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
request.anetApiRequest.merchantAuthentication.sessionToken = sessionToken;
[an purchaseWithRequest:request];}

mobileDeviceLoginResponse 如下: // 我也在获取会话

  <resultCode>Ok</resultCode>
  <message>
     <code>I00001</code>
     <text>Successful.</text>

createTransactionResponse 如下:

     <code>E00054</code>
     <text>The mobile device is not registered with this merchant account.</text>

【问题讨论】:

  • 如果你必须贴一堵代码,那么你没有做足够的调试
  • @Dsk:我对上面的代码有疑问。我们是否需要在方法 -(void)loginToGateway 中输入准确的用户名和密码。直接在代码中使用密码安全吗?
  • @ ArunMak ,我也有同样的疑问。但是,我只从他们的 Authorize.net 网站上获取了代码。请参阅以下链接developer.authorize.net/integration/fifteenminutes/ios
  • @Dsk Ya 我也拿了同样的代码。它要求在代码中输入密码。有没有其他方法可以在没有密码的情况下进行交易或者您有什么解决方案?
  • @ArunMak :我只使用 authorize.net sdk ,但到目前为止我没有收到任何登录 ID 和密码的提示。我只是硬编码了上面代码的所有内容。你能解释一下你是如何得到提示的吗?

标签: ios payment-gateway authorize.net


【解决方案1】:

错误代码 E00054 表示您需要执行 mobileDeviceRegistrationRequest 并在商户界面中批准设备,然后才能创建交易。

【讨论】:

  • 最初我使用测试帐户注册了我的移动设备,然后在 authorize.net 网站中启用了我的设备,然后在我的应用程序中成功登录。是否可以使用我的测试帐户测试交易过程? .或者我需要创建商家帐户?。
  • @rhldr:我对上面的代码有疑问。我们是否需要在方法 -(void)loginToGateway 中输入准确的用户名和密码。直接在代码中使用密码安全吗?
  • @ArunMak 您的应用程序应该提示用户输入他们的登录 ID 和密码。绝不建议将用户凭据存储在移动设备上。
  • @Dsk 沙盒模拟与商家帐户的连接,因此您不需要实时生产支付网关帐户来测试交易。有关详细信息,请参阅 developer.authorize.net/training 的入门视频。
  • @rhldr 其实我想存储商户账户密码。每次我不希望弹出窗口出现并要求输入密码和用户名。每次都会是同一个商户。
猜你喜欢
  • 2018-12-09
  • 2011-11-18
  • 2010-11-18
  • 2012-11-19
  • 2015-10-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-25
相关资源
最近更新 更多