我已经设置了沙盒环境并启用了Business Pro,以便他们可以接受信用卡付款。
我使用您在网站上提供的PHP中的DirectPayment函数并传递以下参数:$ paymentType,$ paymentAmount,$ creditCardType,$ creditCardNumber,$ expDate,$ cvv2,$ firstName,$ lastName,$ street,$ city,$ state,$ zip,$ countryCode,$ currencyCode
使用$ resArray = hash_call(" DoDirectPayment",$ nvpstr)进行调用;
并且$ nvpstr字符串是'& AMT = 1& CURRENCYCODE = GBP& PAYMENTACTION = Sale& CREDITCARDTYPE = Visa& ACCT = 4137350247384347& EXPDATE = 122020& CVV2 = 123& FIRSTNAME = Test& LASTNAME = Last& amp ; STREET = TheLarchlands&安培; CITY =佩恩和安培; STATE =白金汉&安培; COUNTRYCODE = GB&安培; IPADDRESS = 90.207.76.28'
为什么我收到失败回复:
直接信用卡付款API调用失败。 详细错误消息:由于商家配置无效,无法处理此交易。 短错误消息:无效的配置 错误代码:10501 错误严重性代码:错误
谢谢!
答案 0 :(得分:0)
无效的商户配置意味着您的帐户未启用DoDirectPayment,或者您尚未接受PayPal向其收取的30美元/月的结算协议。
但可能会发生的事情是,您已获得批准并同意结算,但您需要在不同版本的Payments Pro上设置,要求您使用PayFlow API而不是DoDirectPayment。 Payments Pro 3.0仅允许您访问DoDirectPayment。 Payments Pro 1.5只允许您访问PayFlow。 Payments Pro 2.0应该允许您访问这两个API,因此您可以使用任何一个API(尽管我已经看到2.0帐户由于某种原因仍然需要PayFlow。)
如果您想了解更多详情,我实际上在History of PayPal Payments Pro上有一篇博客文章。
如果事实证明您确实需要PayFlow,请查看此PayPal PHP SDK。它有一个PayFlow信用卡呼叫设置作为样本和模板(以及它们提供的几乎所有其他PayPal Classic API呼叫的相同),因此您可以在几分钟内完成它。