我有一个简单的立即付款按钮,通过按钮制作者创建的代码,添加了“自定义”隐藏字段以识别它。 我想知道是否有一些额外的隐藏字段我可以添加告诉PayPal“此交易不应该进行两次”。
<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="custom" value="{MYUNIQUEID}">
<input type="hidden" name="hosted_button_id" value="{MYHOSTEDBUTTONID}">
<input type="image" src="https://www.sandbox.paypal.com/en_US/i/btn/btn_paynowCC_LG.gif"
border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
<img alt="" border="0" src="https://www.sandbox.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1">
</form>
现在,客户不太可能支付两次,但我注意到当Sandbox出现故障时,我成功地支付了两次相同的交易。我绝对想避免的东西。不仅仅是为了客户,可以获得退款,当然,还因为我不希望我的数据库搞砸了,我希望避免大量编码以捕获重复付款......
答案 0 :(得分:12)
您可能希望在“invoice”参数中添加唯一标识符; <input type="hidden" name="invoice" value="your unique invoice ID">
并在“个人资料”&gt;中启用“阻止重复付款”您的帐户中的“我的销售工具”部分位于www.paypal.com
答案 1 :(得分:8)
谢谢罗伯特! (上面的帖子)
我实际上走得太远,以至于我打算向PayPal商家技术支持部门询问,并在提交问题之前找到了一个带答案的页面 -
避免重复付款: https://ppmts.custhelp.com/app/answers/detail/a_id/165
不确定您是否必须登录才能看到上面的页面,所以为了方便起见,我在这里引用了这个页面:
您可以通过传递发票号码来避免重复交易 PayPal系统。此功能适用于网站付款 标准和网站付款专业版(SOAP和NVP)。 PayPal系统 将检查以确保您传递的发票号码尚未确定 只要您配置了个人资料,我们就会在您的帐户中付款 阻止重复的发票号码。
示例:已支付Invoice 001,因此如果将001传递给 PayPal帐户第二次被拒绝。
要在个人资料中屏蔽此内容:
阻止意外付款:您可以阻止意外付款 阻止重复的发票ID
点击“个人资料”子标签
在“销售偏好设置”下,点击“付款接收偏好设置”
如果您希望在传递“发票”变量时使用此功能,请选择“是,阻止每个发票ID支付多笔付款”
- 醇>
滚动到底部,然后点击“保存”按钮
要传递网站付款标准的发票号,您将会 需要在现有按钮代码中添加一行代码。你不能 将此代码添加到最初创建为加密的按钮。例 下面:
对于Website Payments Pro,您传递的参数取决于类型 你正在进行的API调用。
对于SOAP:InvoiceID
对于NVP:INVNUM
使用Pro时,如果检测到重复的发票号,则表示错误 10412将被退回。有关API错误代码的完整列表, 有关10412错误Click Here
的详细信息