PayPal 付款高级用户身份验证失败

标签 paypal

我正在开发一个使用 PayPal Payment Advanced 的网站。 我已经阅读了文档并尝试了几种获取初始 token 的方法。 下面是我的代码:

将集合变暗为新 NameValueCollection()

    collection.Add("PARTNER", "PayPal")
    collection.Add("VENDOR", "*Vendor ID*")
    collection.Add("USER", "*Transaction ID*")
    collection.Add("PASSWORD", "*The USER Password*")
    collection.Add("TRXTYPE", "S")
    collection.Add("AMT", "0.01")
    collection.Add("CREATESECURETOKEN", "Y")
    collection.Add("SECURETOKENID", Guid.NewGuid().ToString().Replace("-", ""))


    Dim wc As New WebClient()
    Dim response As Byte() = wc.UploadValues("https://pilot-payflowpro.paypal.com", "POST", collection)

    Dim text As String = ASCIIEncoding.ASCII.GetString(response)

结果总是 就像是..... RESULT=1&SECURETOKENID=11d95bb67d924cb2b8d9b4df81dfd586&RESPMSG=用户身份验证失败

我已经尝试过这个基本过程,使用一个带有帖子的简单 html 表单和带有键值对的隐藏表单字段,结果总是相同的。

我可以毫无问题地访问 PayPal Manger 中的两个帐户。

如果有人提供任何帮助,我们将不胜感激。

最佳答案

我发现了这个问题,我在这里发帖,希望其他人不必经历和我一样的头痛。

当尝试提交 PayPal 预付款测试数据时,您需要确保您确实有一个与 PayPal 管理器关联并绑定(bind)的沙盒帐户电子邮件。我创建了一个虚构的电子邮件,因为我的实际电子邮件已与另一个帐户关联。 因此,请务必访问developer.paypal.com并选择“沙盒帐户”-->“创建帐户”。

创建帐户后,在沙盒测试帐户中选择新条目,然后选择“个人资料”选项卡下的“个人资料”,确保选择 PayPal Payments Pro。

现在,请 PayPal 经理处理。从这里您需要确保 PayPal Sandbox 电子邮件地址已关联。将新帐户添加到开发者沙箱中后,输入电子邮件地址并选择更新。

在交易设置下,确保“每笔交易的最大金额”中有一个值

最后确保名称值参数设置正确。就我而言,参数 PASSWORD 失败。应该是PWD。

因此您的表单应按以下示例设置。

<form method="POST" action="https://pilot-payflowpro.paypal.com:443" target="paypal">

            <input type="hidden" value="PARTNER" name="PayPal" />
            <input type="hidden" value="VENDOR" name="*Vendor Name*" />
            <input type="hidden" value="USER" name="*User Name*" />
            <input type="hidden" value="PWD" name=""User Password"" />
            <!-- NOT PASSWORD -->

            <input type="hidden" value="CREATESECURETOKEN" name="Y" />
            <input type="hidden" value="TRXTYPE" name="S" />
            <input type="hidden" value="AMT" name="1.01" />
            <input type="hidden" value="SECURETOKENID" name="random guid here" />

            <input type="submit" value="Submit">

        </form>

或者

    Dim collection As New NameValueCollection()
    collection.Add("Partner", "Partner Name - Usually PayPal or Verisign")
    collection.Add("Vendor", "Vendor Name")
    collection.Add("User", "User Name")
    collection.Add("PWD", "User's Password")
    collection.Add("TRXTYPE", "Transaction type, example A, S, etc")
    collection.Add("AMT", "Amount")
    collection.Add("CREATESECURETOKEN", "Y")
    collection.Add("SECURETOKENID",  Guid.NewGuid().ToString().Replace("-", ""))

    Dim wc As New WebClient()
    Dim response As Byte() = wc.UploadValues(txtWebAddress.Text, "POST", collection)
    wc.Dispose()
    Dim responsetext As String = System.Text.ASCIIEncoding.ASCII.GetString(response)

我要感谢 PayPal 支持人员帮助解决此问题。他们非常有帮助。

关于PayPal 付款高级用户身份验证失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17376360/

相关文章:

magento 和 Paypal 整合

Paypal REST API 流程

php - PayPal API 错误 - 处理付款时出错

PayPal Rest API - Webhooks/IPN - 是否可以接收 eBay 付款通知?

javascript - 布伦特里信用卡支付按钮不显示

Paypal 定期付款 足够的钱

web-services - 在 Visual Studio 中创建对 PayPal SOAP API 的 Web 服务引用

paypal - 通过引用交易收取后续运费

php - 如何在paypal sdk php中支付失败

php - PayPal Express Checkout - 隐藏送货地址