Payflow 链接在经典 ASP 的沙箱中随机抛出字段丢失错误

Posted

技术标签:

【中文标题】Payflow 链接在经典 ASP 的沙箱中随机抛出字段丢失错误【英文标题】:Payflow link randomly throwing field missing error in sandbox for Classic ASP 【发布时间】:2012-06-19 06:58:59 【问题描述】:

我正在尝试将 Payflow 链接与我的经典 ASP 网站集成。现在我正在使用测试帐户来测试交易。

这是流程, - 我将在我的网站上有一个页面,其中将显示地址、姓名、邮件、邮编和其他 Payflow 交易的必填字段。同样的数据也会被添加到隐藏字段中,比如

    <form method="post" action="https://payflowlink.paypal.com">  
 <input type="hidden" name="INVOICE"   value="<%=request.querystring("idOrder")%>">
 <input type="hidden" name="LOGIN"   value="<%=pVeriSignLogin%>">
 <input type="hidden" name="PARTNER"   value="PayPal">
 <input type="hidden" name="TYPE"   value="S">
 <input type="hidden" name="AMOUNT"   value="<%
     response.write money(request.querystring("ordertotal"))
  %>">

 <input type="hidden" name="DESCRIPTION"value="<%=request.querystring("orderDetails")%>">
 <input type="hidden" name="FIRSTNAME"  value="<%=request.querystring("name")%>">
 <input type="hidden" name="LASTNAME"  value="<%=request.querystring("lastName")%>">
 <input type="hidden" name="ADDRESS"  value="<%=request.querystring("address")%>">
 <input type="hidden" name="CITY"  value="<%=request.querystring("city")%>">
 <input type="hidden" name="STATE"  value="<%=request.querystring("state")&request.querystring("stateCode")%>">
 <input type="hidden" name="ZIP"  value="<%=request.querystring("zip")%>">
 <input type="hidden" name="COUNTRY"  value="<%=request.querystring("country")&request.querystring("countryCode")%>">
 <input type="hidden" name="PHONE"  value="<%=request.querystring("phone")%>">
 <input type="hidden" name="EMAIL"  value="<%=request.querystring("email")%>">            

 <input type="hidden" name="NAMETOSHIP"  value="<%=request.querystring("shippingName")%>">
 <input type="hidden" name="LASTNAMETOSHIP"  value="<%=request.querystring("shippingLastName")%>">
 <input type="hidden" name="ADDRESSTOSHIP"  value="<%=request.querystring("ShippingAddress")%>">
 <input type="hidden" name="CITYTOSHIP"  value="<%=request.querystring("ShippingCity")%>">
 <input type="hidden" name="STATETOSHIP"  value="<%=request.querystring("ShippingState")&request.querystring("ShippingStateCode")%>">
 <input type="hidden" name="ZIPTOSHIP"  value="<%=request.querystring("ShippingZip")%>">
<input type="hidden" name="COUNTRYTOSHIP"  value="<%=request.querystring("country")&request.querystring("ShippingCountryCode")%>">
 <input type="hidden" name="PHONETOSHIP"  value="<%=request.querystring("shippingPhone")%>">
 <input type="hidden" name="EMAILTOSHIP"  value="<%=request.querystring("shippingEmail")%>">
根据先前表单数据的操作,将传输到“https://payflowlink.paypal.com”。由于我们从上一页传递了数据,因此这里的字段将自动填充。用户现在将添加其信用卡号和到期日期。

到这里为止,一切都按预期正常运行。现在,如果我点击“立即付款”按钮,我会收到消息,

某些必需信息缺失或不正确。请更正以下字段,然后重试。

  Error: Address is a required field.
  Error: State is a required field.
  Error: Zip Code is a required field.
  Error: Ship To Address is a required field.
  Error: Ship To State is a required field.
  Error: Ship To Zip Code is a required field.

奇怪的是,我已经传递了这些数据,并且支付流链接表单已经在字段中渲染了它们。此问题发生在随机基础上。有时当我点击“立即付款”选项时,它会成功完成交易,并发送到成功页面。

有人遇到过同样的问题吗?我不知道如何解决它。不知道是支付流链接沙盒问题还是我的方式有任何问题。

【问题讨论】:

你确定对这个页面的请求携带了 querystring 上的所有数据吗?对我来说似乎很奇怪,我希望该级别的数据来自使用 POST 方法的表单,因此您应该是 Request.Form 而不是 QueryString 这不是问题,因为支付流表单已经捕获了我作为 POST 传递的数据并将它们呈现给字段。所以 Request.Form 或 Querystring 在这里不是问题。 【参考方案1】:

使用以下链接解决,

https://www.x.com/node/2749

【讨论】:

以上是关于Payflow 链接在经典 ASP 的沙箱中随机抛出字段丢失错误的主要内容,如果未能解决你的问题,请参考以下文章

如何创建 PayPal Payflow Pro 测试账户

KeyVaultClient 在调试时随机抛出 FatalExecutionEngineError

如何创建 Payflow 链接沙盒帐户

使用链接在经典 ASP 中提取 Paypal 交易详细信息

Payflow 链接返回 URL 错误

PayPal Payflow 链接中信用卡表格的 CSC 字段中接受的 1 位数字