DoDirectPayment:由于商家配置无效,无法处理此交易

时间:2013-08-02 16:17:26

标签: asp.net paypal express-checkout

我是一位想要向访问我网站的客户收费的商家。

我正在拨打 DoDirectPayment API ,一次充电一次,永远不会重复计费。

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}

任何帮助将不胜感激!

由于

4 个答案:

答案 0 :(得分:3)

您尝试处理信用卡付款,而您的PayPal帐户未启用,这就是为什么您从PayPal的DoDirectPayment API收到“无效的商家配置”错误回复的原因。

即使您在问题标题中提到“PayPal Express Checkout”,如果您收到此错误,也使用Express Checkout产品。

如果贵国(美国,英国,加拿大)有此优惠,则需要注册PayPal网站付款专业版。

或者,使用PayPal Express Checkout,可在(几乎)所有国家/地区使用PayPal本身,并且不需要按月付费。

答案 1 :(得分:1)

现在您告诉我您实际上是在谈论DoDirectPayment我可以告诉您,您获得的错误意味着DDP在帐户上根本不活跃。这可能有很多原因。

Payments Pro has changed over the years。如果出现此错误,我以前只能告诉您需要申请专业版,如果您已经完成并获得批准,那么您需要确保已经接受了结算协议。在这种情况下的结算协议是您同意在交易费用之上支付30美元/月的PayPal。这是使用Pro的费用。

现在,Payments Pro包含DoDirectPayment和PayFlow,但根据您不使用的版本,您可能需要使用PayFlow,或者您可能只需要请求他们为您启用DDP。

答案 2 :(得分:0)

该错误告诉您Paypal商家帐户中存在错误配置,是的。

以下内容来自Paypal帮助中心(https://www.paypal.com/helpcenter/main.jsp;jsessionid=JBxTykGsT2gy4GTwcFQhCfTmqgNj9TnHfprRRMfDRwpqGs0H2yxf!-7839025?t=solutionTab&ft=homeTab&ps=&solutionId=163218&locale=en_GB&_dyncharset=UTF-8&countrycode=GB&cmd=_help&serverInstance=9004):

什么是结算协议?它是如何运作的?

当您从商家购买商品或使用该商家的服务时,结算协议允许商家向您的PayPal帐户收费。

这方面的一个例子是eBay和PayPal客户之间达成的协议,当客户在eBay上列出拍卖物品时,使用客户的PayPal账户支付eBay费用。

结算协议与订阅不同,因为订阅会在指定期间内收取固定金额。

修改或取消结算协议:

登录您的PayPal帐户。 点击页面顶部附近的个人资料。 选择我的钱。 在“我的预先批准的付款”部分中,点击“更新”。 选择相关的结算协议即可开始使用。

答案 3 :(得分:0)

听起来您在SetExpressCheckout请求中尝试使用结算协议,但您的帐户未获得批准。

需要使用结算协议才能使用DoReferenceTransaction处理未来的付款。 SetExpressCheckout请求包括用于设置此项的计费协议参数。如果您在没有结算协议参数的情况下通过SEC,则未来的DoReferenceTransaction调用将无效。

所以,问题是您是否尝试使用参考交易/结算协议?如果没有,您只需要从请求中删除结算协议参数。

如果您想在此发布实际API请求和响应的示例,我可以帮助您更好。