使用贝宝按钮 - 我的网页可以判断贝宝交易是不是成功?

Posted

技术标签:

【中文标题】使用贝宝按钮 - 我的网页可以判断贝宝交易是不是成功?【英文标题】:using paypal button - can my webpage tell if paypal transaction was successful or not?使用贝宝按钮 - 我的网页可以判断贝宝交易是否成功? 【发布时间】:2016-02-19 04:19:00 【问题描述】:

我正在使用 joomla,并带来了一个允许用户在我的网站上发布列表的组件。该插件使用信用系统来支付列表费用,但信用系统非常复杂和混乱,所以我禁用了它。

我发现 PayPal 提供了一些代码,可以在任何网页上插入“立即购买”按钮 :) 完美,正是我想要的!

我遇到的唯一问题是按钮显示在我的添加列表表单(这也是组件的一部分)上,但只需单击表单的提交按钮即可轻松绕过它,这意味着列表可以无需付费即可发布。

所以我的问题是:

    一旦用户点击立即购买按钮,就可以 将他们重定向回他们刚刚填写的“添加列表”表单 出去? 我可以在付款完成之前禁用表单上的提交按钮吗 确认的? PayPal“立即购买”按钮是否返回任何信息 确认该过程是否成功?

我正在使用 html + php :)

我用来生成立即购买按钮的代码是

<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
    <input type="hidden" name="cmd" value="_xclick">
    <input type="hidden" name="business" value="smyacc@hotmail.com">
    <input type="hidden" name="lc" value="GB">
    <input type="hidden" name="item_name" value="listing-purchase">
    <input type="hidden" name="amount" value="2.99">
    <input type="hidden" name="currency_code" value="GBP">
    <input type="hidden" name="button_subtype" value="services">
    <input type="hidden" name="no_note" value="0">
    <input type="hidden" name="shipping" value="0.00">
    <input type="hidden" name="bn" value="PP-BuyNowBF:btn_buynowCC_LG.gif:NonHostedGuest">
    <input type="image" src="https://www.paypalobjects.com/en_US/GB/i/btn/btn_buynowCC_LG.gif" border="0" name="submit" >
    <img  border="0" src="https://www.paypalobjects.com/en_GB/i/scr/pixel.gif"  >
</form>

非常感谢您对此的任何帮助!!!

卢克

【问题讨论】:

您可能会在类似的主题***.com/questions/33951242/payment-info-using-paypal/… 上发现这很有趣 【参考方案1】:

好消息 - 您的问题的答案基本上是是的。您的最终目标肯定是可行的,但为了真正彻底解决您的问题,我们可能需要更多信息。

但是,您的操作方式可能因情况而异,不幸的是,我已经有一段时间没有配置这些按钮了,所以请耐心等待;-)

一旦用户点击立即购买按钮,是否可以将他们重定向回刚刚填写的添加列表表单?

是的,这是 PayPal 内置在其按钮和流程中的一项非常标准的功能。您在这里寻找的是 PayPal 所称的“返回 URL”或“自动返回”。这是the page with more of the documentation I quoted below,因此您可以决定返回 URL、自动返回或付款数据传输选项是否最适合您。

在买家结账后让他们返回您的网站

基本的结账体验让买家留在 PayPal 网站上 他们退房后。使用以下技术之一来增强 结帐体验,以便买家返回您的网站, 而是。

返回 URL:允许买家返回您网站上的页面,如果他们 点击 PayPal 付款确认页面上的退货链接或按钮。

要了解更多信息,请参阅第 3 步下的第 5 项:将高级功能添加到 用于显示 PayPal 结帐的“立即购买”按钮或 HTML 变量 页面。

自动返回:让 PayPal 将客户自动返回到 您的网站。

重要提示:PayPal 建议您开启支付数据传输 当您打开自动返回时。启用自动退货后,PayPal 会重定向 买家通过替代 PayPal 付款确认访问您的网站 页面,不允许他们打印 PayPal 收据。支付数据 Transfer 提供您需要允许的交易信息 买家从您的网站打印收据。

