我正在为我的网站集成授权网络。我可以生成令牌。在获得令牌后,我在我的沙盒帐户上发布请求。我可以进行测试付款。但付款后,它不会返回我的网站上。Continue按钮不执行任何操作。
这是我的设置和表单请求。如果我遗漏了什么,请告诉我。下面是我获取令牌的代码。
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" >
发布于 2018-03-13 13:52:43
德文德·库马尔
请将您的setting3设置如下:
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设置中重定向给定的url,则showReceipt应为false。
发布于 2021-04-14 03:13:09
我偶然发现了这个页面,想找个变通办法。看起来Authorize不允许在取消/继续URL中使用localhost或127.0.0.1。我还在想办法绕过去。
发布于 2021-08-27 08:02:30
这就是我所犯的错误。
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\"}");这真是个愚蠢的错误。
https://stackoverflow.com/questions/44298704
复制相似问题