2016-04-07 34 views
2

Bölünmüş ödeme oluşturmak için bir API çağrısı oluşturmaya çalışıyorum. AdaptivePaymentService'u oluşturup Pay yöntemini çağırdıktan sonra, SUCCESS'u gösteren bir PayResponse döndürür. Ancak, payKey'u aldığımda ve https://www.sandbox.paypal.com/webscr?cmd=_ap-payment&paykey= numaralı sayfayı açtığımda, "Bu işlem zaten onaylandı. Lütfen satırların ayrıntılarını görmek için lütfen PayPal Hesabınıza Genel Bakış'ı ziyaret edin." ve sağ üstte "Fiverr.com" veya başka bir rastgele web sayfası gösterilir. Aldığım payKey10'un bir SUCCESS iletisiyle birlikte gönderildiğini doğruladım, bu yüzden neden geçersiz olduğunu anlamıyorum. Aşağıdaki kod kullanıyorum.Paypal payKey beni yanlış ödemeye getiriyor

 ReceiverList receiverList = new ReceiverList(); 
     receiverList.receiver = new List<Receiver>(); 
     RequestEnvelope requestEnvelope = new RequestEnvelope("en_US"); 

     Dictionary<string, string> configurationMap = new Dictionary<string, string>(); 

     configurationMap.Add("account1.apiUsername", "----"); 
     configurationMap.Add("account1.apiPassword", "----"); 
     configurationMap.Add("account1.apiSignature", "----"); 
     configurationMap.Add("account1.applicationId", "APP-80W284485P519543T"); 

     configurationMap.Add("mode", "sandbox"); 

     Receiver receiver1 = new Receiver(); 
     receiver1.amount = ((decimal?)9.00); 
     receiver1.email = "[email protected]"; 

     receiverList.receiver.Add(receiver1); 

     Receiver receiver2 = new Receiver(); 
     receiver2.amount = ((decimal?)2.00); 
     receiver2.email = "[email protected]"; 

     receiverList.receiver.Add(receiver2); 

     PayRequest request = new PayRequest(requestEnvelope, "PAY", "https://devtools-paypal.com/guide/ap_parallel_payment/dotnet?cancel=true", "USD", receiverList, "https://devtools-paypal.com/guide/ap_parallel_payment/dotnet?success=true"); 

     AdaptivePaymentsService service = new AdaptivePaymentsService(configurationMap); 
     PayResponse response = service.Pay(request); 

     if (!response.responseEnvelope.ack.ToString().Trim().ToUpper().Equals(AckCode.FAILURE.ToString()) && !response.responseEnvelope.ack.ToString().Trim().ToUpper().Equals(AckCode.FAILUREWITHWARNING.ToString())) 
     { 
      Process.Start("https://www.sandbox.paypal.com/webscr?cmd=_ap-payment&paykey=" + response.payKey); //opens the webpage 
     } 
     else 
     { 
      Console.WriteLine("E:" + String.Join("\n", response.error.Select((x) => x.message))); 
     } 

cevap

1

Şu anda bu sorunla karşılaşıyorum java.

Buna geri dönmeyi deneyin: "https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_ap-payment&paykey=" + paykey. Bununla çalışmak gerekiyor.

Tüm bulduğum, ama benim için çalışmadı.

+0

Bu zaten denedim başka bir çözüm, hiçbir boşuna :( –

+0

Nevermind! Bu gerçekten düzeltildi! Ben kullandığım tuhaf URL hakkında hiçbir fikrim yok, bu işe var! Bir milyon teşekkürler! –

+0

Hmm, bu hata oldu tekrar görünüyor, ama bir Çerez editörü yüklemek ve tüm .paypal çerezleri takas sorunu gidermek gibi görünüyor.Çok garip, çünkü ben birden fazla makinede aynı sorunu vardı çünkü Huh –