DoDirectPayment: эта транзакция не может быть обработана из-за недопустимой конфигурации продавца.

Я продавец, который хочет взимать плату с клиентов, которые приходят на мой сайт.

Я вызываю API DoDirectPayment, всегда взимаю плату один раз и никогда не выставляю счет повторно.

Paypal правильно проверяет кредитную карту, выдавая правильное сообщение об ошибке, когда информация о карте неверна, но когда она верна и пришло время списать деньги с клиента, он говорит:

Эта транзакция не может быть обработана из-за недопустимой конфигурации продавца.

Я не могу понять, почему я получаю это сообщение об ошибке, используя DoDirectPayment API.

Кажется, все указывает на «Соглашение о выставлении счетов». Это что-то, что я должен настроить в Paypal?

Я использую тот же код для другой учетной записи PayPal и работает нормально. Кажется, что мне не хватает конфигурации в Paypal.

//Запрос

{"DoDirectPaymentRequestDetails":{"PaymentAction":2,"PaymentDetails":{"OrderTotal":{"currencyID":125,"Value":"29.47"},"ItemTotal":null,"ShippingTotal":null,"HandlingTotal":null,"TaxTotal":null,"OrderDescription":null,"Custom":null,"InvoiceID":null,"ButtonSource":null,"NotifyURL":null,"ShipToAddress":null,"ShippingMethod":0,"ShippingMethodSpecified":false,"ProfileAddressChangeDate":"\/Date(-62135578800000)\/","ProfileAddressChangeDateSpecified":false,"PaymentDetailsItem":null,"InsuranceTotal":null,"ShippingDiscount":null,"InsuranceOptionOffered":null,"AllowedPaymentMethod":0,"AllowedPaymentMethodSpecified":false,"EnhancedPaymentData":null,"SellerDetails":null,"NoteText":null,"TransactionId":null,"PaymentAction":0,"PaymentActionSpecified":false,"PaymentRequestID":null,"OrderURL":null,"SoftDescriptor":null},"CreditCard":{"CreditCardType":1,"CreditCardTypeSpecified":false,"CreditCardNumber":"XXXXXX","ExpMonth":X,"ExpMonthSpecified":true,"ExpYear":201X,"ExpYearSpecified":true,"CardOwner":{"Payer":"","PayerID":"","PayerStatus":1,"PayerStatusSpecified":false,"PayerName":{"Salutation":null,"FirstName":"daniel","MiddleName":null,"LastName":"XXXXX","Suffix":null},"PayerCountry":37,"PayerCountrySpecified":false,"PayerBusiness":null,"Address":{"Name":null,"Street1":"XXXXX","Street2":"d","CityName":"XXXXX","StateOrProvince":"XX","Country":37,"CountrySpecified":true,"CountryName":"CA","Phone":null,"PostalCode":"XXXXX","AddressID":null,"AddressOwner":0,"AddressOwnerSpecified":false,"ExternalAddressID":null,"InternationalName":null,"InternationalStateAndCity":null,"InternationalStreet":null,"AddressStatus":0,"AddressStatusSpecified":false},"ContactPhone":null},"CVV2":"XXX","StartMonth":0,"StartMonthSpecified":false,"StartYear":0,"StartYearSpecified":false,"IssueNumber":null,"ThreeDSecureRequest":null},"IPAddress":"127.0.0.1","MerchantSessionId":"","ReturnFMFDetails":false,"ReturnFMFDetailsSpecified":false},"ReturnFMFDetails":0,"ReturnFMFDetailsSpecified":false,"DetailLevel":null,"ErrorLanguage":null,"Version":"51.0","Any":null}

//Ответ

{"Amount":{"currencyID":125,"Value":"29.47"},"AVSCode":null,"CVV2Code":null,"TransactionID":null,"PendingReason":0,"PendingReasonSpecified":false,"PaymentStatus":0,"PaymentStatusSpecified":false,"FMFDetails":null,"ThreeDSecureResponse":null,"Timestamp":"\/Date(1375552138000)\/","TimestampSpecified":true,"Ack":1,"CorrelationID":"12d77e0d2b686","Errors":[{"ShortMessage":"Invalid Configuration","LongMessage":"This transaction cannot be processed due to an invalid merchant configuration.","ErrorCode":"10501","SeverityCode":1,"ErrorParameters":null}],"Version":"51.0","Build":"7165512","Any":null}

Любая помощь будет оценена по достоинству!

Спасибо


person Danio    schedule 02.08.2013    source источник
comment
Убедитесь, что имя пользователя, пароль и подпись учетной записи API указаны правильно. Какой точный код ошибки?   -  person Win    schedule 02.08.2013
comment
Можете ли вы предоставить запрос API, который вы отправляете, и полный ответ API, который вы получаете, и я посмотрю на него.   -  person PP_MTS_Chad    schedule 02.08.2013
comment
Спасибо, добавил в пост.   -  person Danio    schedule 03.08.2013


Ответы (4)


Вы пытаетесь обработать платежи по кредитной карте, в то время как ваша учетная запись в PayPal не включена для этого, поэтому вы получаете ответ об ошибке «неверная конфигурация продавца» от DoDirectPayment API PayPal.

