接受托管授权网络集成问题。付款后没有重定向到我的本地主机

问题描述 投票:0回答:4

我正在为我的网站集成 Authorize net。我能够生成令牌。获得令牌后,我在我的沙箱帐户上发布请求。我能够进行测试付款。但付款后它不会返回我的网站。 “继续”按钮没有任何作用。

这是我的设置和表单请求。如果我缺少任何内容,请告诉我。 这是我获取令牌的代码。

public static GetHostedPaymentPageResponse run(String apiLoginId, String transactionKey, Double amount) {
ApiOperationBase.setEnvironment(Environment.SANDBOX);
MerchantAuthenticationType merchantAuthenticationType  = new MerchantAuthenticationType() ;
merchantAuthenticationType.setName(apiLoginId);
merchantAuthenticationType.setTransactionKey(transactionKey);
ApiOperationBase.setMerchantAuthentication(merchantAuthenticationType);

// Create the payment transaction request
TransactionRequestType txnRequest = new TransactionRequestType();
txnRequest.setTransactionType(TransactionTypeEnum.AUTH_CAPTURE_TRANSACTION.value());
txnRequest.setAmount(new BigDecimal(amount).setScale(2, RoundingMode.CEILING));




 SettingType setting2 = new SettingType();
setting2.setSettingName("hostedPaymentOrderOptions");
setting2.setSettingValue("{\"show\": true}"); 
setting2.setSettingValue("{\"merchantName\": \"Questions Inc.\"}"); 

SettingType setting1 = new SettingType();
setting1.setSettingName("hostedPaymentButtonOptions");
setting1.setSettingValue("{\"text\": \"Pay Now\"}");


SettingType setting3 = new SettingType();
setting3.setSettingName("hostedPaymentReturnOptions");
setting3.setSettingValue("{\"showReceipt\": true}");
setting3.setSettingValue("{\"url\": \"http://localhost:8070/wap-adaptor/response.jsp\"}");
setting3.setSettingValue("{\"urlText\": \"Return\"}");
setting3.setSettingValue("{\"cancelUrl\": \"http://localhost:8070/wap-adaptor/response.jsp\"}");
setting3.setSettingValue("{\"cancelUrlText\": \"Cancel\"}");

ArrayOfSetting alist = new ArrayOfSetting();
alist.getSetting().add(setting1);
alist.getSetting().add(setting2);
alist.getSetting().add(setting3);

GetHostedPaymentPageRequest apiRequest = new GetHostedPaymentPageRequest();
apiRequest.setTransactionRequest(txnRequest);
apiRequest.setHostedPaymentSettings(alist);

GetHostedPaymentPageController controller = new GetHostedPaymentPageController(apiRequest);
controller.execute();

GetHostedPaymentPageResponse response = new GetHostedPaymentPageResponse();

这是我的申请表

<form method="POST" action="https://test.authorize.net/payment/payment" id="DemoCheckoutForm" name="DemoCheckoutForm">
<input type="hidden" name="token" value="<%=token%>" >
<input type="submit" name="submit_b" value="Buy now" >

java authorize.net
4个回答
0
投票

德文德·库马尔

请按如下方式设置您的设置3,

SettingType setting3 = new SettingType();
setting3.setSettingName("hostedPaymentReturnOptions");
setting3.setSettingValue("{\"showReceipt\": false}");
setting3.setSettingValue("{\"url\": \"http://localhost:8070/wap-adaptor/response.jsp\"}");
setting3.setSettingValue("{\"urlText\": \"Return\"}");
setting3.setSettingValue("{\"cancelUrl\": \"http://localhost:8070/wap-adaptor/response.jsp\"}");
setting3.setSettingValue("{\"cancelUrlText\": \"Cancel\"}");
当您想要在 HostedPaymentReturnOptions 设置中重定向给定网址时,showReceipt 应该为 false。


0
投票
我偶然发现此页面寻找解决方法。授权似乎不允许在取消/继续 URL 中使用

localhost

127.0.0.1
。我还在想办法解决。


0
投票
这是我犯的错误。

SettingType setting3 = new SettingType(); setting3.setSettingName("hostedPaymentReturnOptions"); setting3.setSettingValue("{\"showReceipt\": true}"); setting3.setSettingValue("{\"url\": \"http://localhost:8070/wap-adaptor/response.jsp\"}"); setting3.setSettingValue("{\"urlText\": \"Return\"}"); setting3.setSettingValue("{\"cancelUrl\": \"http://localhost:8070/wap-adaptor/response.jsp\"}"); setting3.setSettingValue("{\"cancelUrlText\": \"Cancel\"}");
如您所见,它只会采用最后一个值。

setting3.setSettingValue("{\"cancelUrlText\": \"Cancel\"}");
它应该像下面这样。将所有参数用json包裹起来,然后设置值。

setting3.setSettingValue("{\"showReceipt\": true, \"url\": \"http://localhost:8070/wap-adaptor/response.jsp\", \"urlText\": \"Return\", \"cancelUrl\": \"http://localhost:8070/wap-adaptor/response.jsp\", \"cancelUrlText\": \"Cancel\"}");
这是一个非常愚蠢的错误。


0
投票
您可以分享您的代码来生成令牌吗?我正在努力做到这一点。

谢谢你。

© www.soinside.com 2019 - 2024. All rights reserved.