DocuSign REST API付款选项卡错误“ INVALID_TAB_FORMULA”

时间:2018-10-31 13:05:13

标签: java rest docusignapi

我已经通过REST API通过DocuSign实现了eSignature。我已经成功实现了签名者标签,并且工作正常。现在,我正在尝试在文档上实现“付款标签”。但是面临以下错误。

com.docusign.esign.client.ApiException:请求服务器时出错,接收到非成功的HTTP代码400,响应正文为:“ {   “ errorCode”:“ INVALID_TAB_FORMULA”,   “消息”:“选项卡公式无效。选项卡的tab公式,payment_tab无效。公式=([numberTab_1]):标记标签必须唯一” }'

我的付款标签代码

Number numberTab = new Number();
        numberTab.setValue("250");
        //numberTab.setName("numberTab");
        numberTab.setTabLabel("numberTab");
        numberTab.setRecipientId("1");
        numberTab.setDocumentId("1");
        numberTab.setPageNumber("1");
        numberTab.setXPosition("150");
        numberTab.setYPosition("150");
        numberTab.setIsPaymentAmount("false");

        docuTabs.getNumberTabs().add(numberTab);

        if(DocuSignConnect.docuSignTabMap.containsKey("1")){
            DocuSignConnect.docuSignTabMap.get("1").addNumberTabsItem(numberTab);
        }else{
            DocuSignConnect.docuSignTabMap.put("1", docuTabs);
        }

        PaymentLineItem lineItem = new PaymentLineItem(); 
        lineItem.setName("PaymentAmount1");
        lineItem.setAmountReference("numberTab");
        lineItem.setItemCode("1234");
        lineItem.setDescription("Set payment Amount");

        Money total = new Money(); 
        String amountInBaseUnit = String.valueOf(100.00);
        total.amountInBaseUnit(amountInBaseUnit);
        total.displayAmount(amountInBaseUnit); 
        total.setCurrency("USD");

        ArrayList<String> paymentMethodsList = new ArrayList<String>();
        paymentMethodsList.add("CreditCard");
        paymentMethodsList.add("BankAccount");

        PaymentDetails payDetails = new PaymentDetails();   
        payDetails.allowedPaymentMethods(paymentMethodsList); 
        payDetails.setTotal(total);
        payDetails.setCurrencyCode("USD");
        payDetails.setGatewayAccountId("---test id---");
        payDetails.setGatewayName("AuthorizeDotNet");
        payDetails.setGatewayDisplayName("Authorize.Net");
        payDetails.addLineItemsItem(lineItem);
        payDetails.setStatus("new");


        FormulaTab formulaTab= new FormulaTab();
        formulaTab.setTabLabel("payment_tab");
        formulaTab.setRecipientId("1");
        formulaTab.setDocumentId("1");
        formulaTab.setPageNumber("1");
        formulaTab.setName("PaymentLabel");
        formulaTab.setRequired("true"); //to be removed after testing
        formulaTab.setRoundDecimalPlaces("2");
        formulaTab.setFormula("([numberTab]) * 10");
        formulaTab.setPaymentDetails(payDetails);   
        formulaTab.setIsPaymentAmount("true");
        formulaTab.setLocked("true");
        formulaTab.setHidden("true");
        /*if (tabConfigArray.length == 4) {
            formulaTab.setAnchorXOffset(tabConfigArray[2]);
            formulaTab.setAnchorYOffset(tabConfigArray[3]);
        }*/
        formulaTab.setXPosition("0");
        formulaTab.setYPosition("0");
        docuTabs.getFormulaTabs().add(formulaTab);
        if(DocuSignConnect.docuSignTabMap.containsKey("1")){
            DocuSignConnect.docuSignTabMap.get("1").addFormulaTabsItem(formulaTab);
        }else{
            DocuSignConnect.docuSignTabMap.put("1", docuTabs);
        }

请帮助我发现错误。

0 个答案:

没有答案