Çevre:. Visual Studio 2010 Professional .NET Framework 4 C#/WSDL kullanarak NET Çözüm (SOAP)
Eklendi Servis Başvurusu aşağıdaki WSDL kullanarak: https://www.paypalobjects.com/wsdl/PayPalSvc.wsdl
Sorun 1: Böyle basit bir şekilde derlendiğinde, Reference.cs dosyasından bir sürü hata alın. Ad alanı hataları gibi görünüyor. Projemizin Ad Alanı'ndaki Hizmet Referans Ad alanını bulamadığını belirtiyor. Bu nedenle, Reference.cs dosyasına girdim ve bu hatayı aldığım her yerde, proje adlarından önce projenin ad alanını kaldırdım ve şimdi derler. Son olarak tüm sınıflara erişim elde edilir. Gerekli özelliklere sahip DoDirectPaymentReq ve CustomSecurityHeader nesneleri oluşturulmuş ve doldurulmuştur. CustomSecurityHeader ve DoDirectPaymentReq türündeki argümanları alan DoDirectPayment yöntemini içeren bir PayPalAPIAAInterfaceClient sınıfı örneği oluşturuldu. Bugüne kadar ben içmedim nedenle
System.InvalidOperationException: Could not find default endpoint element that references contract 'Paypal.PayPalAPIAAInterface' in the ServiceModel client configuration section. This might be because no configuration file was found for your application, or because no endpoint element matching this contract could be found in the client element.
at System.ServiceModel.Description.ConfigLoader.LoadChannelBehaviors(ServiceEndpoint serviceEndpoint, String configurationName)
at System.ServiceModel.ChannelFactory.ApplyConfiguration(String configurationName, Configuration configuration)
at System.ServiceModel.ChannelFactory.ApplyConfiguration(String configurationName)
at System.ServiceModel.ChannelFactory.InitializeEndpoint(String configurationName, EndpointAddress address)
at System.ServiceModel.ChannelFactory`1..ctor(String endpointConfigurationName, EndpointAddress remoteAddress)
at System.ServiceModel.EndpointTrait`1.CreateSimplexFactory()
at System.ServiceModel.ClientBase`1.CreateChannelFactoryRef(EndpointTrait`1 endpointTrait)
at System.ServiceModel.ClientBase`1.InitializeChannelFactoryRef()
at System.ServiceModel.ClientBase`1..ctor()
at PaymentEngine.Paypal.PayPalAPIAAInterfaceClient..ctor() in Reference.cs: line 30063
: 2
using (var client = new **PayPalAPIAAInterfaceClient**())
{
var credentials = new CustomSecurityHeaderType
{
Credentials = new UserIdPasswordType
{
Username = "[email protected]",
Password = "xxxxxxx",
Signature = "jksadfuhasfweakjhasf"
}
};
_doDirectPaymentResponseType = client.DoDirectPayment(ref credentials, _doDirectPaymentReq);
}
Sorun: şu şekildedir: Yukarıdaki kod içeren yöntemi için bir TestMethod yazdıktan sonra, hatayı alıyorum bu gibi görünüyor C# içinde WSDL kullanarak PayPal SOAP protokolünü kullanarak başarılı bir işlem yapabildi.
Bunun çok basit olduğu izlenimi altındaydım. Basitçe Hizmet Başvurusu Ekleme ve WSDL'den proxy'de oluşturulan özellikleri ve yöntemleri ile Sınıfları kullanın.
Neredeler?
Yanlış WSDL kullanıyor muyum? Önce Sandbox'a karşı test yapmak ve daha sonra Live'a gitmek istiyorum.
Birazdan WSDL ile beraberim Eğer
, ben onun zaten orada WSDL tanımında başlangıcı elle ayarlamak isteyip varsayalım ediyorsam bilmiyorum hangi son noktaya, bilmiyor sınıf PayPalAPIAAInterfaceClient benziyor son (check it out). Sınıfın, CustomSecurityHeaderType'ı doldurmak için İmzası veya Sertifikayı kullanıp kullanmadığına bağlı olarak hangi uç noktanın gerektiğini bilmesi gerektiğini düşünüyorum.Ancak PayPalAPIAAInterfaceClient sınıfı Sandbox'a (test) bakmaya çalıştığımı veya canlı bir işlem olup olmadığını nasıl anlar?
PayPal, Sandbox ve Live için iki farklı WSDL'ye sahipti. Onlar burada bulabilirsiniz: - geliştirici/e_howto_api_soap_PayPalSOAPAPIArchitecture
desteklerinden görüştükten sonra ben https://cms.paypal.com/us/cgi-bin/?cmd=_render-content & CONTENT_ID = > oldu Sandbox ve Live: ->https://www.paypalobjects.com/wsdl/PayPalSvc için aşağıdaki WSDL'yi kullanması istenmiştir.wsdl
Canlı veya Sandbox testleri gerçekleştirmeyi düşündüğümüzde PayPalAPIAAInterfaceClient sınıfına nasıl söyleyebilirim. Ayrıca, SOAP ve İmzam metoduna bağlı olarak hangi son noktayı kullanacağım. PayPal bitiş noktaları burada bahsedilmektedir:
https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/howto_api_endpoints
YARDIM!
OMG !!! Ne kadar aptalım! Neden app.config dosyasına bakmadım! İŞE YARADI !! TEŞEKKÜRLER TEŞEKKÜRLER TEŞEKKÜRLER! Yine de Paypal'dan "Versiyon Destekli Değil" hatası alıyorum. – dparkar
Sürüm desteklenmiyor, SOAP isteğinde doğru sürümü göndererek çözülebilir: en son sürüm şu an 84.0'dir. – Robert
Teşekkürler Robert! Bu çok çalıştı :) – dparkar