2013-02-20 13 views
1

Когда я создаю новую подписку ARB, ответ возвращается, и я сохраняю идентификатор, который он нам дает. Я попробовал, и он возвращает нас «33».Authorize.net создать ARB и получить ID

Тогда, когда молчание после обратного вызова попадает наш метод, реакция имеет другой идентификатор, 15631016.

15631016 правильно в соответствие с той, которую мы видим в Authorize.NET интернет-портал.

Итак, что такое 33 и почему он не возвращает реальный идентификатор ARB?

Вот код, который создает новый ARB, а затем получает arbId:

net.authorize.arb.Transaction arbTransaction = createARBTransaction(startDate.getTime(), creditCard, member, splitOccurrences.intValue() - 1, splitUnit, useBillingAddress, billingAddress, recurringOrder.getTotalAmount().doubleValue(), recurringOrder); 

net.authorize.arb.Result<?> arbResult = (net.authorize.arb.Result<?>) merchant.postTransaction(arbTransaction); 

String arbId; 
if (arbResult.isOk()) { 
    arbId = arbResult.getResultSubscriptionId(); 
} 

Если getResultSubscriptionId() не правильный путь, чтобы получить новый ARB идентификатор подписки, что правильный метод использовать?

+0

Хорошо, я решил это. Опубликованный код работает правильно. Проблема заключалась в том, что позже в коде идентификатор ARB был неправильно изменен на неправильное несвязанное значение ... woops! Слишком много позднего ночного кодирования ... Каков наилучший способ решить такой вопрос? – UpHelix

ответ

0

Я прошел через образец кода, а также их сообщество, и не так много, чтобы продолжить. Единственное, что я могу думать о попытке меняется:

arbResult.getResultSubscriptionId(); 

к:

arbTransaction.getResultSubscriptionId(); 

Я знаю, что не звучит логично, но это лучшее, что я могу некоторые с.

+0

Спасибо, я попробую. – UpHelix

+0

Пример кода запутан, потому что он, похоже, использует другой код, чем файл authorize.net Java SDK, который, как я полагаю, использует UpGelix из кода, который был опубликован. – Omn

0

В соответствии с исходным кодом вы используете правильный метод.

Если проследить звонки обратно в код, который вы увидите, что подписка идентификатор получает устанавливается следующим вызовом в importResponseMessages() из net.authorize.arb.Result

getElementText(txn.getCurrentResponse().getDocumentElement(),AuthNetField.ELEMENT_SUBSCRIPTION_ID.getFieldName()); 

так, если вы звоните это на вашей переменной arbResult, вы можете приблизиться. Обратите внимание, что txn следует заменить переменной arbTransaction.

В качестве альтернативы вы можете вникнуть в сам ответ, чтобы узнать, почему APK Authorize.net не возвращает правильный идентификатор подписки.

xml = arbTransaction.getCurrentResponse().dump(true); 

true определяет, будет ли развалился XML дерево. xml должен быть строкой, содержащей ваш ответ XML от authorize.net