Pau*_*aul 5 paypal paypal-sandbox
我有一个简单的立即付款按钮,通过按钮制造商创建的代码,添加了"自定义"隐藏字段以识别它.我想知道是否有一些额外的隐藏字段我可以添加告诉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>
Run Code Online (Sandbox Code Playgroud)
现在,客户不太可能支付两次,但我注意到当Sandbox出现故障时,我成功地支付了两次相同的交易.我绝对想避免的东西.不仅仅是为了客户,可以获得退款,当然,但是因为我不希望我的数据库搞砸了,我想避免进行大量编码以捕获重复付款...
Rob*_*ert 12
您可能希望在"invoice"参数中添加唯一标识符; <input type="hidden" name="invoice" value="your unique invoice ID">并在您的帐户www.paypal.com上的"个人资料">"我的销售工具"部分中启用"阻止重复付款"
谢谢罗伯特!(上面的帖子)
我实际上走得太远,以至于我要向PayPal Merchant技术支持部门询问它,在提交我的问题之前,我找到了一个答案的页面 -
避免重复付款:https: //ppmts.custhelp.com/app/answers/detail/a_id/165
不确定您是否必须登录以查看上面的页面,所以我在这里引用页面是为了方便:
您可以通过将发票号传递到PayPal系统来避免重复交易.此功能适用于网站付款标准和网站付款专业版(SOAP和NVP).只要您已将配置文件配置为阻止重复的发票编号,PayPal系统将检查以确保您已通过的发票号码尚未在您的帐户中支付.
示例:已支付Invoice 001,因此如果001再次传递给PayPal帐户,则会被拒绝.
要在您的个人资料中阻止此操作
阻止意外付款:您可以通过阻止重复的发票ID来防止意外付款
单击"配置文件"子选项卡
在"销售偏好设置"下,点击"付款接收首选项"
如果您希望在传递"invoice"变量时使用此功能,请选择"是,阻止每个发票ID支付多笔付款"
滚动到底部,然后点击"保存"按钮
要传递网站付款标准的发票号,您需要在现有按钮代码中添加一行代码.您无法将此代码添加到最初创建为加密的按钮.示例如下:
对于Website Payments Pro,您传递的参数取决于您正在进行的API调用的类型.
对于SOAP:InvoiceID
对于NVP:INVNUM
使用Pro时,如果检测到重复的发票号,则将返回错误10412.有关API错误代码的完整列表,以及有关10412错误的详细信息,请单击此处