首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Authorize.net创建任意波形并获取Id

Authorize.net创建任意波形并获取Id
EN

Stack Overflow用户
提问于 2013-02-21 07:46:21
回答 2查看 383关注 0票数 1

当我创建一个新的ARB订阅时,响应返回并保存它给我们的id。我试过了,它返回了"33“。

然后,当静默post回调命中我们的方法时,响应具有不同的id,15631016。

15631016与我们在authorize.net在线门户中看到的版本匹配正确。

那么,什么是33,为什么它不返回真实的ARB ID呢?

下面是创建新的ARB然后获取arbId的代码:

代码语言:javascript
复制
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订阅ID的正确方法,那么正确的方法是什么?

EN

回答 2

Stack Overflow用户

发布于 2013-02-21 08:01:03

我浏览了示例代码和他们的社区,但没有太多内容可供参考。我唯一能想到的就是改变:

代码语言:javascript
复制
arbResult.getResultSubscriptionId();

至:

代码语言:javascript
复制
arbTransaction.getResultSubscriptionId();

我知道这听起来不合逻辑,但这是我能做的最好的事情了。

票数 0
EN

Stack Overflow用户

发布于 2013-03-29 10:15:14

根据源代码,您使用的方法是正确的。

如果将这些调用追溯到代码中,就会看到订阅id是由net.authorize.arb.Result的importResponseMessages()中的以下调用设置的

代码语言:javascript
复制
getElementText(txn.getCurrentResponse().getDocumentElement(),AuthNetField.ELEMENT_SUBSCRIPTION_ID.getFieldName());

因此,如果在arbResult变量上调用它,可能会更接近。请注意,应将txn替换为您的变量arbTransaction

或者,您可以深入研究响应本身,以了解Authorize.net应用程序密钥没有返回正确的订阅id的原因。

代码语言:javascript
复制
xml = arbTransaction.getCurrentResponse().dump(true);

true确定XML树是否折叠。XML应该是包含来自authorize.net的xml响应的字符串

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14992102

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档