如何防止重复的PayPal付款



我有一个简单的"立即付款"按钮,这是通过按钮生成器创建的代码,并添加了一个"自定义"隐藏字段来识别它。我想知道是否有一些额外的隐藏字段可以添加,告诉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出现故障时,我成功地支付了两次相同的交易。这是我绝对想避免的事情。当然,不仅对客户来说,这可以得到退款,而且因为我不希望我的数据库一团糟,我希望避免大量的编码来捕捉重复的付款。。。

您需要为"invoice"参数添加一个唯一的标识符;<input type="hidden" name="invoice" value="your unique invoice ID">,并在您的账户www.paypal.com 的"个人资料">"我的销售工具"部分启用"阻止重复付款"

谢谢Robert!(上图)

事实上,我走得太远了,我打算向PayPal商家技术支持部门询问此事,就在提交问题之前,我发现了一个页面,上面有答案-

避免重复付款:https://ppmts.custhelp.com/app/answers/detail/a_id/165

不确定你是否必须登录才能看到上面的页面,所以我在这里引用页面是为了方便:

您可以通过将发票编号传递到PayPal系统。此功能可用于网站支付标准和网站支付专业版(SOAP和NVP)。PayPal系统将检查以确保您传递的发票编号尚未已在您的帐户中支付,只要您配置了个人资料阻止重复的发票号码。

示例:发票001已经付款,因此如果001被传递给PayPal帐户第二次,它将被拒绝。

要在您的个人资料中阻止此操作:

阻止意外付款:您可以通过阻止重复的发票ID

  1. 登录位置https://www.paypal.com

  2. 单击"配置文件"子选项卡

  3. 在"销售偏好"下点击"付款接收偏好"

  4. 如果您希望在传递"发票"变量时使用此功能,请选择"是,阻止每个发票ID多次付款"

  5. 滚动到底部并点击"保存"按钮

要传递网站支付标准的发票号码,您将需要在现有的按钮代码中添加一行代码。你不能将此代码添加到最初创建为加密的按钮中。实例下图:

对于Website Payments Pro,您传递的参数取决于类型您正在进行的API调用。

对于SOAP:InvoiceID

对于NVP:INVNUM

使用Pro时,如果检测到重复的发票编号,则错误10412将被退回。对于API错误代码的完整列表,以及关于10412错误的详细信息点击此处

相关内容

  • 没有找到相关文章

最新更新