我已经通过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);
}
请帮助我发现错误。