2014-10-06 3 views
-1

Я пытаюсь создать программу, которая будет платить пользователям, используя API адаптивных платежей PayPal. Я пытаюсь внедрить метод неявных платежей для пользователей (поэтому мне не нужно их одобрять). Я в настоящее время динамично передавая полномочие PayPal в использовании словаря для конфигурации, например, так:Отсутствует ошибка для - Ошибка API адаптивных платежей PayPal

accountConfig = new Dictionary<string, string>(); 
accountConfig.Add("X-PAYPAL-SECURITY-USERID", "I HAVE PUT MY USERID HERE"); 
accountConfig.Add("X-PAYPAL-SECURITY-SIGNATURE", "MY SIGNATURE HERE" 
accountConfig.Add("X-PAYPAL-SECURITY-PASSWORD", "MY PASSWORD HERE"); 
accountConfig.Add("X-PAYPAL-APPLICATIONID", "APP-80W284485P519543T"); 
accountConfig.Add("X-PAYPAL-REQUEST-DATA-FORMAT", "NV"); 
accountConfig.Add("X-PAYPAL-RESPONSE-DATA-FORMAT", "NV"); 

Затем я конфигурирование платежа следующим образом:

AdaptivePaymentsService aps = new AdaptivePaymentsService(accountConfig); 
Receiver receiver = new Receiver { email = "RECEIVER EMAIL", amount = payment.CommissionAmount }; 
List<Receiver> l = new List<Receiver> { receiver }; 
RequestEnvelope re = new RequestEnvelope { errorLanguage = "en_US" }; 
PayRequest payRequest = new PayRequest(
    re, 
    "SERVICE", 
    "http://cancelUrl", 
    "USD", 
    new ReceiverList(l), 
    "http://returnUrl"); 
payRequest.senderEmail = "I HAVE PUT MY USERID HERE"; 
aps.Pay(payRequest); 

Согласно документации, в разделе неявных платежей вы должны иметь возможность использовать адрес электронной почты получателя API в качестве отправителя электронной почты, и это считается неявным платежом. Однако, где я должен это делать? Если я это делаю, как и выше, добавив его в payRequest, я получаю MissingCredentialException со следующим сообщением об ошибке:

Missing credentials for 

Там нет никакой другой информации. Что я делаю не так?

EDIT: Вот детали исключения:

PayPal.Exception.MissingCredentialException was unhandled 
    HResult=-2146233088 
    Message=Missing credentials for 
    Source=PayPalCoreSDK 
    StackTrace: 
     at PayPal.NVP.PlatformAPICallPreHandler..ctor(Dictionary`2 config, String rawPayload, String serviceName, String method, String apiUserName, String accessToken, String accesstokenSecret) 
     at PayPal.AdaptivePayments.AdaptivePaymentsService.Pay(PayRequest payRequest, String apiUserName) 
     at PayPal.AdaptivePayments.AdaptivePaymentsService.Pay(PayRequest payRequest) 
     at MyApp.PayPalAdapter.PayPerson(Person person, Payment payment, String returnUrl, String cancelUrl) in c:\Projects\MyApp\MyApp\PayPalAdapter.cs:line 50 
     at MyApp.Scripts.ManagePersonPaymentsJob.PayPerson(Person person, Payment payment) in c:\Projects\MyApp\MyApp.Scripts\ManagePersonPaymentsJob.cs:line 71 
     at MyApp.Scripts.ManagePersonPaymentsJob.Run() in c:\Projects\MyApp\MyApp.Scripts\ManagePersonPaymentsJob.cs:line 60 
     at MyApp.Scripts.Program.Main(String[] args) in c:\Projects\MyApp\MyApp.Scripts\Program.cs:line 47 
     at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args) 
     at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args) 
     at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly() 
     at System.Threading.ThreadHelper.ThreadStart_Context(Object state) 
     at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) 
     at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) 
     at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 
     at System.Threading.ThreadHelper.ThreadStart() 
    InnerException: 
+0

Вы просматриваете и читаете всю документацию [Adaptive Payment Paypal API] (https://developer.paypal.com/docs/classic/adaptive-payments/integration?guide/APIntro/) – MethodMan

+0

Необходимо увидеть необработанный запрос и ответы, которые вы получаете, включая заголовки. Я делаю это совсем немного, и у меня не было никаких проблем, поэтому вам что-то не хватает. Я выкопаю запрос, чтобы мы могли сравнить его. –

+0

@DJKRAZE Я читал довольно много. Если я что-то явно пропустил, не могли бы вы указать на это? – muttley91

ответ

0

Проблема в том, что я делал мои документы неправильно, в основном из-за различные различные примеры, которые я нашел в Интернете.

Кроме того, я нашел THIS руководство, которое оказалось наиболее полезным (и работало для меня). Я не уверен, почему я не наткнулся на это раньше. Надеюсь, это поможет кому-то в будущем.

Смежные вопросы