【问题标题】:Authorize.net Sandbox Accept page testing- always declined?Authorize.net Sandbox 接受页面测试 - 总是被拒绝?
【发布时间】:2021-03-05 21:43:14
【问题描述】:

我正在尝试使用我的沙盒测试接受托管付款页面(重定向方法)。为此,我使用 Java 示例代码应用程序中的 GetAnAcceptPaymentPage 生成支付令牌字符串,为我的沙箱指定 autoLoginId 和 transactionKey,并将金额设置为 $1.00。然后,我将返回的令牌字符串发布到https://test.authorize.net/payment/payment,并使用包含该字符串的“令牌”表单元素。这似乎很有效,我确实得到了一个显示 1.00 美元金额的付款页面。但是,无论我在支付页面上输入什么值,按下“支付”按钮只会显示“交易已被拒绝”。表格底部的红色文本。我已经确认我的沙盒设置为“实时”模式,并查看了以下链接以使用我认为应该是有效值进行测试: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();
}

【问题讨论】:

    标签: authorize.net


    【解决方案1】:

    >>> order.setInvoiceNumber("2");

    将发票编号设置为不同于 2 的值,该值在 Sandbox 中用于触发拒绝以进行测试。

    【讨论】:

      猜你喜欢
      • 2014-09-03
      • 2016-08-21
      • 2018-05-09
      • 1970-01-01
      • 2020-02-05
      • 2017-09-29
      • 2023-02-20
      • 2021-09-07
      • 1970-01-01
      相关资源
      最近更新 更多