在HTML表单帖子和RunScope帖子失败时,向PayPal发送的cURL帖子成功

时间:2013-10-24 15:15:49

标签: forms post curl paypal runscope

我目前正在开发与PayPal的Payflow Pro Gateway的集成。我正在向PayPal发送请求以获取他们的“安全令牌”,以便我可以使用它来进行真正的交易。我在SO上找到的样本通过cURL工作,但我运行的原始HTML Form POST和RunScope测试确实工作。

这是cURL命令:

curl https://pilot-payflowpro.paypal.com -kd "PARTNER=PayPal&VENDOR=*****&USER=*****&PWD=*****&TRXTYPE=A&AMT=40&CREATESECURETOKEN=Y&SECURETOKENID=*******&SILENTTRAN=TRUE"

根据cURL documentation

-k选项是:

  

“(SSL)此选项明确允许curl执行”不安全“SSL   连接和转移。尝试所有SSL连接   通过使用默认安装的CA证书捆绑包使其安全。   除非-k,否则这会使所有被认为“不安全”的连接失败    - 使用了固化。“

-d选项是:

  

“(HTTP)将POST请求中的指定数据发送到HTTP服务器,   与用户填写HTML时浏览器的操作方式相同   表单并按下提交按钮。这将导致卷曲通过   使用content-type将数据发送到服务器   应用程序/ x-WWW窗体-urlencoded。比较-F, - form。“

     

-d, - data与--data-ascii相同。要纯数据二进制发布数据,您应该使用--data-binary选项。对URL进行URL编码   您可以使用的表单字段的值--data-urlencode。

     

如果在同一命令中多次使用这些选项中的任何一个   在行中,指定的数据将与a合并在一起   分离& -symbol。因此,使用'-d name = daniel -d skill = lousy'会   生成一个看起来像'name = daniel& skill = lousy'的帖子块。

     

如果用字母@开始数据,其余的应该是一个文件   用于读取数据的名称,或者 - 如果您希望curl读取数据   来自stdin。该文件的内容必须已经过URL编码。   也可以指定多个文件。从名为的文件中发布数据   因此,'foobar'将使用--data @foobar完成。当--data被告知   从这样的文件读取,回车和换行将是   剥离了。

效果很好并返回此回复:

RESULT=0&SECURETOKEN=*****&SECURETOKENID=*****&RESPMSG=Approved

HTML表单POST

但是,我认为同一个请求在以下HTML表单POST中失败:

                   

<input type="hidden" name="TRXTYPE" value="A" />
<input type="hidden" name="SILENTTRAN" value="TRUE" />

<input type="hidden" name="AMT" value="40" />

<input type="hidden" name="CREATESECURETOKEN" value="Y" />
<input type="hidden" name="SECURETOKENID" value="*****" />

<input type="submit" value="Get Secure Token" />

这让我在FireFox中“连接已重置”。

我也尝试使用jQuery使用$ .ajax()来发布数据,但是我收到了200响应而没有数据。

Runscope

当我将上述参数输入RunScope时,我得到:

RESULT=1&SECURETOKENID=*****&RESPMSG=User authentication failed

这没有任何意义!

我以为PayPal正在做一些检查用户代理或请求标题的事情,但我没有任何真正的想法。任何人都可以对这种行为有所了解吗?

0 个答案:

没有答案