要了解更多信息,请参阅自动返回。

付款数据传输:PayPal 包含有关已完成的信息 使用退货 URL 或自动退货发送客户时的交易 返回您的网站。使用支付数据传输的信息 提供显示“谢谢您,打印您的收据”页面 网站。要了解更多信息,请参阅支付数据传输。


问题在确认付款之前,我可以禁用表单上的提交按钮吗?

当然。要在确认付款之前禁用表单上的提交按钮,只需执行以下两项操作之一,直到您可以检测到付款已确认:

    将“禁用”属性添加到提交按钮。这将灰显并禁用提交按钮,使其无法使用。但是,由于该按钮仍然可见且全部可见,精通网络的最终用户可能只需进入 HTML 并删除 disabled 属性并继续他的快乐方式。

&lt;button type="submit" disabled&gt;Submit Listing&lt;/button&gt;
    隐藏提交按钮。在这种情况下,精通网络的最终用户在技术上仍然可以进入 HTML 并删除样式,以便按钮可见,但看不到它......嗯,你知道,'看不见,心不在焉'

&lt;button type="submit" style="display:none"&gt;Submit Listing&lt;/button&gt;

问题 PayPal“立即购买”按钮是否返回任何确认流程成功的信息?

同样,有几种方法可以解决这个问题。

方法 1可能是使用 PayPal 返回 URL 和一些 GET 参数告诉您事情是完成还是取消的最简单方法。有类似取消的返回 URL 和完成的返回 URL。在我链接的同一页面上,PayPal 记录了与此功能相关的按钮的创建:

取消结帐后将买家带到特定网页 (URL) (可选)?

选中复选框并在文本框中输入 URL(如果您有 如果您希望买家返回您网站上的特殊页面 他们在完成交易前取消结账。

成功结账后将买家带到特定网页 (URL) (可选)?

选中复选框并在文本框中输入 URL(如果您有 您希望买家在之后返回的网站上的特殊页面 他们成功完成结帐。

方法 2 更高级的方法(这也更加万无一失,因为在第一种方法中,黑客可以尝试猜测您的成功返回 URL)是使用 PayPal 的即时付款通知 功能。使用此功能,PayPal 向私有(幕后)URL 发送 POST 请求,该 URL 允许您捕获它发送给您的与付款完成有关的数据。

所以您的后端会收到付款完成的信息,并且有无数种方式(AJAX 请求、要求用户刷新浏览器或向用户发送电子邮件告诉他们回来完成付款等)您可以为用户更新前端,以便他们可以使用现在可见/启用的提交按钮。

details and documentation on PayPal's notify_url 通过他们的 IPN 系统。

祝你好运!

【讨论】:

非常感谢您的详细回复 jstats 我将通读此书,看看我能想出什么:) 非常感谢!!!!卢克【参考方案2】:

我认为您会发现 PayPal 供应商脚本会执行类似操作。 PayPal 设置下的即时付款通知 - 仅在企业帐户中可用。

您可以下载的 php 脚本可以自定义为在付款返回后执行几乎任何您想做的事情。购买成功后,您可以回显提交按钮,这样它就不会出现,除非他们在付款后返回echo '&lt;input type="submit" name="submit"&gt;';

在“工具和设置”下“处理我的订单”

然后您需要在 PayPal 商家界面中进行调整,以将用户返回到您的 IPN 脚本。

【讨论】:

感谢史蒂夫,将对此进行调查,感谢您的回复!! 您可以使用他们的脚本并将其构建到页面的头部,这样当您退出它时,它可以在页面上设置您想要的任何内容。

以上是关于使用贝宝按钮 - 我的网页可以判断贝宝交易是不是成功?的主要内容,如果未能解决你的问题,请参考以下文章

PHP - 贝宝支付交易

我如何在我的成功页面上知道客户贝宝交易是不是成功

如何使用 angularjs 在我的应用程序中集成贝宝标准?

如何判断我的贝宝证书是不是为 SHA-256? - 贝宝服务升级

贝宝数据在存储之前是不是应该加密?

如何获得贝宝销售交易