2014-12-09 17 views
13

Próbuję dokonać płatności ekspresowej paypal i użyłem https://www.sandbox.paypal.com/wsdl/PayPalSvc.wsdl. gdy zgłoszę UżyjNie można wygenerować klasy tymczasowej (wynik = 1). error CS0030:

PayPalAPIAASoapBinding paypal = new PayPalAPIAASoapBinding(); 

otrzymuję błąd

Nie można wygenerować tymczasowej klasy (wynik = 1). error CS0030: nie można przekonwertować typu 'exprtesscheckoutdemo.com.paypal.sandbox.TupleType []' do 'paypal.sandbox.TupleType' Błąd CS0029: Nie można niejawnie przekonwertować typu 'paypal.sandbox.TupleType' do

jak ponad przyjść ten

Odpowiedz

27

Wystarczy nacisnąć ten sam podczas aktualizacji do wersji 119. W swojej wygenerowanego pliku usługi sieci Web, wykonaj znaleźć dla [][] i zastąpić wszystkie wystąpienia z []. Zły facet wydaje się być merchantDataField w PaymentDetailsType.

It seems to be a bug in the Microsoft WSDL tools podczas interakcji z usługami, które mają "zagnieżdżone węzły z atrybutem maxOccurs ustawionym na nieograniczoną"; Zetknąłem się z tym już wcześniej podczas interakcji z interfejsami API SOAP FedEx.

+0

Uderzyłem też ten problem. Twoja poprawka rozwiązała problem. Wielkie dzięki! Chciałbym dowiedzieć się rozwiązania dla vb.net. Zaimplementowałem twoją poprawkę w kontekście biblioteki klasy C#, którą następnie skompilowałem, a następnie dodałem do mojego projektu VB. – brando

+0

Dziękuję również. To jest druga poprawka, którą musiałem zrobić z wygenerowanym przez PayPal plikiem Reference.cs. Drugi miał do czynienia z deserializacyjną pułapką - Przestrzeń nazw "cc" i "ebl" nie zostały zdefiniowane. Zobacz http://stackoverflow.com/questions/10172197/paypal-setexpresscheckout-soap i http://stackoverflow.com/questions/12106242/paypal-soap-api-reponses-require-manual-parsing. – GarDavis

+0

dziękuję, wykonałem pracę! nawet dzisiaj wciąż stoi w obliczu tego :) – skorzinetzki