Authorize.net создай ARB и получи Id

Когда я создаю новую подписку ARB, ответ возвращается и я сохраняю идентификатор, который он нам дает. Я попробовал это, и это возвращает нам "33".

Затем, когда обратный вызов без вывода сообщений попадает в наш метод, ответ имеет другой идентификатор, 15631016.

15631016 правильно соответствует тому, что мы видим на онлайн-портале authorize.net.

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

Вот код, который создает новый 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, какой метод использовать?

2 ответа

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

arbResult.getResultSubscriptionId();

чтобы:

arbTransaction.getResultSubscriptionId();

Я знаю, это не звучит логично, но это лучшее, что я могу придумать.

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

Если вы проследите вызовы обратно в код, то увидите, что идентификатор подписки устанавливается следующим вызовом в 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

Другие вопросы по тегам