我试图测试接受托管支付页面(重定向-方法)与我的沙箱。为此,我使用来自Java代码应用程序的GetAnAcceptPaymentPage来生成支付的令牌字符串,为我的沙箱指定了autoLoginId和transactionKey,并将$1.00设置为金额。然后,我将返回的令牌字符串与包含该字符串的“令牌”表单元素一起发布到https://test.authorize.net/payment/payment。这似乎是有效的,我确实得到了一个付款页面,显示1.00美元的金额。然而,无论我输入到支付页面上的值是什么,按下“支付”按钮都会显示“交易已被拒绝”。表格底部的红色文本。我已经确认我的沙箱被设置为“Live”模式,并查看了下面的链接以使用我认为应该是测试的有效值:https://developer.authorize.net/hello_world/testing_guide/。我希望有人能告诉我,为什么除了“交易被拒绝”之外,我得不到任何结果。
public String getTokenValue() {
ApiOperationBase.setEnvironment(Environment.SANDBOX);
MerchantAuthenticationType merchantAuthenticationType = new MerchantAuthenticationType();
merchantAuthenticationType.setName("xxxxx");
merchantAuthenticationType.setTransactionKey("xxxxxx");
ApiOperationBase.setMerchantAuthentication(merchantAuthenticationType);
// Create the payment transaction request
TransactionRequestType txnRequest = new TransactionRequestType();
txnRequest.setTransactionType(TransactionTypeEnum.AUTH_CAPTURE_TRANSACTION.value());
txnRequest.setAmount(new BigDecimal(1.00).setScale(2, RoundingMode.CEILING));
OrderExType order = new OrderExType();
order.setInvoiceNumber("2");
txnRequest.setOrder(order);
CustomerProfilePaymentType cpp = new CustomerProfilePaymentType();
cpp.setCustomerProfileId("xxxx");
cpp.setCreateProfile(true);
txnRequest.setProfile(cpp);
SettingType setting1 = new SettingType();
setting1.setSettingName("hostedPaymentButtonOptions");
setting1.setSettingValue("{\"text\": \"Proceed\"}");
SettingType setting2 = new SettingType();
setting2.setSettingName("hostedPaymentOrderOptions");
setting2.setSettingValue("{\"show\": false}");
SettingType setting3 = new SettingType();
setting3.setSettingName("hostedPaymentPaymentOptions");
setting3.setSettingValue("{\"cardCodeRequired\": true}");
SettingType setting4 = new SettingType();
setting4.setSettingName("hostedPaymentIFrameCommunicatorUrl");
setting4.setSettingValue("{\"url\": \"http://example.com/abc\"}");
ArrayOfSetting alist = new ArrayOfSetting();
alist.getSetting().add(setting1);
alist.getSetting().add(setting2);
alist.getSetting().add(setting3);
alist.getSetting().add(setting4);
GetHostedPaymentPageRequest apiRequest = new GetHostedPaymentPageRequest();
apiRequest.setTransactionRequest(txnRequest);
apiRequest.setHostedPaymentSettings(alist);
GetHostedPaymentPageController controller = new GetHostedPaymentPageController(apiRequest);
controller.execute();
GetHostedPaymentPageResponse response = new GetHostedPaymentPageResponse();
response = controller.getApiResponse();
if (response != null) {
if (response.getMessages().getResultCode() == MessageTypeEnum.OK) {
System.out.println(response.getToken());
} else {
System.out.println("Failed to get hosted payment page: " + response.getMessages().getResultCode());
}
}
return response.getToken();
}发布于 2020-11-23 09:32:37
>>> order.setInvoiceNumber(2“);
将发票号设置为与2不同的值,此值在Sandbox中用于触发测试目的的下降。
https://stackoverflow.com/questions/64963958
复制相似问题