2016-08-25 1 views
0

.net IppDotNetSdkForQuickBooksApiV3에 SDK V3을 사용하고 인보이스로 에 이메일을 보내십시오. 인보이스를 작성한 후 자동으로, 그래서 어쩌면 내가 뭔가 잘못하고있다). 나는이 문제를 얻고 곳.net SDK가 포함 된 Quickbook에 인보이스가 포함 된 이메일을 보내십시오.

//Get customer 
var customerQueryService = new QueryService<Customer>(context);    
var customer = customerQueryService.ExecuteIdsQuery("query to get customer"); 
/*I fill the invoice with data 
..  
.. 
..*/ 
//Call to generate invoice 
var invoiceAdded = dataService.Add(invoice); 
//Email to send 
invoiceAdded.BillEmail = customer.PrimaryEmailAddr; 
invoiceAdded.EmailStatus = EmailStatusEnum.NeedToSend; 
invoiceAdded.EInvoiceStatusSpecified = true; 
//Send Email 
dataService.SendEmail(invoiceAdded); 

이된다 처음에는 customer.PrimaryEmailAddr에서 개체가 더 id이 없다고 통지 : 그럼 언제

enter image description here

그래서이 어떻게되는지입니다 인보이스를 작성한 후 이메일을 보내도록 전화를 걸겠습니다. 다음 예외가 발생합니다.

내 Quickbook 사이트로 이동하는 경우 0

enter image description here

나는 물론 내 고객이 수행하고 자신의 이메일입니다.

그래서 내가 뭘 잘못하고있어?

+0

QBO에서 두 개의 별도 작업이기 때문에 빠른 책자는 기본적으로 전자 메일을 보내지 않으므로 QBO에 인보이스를 작성했다고해서 전자 메일을 송장으로 보내지 않으면 전자 메일이 전송되지는 않습니다 만들어집니다. –

답변

2

이 시도 : 그 방법에 전달

//Call to generate invoice 

var invoiceAdded = dataService.Add(invoice); 

//Send Email 

dataService.SendEmail<Invoice>(invoiceAddded, customer.PrimaryEmailAddr.Address); 
1

두 번째 인수는이 버그를 수정해야 송장 객체의 기본 이메일을 우선합니다 특정 전자 메일입니다. 기본적으로 송장을 보내는 데 사용할 수 있습니다 요청의 두 가지 버전이, 다음과 같은있다 : 그래서

POST /v3/company/<companyID>/invoice/<invoiceId>/send?sendTo=<emailAddr> 

방금 ​​송장을 통과, 그것은 매핑 : 다음

POST /v3/company/<companyID>/invoice/<invoiceId>/send 

그리고 일이 귀하의 인보이스 객체를 가져 와서 ID가 무엇인지 알아 내서 첫 번째 요청을하지만, 많은 필드는 QBO에서 기본적으로 채워지지 않습니다. 이는 인보이스 만 통과하면 오류가 발생하는 이유입니다. 어떤 이유로 QBO가 자동 채우기를하지 않는 것으로 추측되는 ID를 사용하는 전자 메일에 의존하기 때문에이 경우 다른 과부하를 사용하게됩니다. 메소드는 요청에 명시 적으로 이메일 주소를 설정하는 두 번째 요청에 매핑합니다. 올바른 이메일 주소를 전달하고 인보이스가 존재하는 한 요청은 실패 할 수 없습니다. 많은 양의 데이터가 올바르게 채워져 많은 버그를 열어 둔다면 QuickBooks API는 일반적으로 버그에 매우 취약하고 버그가 발생하기 쉽지 않으므로 일반적으로 버그가 적습니다 내 의견으로는 더 너 자신을 드러낸다.

관련 문제