在我的网站上通过按钮接受付款时,PayPal API 有什么用?我需要使用 API 吗?

What is PayPal API for when accepting payments in my website thru a button? Do I need to use API?

我正在开发一个在我的网站上接受付款的功能,我已经使用贝宝按钮和 IPN(一个 PHP 监听器在付款后将数据处理到数据库完成了,这个居然https://github.com/paypal/ipn-code-samples/blob/master/paypal_ipn.php,适当定制)。

我从未接触过 PayPal API 我想知道我是否遗漏了什么......我对这种开发有点陌生,我想确保我做对了而不是错了遗漏任何可能危及支付安全性的明显东西或其他任何东西......我已经在 Sandbox 中测试了东西并且一切都按预期工作,但我担心 API 并且我看到很多人使用它......

那么,我是不是遗漏了什么?

谢谢!

您所做的是准确的,只要适合您的需要,就可以正常工作。

一个潜在的安全风险是如果您没有使用托管按钮。您在创建按钮时选择了 "Save this button at PayPal" 吗?如果是这样,您应该会看到 hosted_button_id 包含在按钮的 HTML 中。在这种情况下,它受到保护。

如果按钮代码包含诸如 item_name、数量等的单独参数,那么人们可以在浏览器中调整该代码,然后按钮可以以不同的价格提交,例如。

您可以在您的 IPN 脚本中检查此类情况,并在价格与您的数据库不匹配时设置自动退款,但我通常会尽量避免此类情况。

我更喜欢使用 Express Checkout API。如果您对使用 PHP IPN 感到满意,那么您应该对使用此 PayPal PHP SDK 集成 Express Checkout 感到非常满意。

您需要使用的三个调用是 SetExpressCheckout、GetExpressCheckoutDetails 和 DoExpressCheckoutPayment。

This documentation 将介绍一般步骤以及这些调用发挥作用的地方,并且该库将使每个调用对您来说都非常简单。

Express Checkout 将消除用户可能对代码进行的任何潜在调整(因为与 HTML 不同,他们根本无法访问代码)并且它还具有比 PayPal Standard 更高级的功能和选项不具有。最重要的是,能够强制 "guest checkout" 体验,以便 non-PayPal 帐户持有人可以轻松地使用信用卡结帐而不会造成任何混淆。

他们也可以使用 PayPal Standard 来完成,但是根据浏览器中设置的 cookie,可能很难找到访客结账选项。 Express Checkout 使其在任何时候都非常突出,通常会提高结账转化率。