动态加密的贝宝按钮?
Dynamic encrypted paypal button?
所以我正在创建一个需要订阅 PayPal 按钮的网站。我目前正在使用 paypal button js,但它非常不安全,人们可以更改他们支付的金额。所以我将需要使用加密按钮,但我不确定如何实现这一点并且仍然能够根据用户更改价格。我需要这样做的原因是用户将能够 select 不同数量的东西。假设他们可以 select 1 到 50 点之间的任何地方,这会改变价格,所以如果 1 点是 1 美元,而用户 select 24,订阅按钮的金额必须是每月 24 美元。下面是创建非加密按钮的当前代码。作为附带问题,是否有人碰巧知道将您的商家 ID 保密是否很重要。如果可以,我该怎么做?
$("#paypal-button").html(
'<script src="js/paypal-button.min.js?merchant=[Merchant ID]"' +
'data-button="subscribe"' +
'data-name="Custom Howloop Subscription"' +
'data-amount="' + roundTotal + '"' +
'data-recurrence="1"' +
'data-period="M"' +
'async' +
'> </script>'
);
很久以前我尝试过做类似的事情。
据我所知,没有办法做到这一点。您将无法简单地更改加密按钮的值,如果它未加密,用户可以更改它并基本上支付任何费用。
如果您希望能够安全且动态地更改值,我建议您查看他们的 API/Express Checkout。这就是我所做的,我真的很高兴我做到了。
您可以在将所有内容转发到 PayPal 之前对其进行检查,我在这方面从未遇到过问题(我传递了项目 ID 并查询我的数据库以获取 cost/etc 并应用其他检查停止各种问题。)。您可以毫无问题地完成并应用您需要的任何价格计算。
否则,我唯一能想到的方法就是有多个不同价格的加密按钮。但这不是很有趣,也不是最佳解决方案。
编辑:既然我不在手机上,这里是 link 到 Express Checkout Getting Started Guide.
另外,我认为您不必担心您的商户 ID 会被人看到。它是用来处理支付的,相信在交易明细中可以看到。
如果不在 PayPal 端托管按钮详细信息,则无法执行此操作。这也会发生在旧式 PayPal 表单集成中,例如,任何人都可以进入 Chrome 的 Devtools 并更改 html 表单变量。作为解决方法,您可以实现一个托管订阅按钮并让用户更改订阅数量。如果您的价格与点数成线性比例,那么它会起作用。
是的,有办法!不要听那些反对者的话,我最近成功地对动态创建的购物车信息实施了加密,这些信息是使用 php 注入到一个空表单中的。我真的打算创建一个完整的教程,因为这些信息似乎很少见(我想知道为什么 Paypal 没有这方面的标准教程)。我记得因为这个问题有好几天的压力,差不多一个月后我偶然发现了这里提供的教程:https://www.stellarwebsolutions.com/en/articles/paypal_button_encryption_php.php
经过一些小的修改后,我能够使用 PHP 代码使用我生成的私钥和 public 证书加密数据(确保您的网站上有 HTTPS)。然后Paypal就可以成功解密信息了! (哦,男孩,你打赌我跳了快乐的舞)
付款后仅使用 IPN 确保数据有效是一种非常混乱的方法,因为您可以通过自定义加密来避免大多数篡改。无论如何,直到我全力以赴并创建一个视频教程,祝你好运 - 回想起来,我发现这个过程真的很简单!
所以我正在创建一个需要订阅 PayPal 按钮的网站。我目前正在使用 paypal button js,但它非常不安全,人们可以更改他们支付的金额。所以我将需要使用加密按钮,但我不确定如何实现这一点并且仍然能够根据用户更改价格。我需要这样做的原因是用户将能够 select 不同数量的东西。假设他们可以 select 1 到 50 点之间的任何地方,这会改变价格,所以如果 1 点是 1 美元,而用户 select 24,订阅按钮的金额必须是每月 24 美元。下面是创建非加密按钮的当前代码。作为附带问题,是否有人碰巧知道将您的商家 ID 保密是否很重要。如果可以,我该怎么做?
$("#paypal-button").html(
'<script src="js/paypal-button.min.js?merchant=[Merchant ID]"' +
'data-button="subscribe"' +
'data-name="Custom Howloop Subscription"' +
'data-amount="' + roundTotal + '"' +
'data-recurrence="1"' +
'data-period="M"' +
'async' +
'> </script>'
);
很久以前我尝试过做类似的事情。
据我所知,没有办法做到这一点。您将无法简单地更改加密按钮的值,如果它未加密,用户可以更改它并基本上支付任何费用。
如果您希望能够安全且动态地更改值,我建议您查看他们的 API/Express Checkout。这就是我所做的,我真的很高兴我做到了。
您可以在将所有内容转发到 PayPal 之前对其进行检查,我在这方面从未遇到过问题(我传递了项目 ID 并查询我的数据库以获取 cost/etc 并应用其他检查停止各种问题。)。您可以毫无问题地完成并应用您需要的任何价格计算。
否则,我唯一能想到的方法就是有多个不同价格的加密按钮。但这不是很有趣,也不是最佳解决方案。
编辑:既然我不在手机上,这里是 link 到 Express Checkout Getting Started Guide.
另外,我认为您不必担心您的商户 ID 会被人看到。它是用来处理支付的,相信在交易明细中可以看到。
如果不在 PayPal 端托管按钮详细信息,则无法执行此操作。这也会发生在旧式 PayPal 表单集成中,例如,任何人都可以进入 Chrome 的 Devtools 并更改 html 表单变量。作为解决方法,您可以实现一个托管订阅按钮并让用户更改订阅数量。如果您的价格与点数成线性比例,那么它会起作用。
是的,有办法!不要听那些反对者的话,我最近成功地对动态创建的购物车信息实施了加密,这些信息是使用 php 注入到一个空表单中的。我真的打算创建一个完整的教程,因为这些信息似乎很少见(我想知道为什么 Paypal 没有这方面的标准教程)。我记得因为这个问题有好几天的压力,差不多一个月后我偶然发现了这里提供的教程:https://www.stellarwebsolutions.com/en/articles/paypal_button_encryption_php.php
经过一些小的修改后,我能够使用 PHP 代码使用我生成的私钥和 public 证书加密数据(确保您的网站上有 HTTPS)。然后Paypal就可以成功解密信息了! (哦,男孩,你打赌我跳了快乐的舞)
付款后仅使用 IPN 确保数据有效是一种非常混乱的方法,因为您可以通过自定义加密来避免大多数篡改。无论如何,直到我全力以赴并创建一个视频教程,祝你好运 - 回想起来,我发现这个过程真的很简单!