您好我是一名刚刚开发PayPal的开发人员,我已经获得了一个已成功运行多年的遗留应用程序/网站。不幸的是,负责开发本网站的人并不强烈相信文档或面向未来的价值。我不得不对这个ASP.NET MVC应用程序的各个部分之间的逻辑以及对其支持数据库的调用进行几次重大的信任。
但更重要的是,该网站多年来一直利用PayPal按钮及其IPN功能与数据库进行通信。在这些情况下,我们只有一个产品,与一个按钮ID相关联。然而,在上个月我被要求开始支持选项,以便用户可以选择他们是否想要与产品一起修改他们的“最终价格”。
通过jquery / javascript序列化并提交的网站旧部分如下所示:
<form action="https://www.paypal.com/cgi-bin/webscr" id="paypal" method="post" target="_top">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="@Drawn from Database and Model@">
<input type="hidden" name="custom" id="orderNumber" value="">
</form>
我所做的更改是基于我在公司帐户上创建的新测试按钮,该按钮具有以下片段:
<table>
<tr><td><input type="hidden" name="on0" value="Item (Y/N)">Item (Y/N)</td></tr>
<tr>
<td><select name="os0">
<option value="No">No $1.00 CAD</option>
<option value="Yes">Yes $1.20 CAD</option>
</select> </td>
</tr>
</table>
所以我在上一节中添加了以下内容以尝试支持它。
<form action="https://www.paypal.com/cgi-bin/webscr" id="paypal" method="post" target="_top">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="@Drawn from Database and Model@">
<input type="hidden" name="on0" value="Yes">
<input type="hidden" name="custom" id="orderNumber" value="">
</form>
然而,在测试并试图检索我正在购买的产品时,Paypal给了我一个屏幕
“目前似乎没有工作。请稍后再试。”
使用以代码= AMOUNT_ERROR结尾的URL
正如我所说,这些表单似乎是使用javascript/Jquery
在submit()
中提交的,更具体地说是在webflow.js文档中提交的。
有人猜到我收到这个错误的原因吗?也许我应该重新排列表单的格式,以便与示例按钮的结构一致?或者也许我应该使用os0作为表单中项目的名称而不是on0?我会直接联系PayPal支持,但这很难做到,因为我没有自己支持的帐户,拥有它的人很难在很长一段时间内到手。
编辑:对不起伙计们,我找到了。这是我序列化的值的名称是错误的。 Paypal无法理解。我应该命名的那个字段是os0而不是on0。
抱歉这个家伙,但这次我将不得不回答我自己的问题。我之前试图在https://www.paypal.com/cgi-bin/webscr上序列化并将'on0'发布到PayPal。我的错误是PayPal不理解,尽管如何使用原始URL查询来触发按钮选项。我的更正如下:
<form action="https://www.paypal.com/cgi-bin/webscr" id="paypal" method="post" target="_top">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="@Drawn from Database and Model@">
<input type="hidden" name="os0" value="Yes">
<input type="hidden" name="custom" id="orderNumber" value="">
</form>
我知道这个问题没有多大意义。在我的主管强调他对此功能的要求之前,我很高兴我找到了解决方案。我想在IT方面我们都必须与传统代码进行交易,并由临时员工进行密码解决。对于那个很抱歉。