Несмотря на то, что в заголовке вопроса вы упомянули «Экспресс-касса PayPal», вы не используете продукт «Экспресс-касса», если получаете эту ошибку.

Вам необходимо зарегистрироваться в PayPal Website Payments Pro, если это доступно в вашей стране (США, Великобритания, Калифорния).

В качестве альтернативы используйте PayPal Express Checkout, который доступен (почти) во всех странах, в которых доступен сам PayPal и не требует ежемесячной платы.

person Robert    schedule 03.08.2013
comment
правда, я использую DoDirectPayment, моя ошибка! Я исправил пост. - person Danio; 03.08.2013
comment
Как я и предполагал, вам нужно будет зарегистрироваться в PayPal Website Payments Pro с учетной записью, с которой вы выполняете вызовы API. Обратите внимание, что вам необходимо подать заявку на «Платежи на веб-сайте Pro». - person Robert; 04.08.2013

Теперь, когда вы сообщили мне, что на самом деле говорите о DoDirectPayment, я могу сказать вам, что ошибка, которую вы получаете, означает, что DDP просто не активен в учетной записи. Это может быть по ряду причин.

Payments Pro менялся с годами. Раньше, когда появлялась эта ошибка, я мог просто сказать вам, что вам нужно подать заявку на Pro, и если вы уже сделали это и были одобрены, вам нужно убедиться, что вы приняли соглашение о выставлении счетов. Соглашение о выставлении счетов в этом случае — это ваше согласие платить PayPal 30 долларов США в месяц сверх комиссии за транзакцию. Это их плата за использование Pro.

Теперь Payments Pro состоит как из DoDirectPayment, так и из PayFlow, но в зависимости от того, какой версией вы не пользуетесь, вам может потребоваться использовать PayFlow или вам может просто потребоваться запросить, чтобы они включили DDP для вас.

person Drew Angell    schedule 04.08.2013
comment
Да, это логично, мне показалось интересным, что мне никогда не приходилось регистрироваться в Payments Pro для последнего веб-сайта, которым я пользовался. У меня нет 30 в месяц плата. Я просто плачу комиссию за транзакцию. Вот почему я хотел перевести еще один из моих сайтов на Paypal. Но теперь кажется, что все изменилось. Я связался с поддержкой PayPal и посмотреть, что они должны сказать. Спасибо - person Danio; 04.08.2013
comment
Платежи Pro всегда стоили 30 долларов в месяц. Тем не менее, новый REST API позволяет вам обрабатывать кредитные карты напрямую без необходимости в Pro, поэтому, если вы хотите избежать комиссии, вы можете просто пойти по этому пути. - person Drew Angell; 05.08.2013

Эта ошибка говорит вам о том, что в учетной записи продавца Paypal что-то неправильно настроено, да.

Следующее взято из справочного центра Paypal (https://www.paypal.com/helpcenter/main.jsp;jsessionid=JBxTykGsT2gy4GTwcFQhCfTmqgNj9TnHfprRRMfDRwpqGs0H2yxf!-7839025?t=solutionTab&ft=homeTab&ps=&solution_GB&nchare=163218&localUTF-8&CountryCode=GB&CMD=_help&serverInstance=9004):

Что такое соглашение о выставлении счетов и как оно работает?

Соглашение о выставлении счетов позволяет продавцу взимать плату с вашего счета PayPal, когда вы покупаете товары или пользуетесь услугами этого продавца.

Примером этого может быть соглашение между eBay и клиентом PayPal об оплате сборов eBay с использованием учетной записи PayPal клиента, когда клиент выставляет товары на аукцион на eBay.

Соглашения о выставлении счетов отличаются от подписок тем, что при подписках взимается фиксированная сумма за определенный период.

Чтобы изменить или отменить Соглашение о выставлении счетов:

Войдите в свою учетную запись PayPal. Нажмите «Профиль» в верхней части страницы. Выберите Мои деньги. В разделе «Мои предварительно утвержденные платежи» нажмите «Обновить». Чтобы начать, выберите соответствующее соглашение о выставлении счетов.

person LogicaLInsanity    schedule 02.08.2013
comment
Проблема в том, что я продавец, так зачем мне соглашение о выставлении счетов? - person Danio; 02.08.2013

Похоже, вы пытаетесь использовать соглашения о выставлении счетов в своем запросе SetExpressCheckout, но они не утверждены в вашей учетной записи.

Соглашения о выставлении счетов необходимы для обработки будущих платежей с использованием DoReferenceTransaction. Запрос SetExpressCheckout включает параметры соглашения о выставлении счетов для настройки. Если вы пройдете через SEC без параметров соглашения о выставлении счетов, то будущий вызов DoReferenceTransaction не будет работать.

Итак, вопрос в том, пытаетесь ли вы работать с эталонными транзакциями/соглашениями о выставлении счетов или нет? Если нет, вам просто нужно удалить параметры соглашения о выставлении счетов из вашего запроса.

Если вы хотите опубликовать здесь пример вашего фактического запроса и ответа API, я, вероятно, смогу помочь вам лучше.

person Drew Angell    schedule 03.08.2013
comment
Извините, если ввел вас в заблуждение, я использую DoDirectPayment, а не SetExpressCheckout - person Danio; 03.08.2013