我正在使用PayPal Payment Advanced的网站上工作。 我已经阅读了文档并尝试了几种获取初始令牌的方法。 以下是我的代码:
Dim collection As New 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表单尝试了这个基本过程,其中post和hidden表单字段具有键值对,结果始终相同。
我可以在PayPal Manger中访问这两个帐户而没有任何问题。
任何人的帮助都会非常感激。
答案 0 :(得分:1)
我发现了这个问题,我在这里发帖是希望别人不必像我一样经历同样的头痛。
在尝试提交PayPal付款高级测试数据时,您需要确保您确实拥有与PayPal经理关联并绑定的沙箱帐户电子邮件。我创建了一个虚构的电子邮件,因为我的实际电子邮件已经与另一个帐户关联。 所以一定要去developer.paypal.com并选择“Sandbox Accounts” - >创建帐户。
创建帐户后,在Sandbox测试帐户中选择新条目,然后在“配置文件”选项卡下选择“配置文件”,确保选中PayPal Payments Pro。
现在,关闭PayPal经理。从这里,您需要确保PayPal Sandbox电子邮件地址已关联。在开发人员沙箱中添加新帐户后,输入电子邮件地址并选择更新。
在交易设置下,确保您拥有“每笔交易的最大金额”
中的值最后确保正确设置名称值参数。在我的情况下,参数PASSWORD失败了。应该是PWD。 p>
因此,您的表单应如下例所示进行设置。
<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支持他们帮助解决这个问题。他们最有帮助。
答案 1 :(得分:1)
要注意,请从Paypal知识库网站
注意:尽管PayPal Manager允许使用特殊字符作为密码的一部分,但请避免使用它们,因为某些操作shell(如DOS或UNIX)会对它们进行不同的处理。例如,百分号(%)是DOS中的特殊字符。诸如“PaSS%word1”之类的密码将截断为“PaSS”,因为DOS将在第二个“S”之后删除所有字符。
我有一个包含非字母数字字符的密码,身份验证将以与OP相同的方式失败。
https://www.paypal-knowledge.com/infocenter/index?page=content&id=FAQ1223&actp=LIST
答案 2 :(得分:0)