2016-03-02 64 views
1

所以我创建了一个需要订阅PayPal按钮的网站。我目前使用paypal button js,但它非常不安全,人们可以更改他们支付的金额。所以我将需要使用加密的按钮,但我不知道如何实现这一点,仍然能够根据用户更改价格。我需要这样做的原因是,用户将能够选择不同数量的东西。假设他们可以选择1到50分之间的任何地方,这将改变价格,所以如果1分是1美元,并且用户选择24分,订阅按钮数量必须是每月24美元。以下是创建非加密按钮的当前代码。作为一个侧面的问题,如果有人碰巧知道是否保持你的商人身份的秘密是重要的。如果是的话,我会如何做到这一点?动态加密的PayPal按钮?

\t $("#paypal-button").html(
 
\t \t '<script src="js/paypal-button.min.js?merchant=[Merchant ID]"' + 
 
\t \t \t 'data-button="subscribe"' + 
 
\t \t \t 'data-name="Custom Howloop Subscription"' + 
 
\t \t \t 'data-amount="' + roundTotal + '"' + 
 
\t \t \t 'data-recurrence="1"' + 
 
\t \t \t 'data-period="M"' + 
 
\t \t \t 'async' + 
 
\t \t '> </script>' 
 
\t);

+0

你应该检查在另一端支付的金额,它是唯一可靠的方法来做到这一点 – 2016-03-02 19:02:11

回答

2

很久以前,我试图做一些类似的。

据我所知,没有办法做到这一点。您将无法简单地更改加密按钮的值,如果未加密,用户可以更改它并基本上支付任何费用。

如果您希望能够安全且动态地更改值,我会建议查看他们的API/Express Checkout。这就是我所做的,我真的很高兴我做到了。

您可以在将所有内容转发到PayPal之前检查所有内容,并且我从来没有遇到过这方面的问题(我传递了项目ID并查询我的数据库以获取成本/等并应用其他检查来停止各种问题)。您可以通过并应用您需要的任何计算结果,以确保没有问题的价格。

否则,我能想到的唯一方法是为不同的价格使用多个加密按钮。但这不是很有趣,也不是最佳解决方案。

编辑:现在,我无法在手机上,这里是一个链接到Express Checkout Getting Started Guide.

另外,我不认为你需要担心被人看见自己的商家ID。它用于处理付款,我相信它可以在交易详情中看到。

+0

你知道我前一段时间看了API/Express Checkout,也许我做的不正确(这很可能),但无论如何,我使用ajax POST沙盒端点,我得到一个错误,因为它在不同的域。这是做这件事的正确方法吗? – rharbison

+0

我会说实话,我不完全确定你是怎么做到的。但我可以给你一个流程/流程的简要概念。你声明的API凭据,返回网址,取消网址,贝宝模式(生活/沙箱)和其他一些事情。数据传递到您的处理脚本,您可以在其中设置价格变量等(基本上,您将在哪里查询数据库以获取正确的数据)。数据/用户被导向PayPal进行付款。完成后,它们将重定向回存储数据/显示完整页面的声明返回URL。 – Son

+0

有更多的发挥进去(令牌,请求等)比我说的,但至少它给你如何流动的作品非常基本的想法。另外,您可能会注意到有IPN和ExpressCheckout。它们是不同的,你可以同时使用,也可以使用另一种。例如,一个echeck将被标记为挂起ExpressCheckout,因为它在处理时正在挂起。一旦付款更新/更改,IPN将被通知,并且您可以相应地更新数据库。 – Son

0

没有托管贝宝一方的按钮细节,没有办法做到这一点。这也会发生在旧式的PayPal表单集成中,任何人都可以进入Chrome的Devtools并修改html表单变量。作为解决方法,您可以实施一个托管订阅按钮,并让用户更改订阅的数量。如果你的价格与点数成线性关系,那么它就会起作用。

0

有没有办法!不要听那些说唱者,我最近成功地对动态创建的购物车信息进行了加密,这些信息被注入到使用php的空表单中。我真的打算创建一个完整的教程,因为它似乎是稀有信息(我想知道为什么贝宝没有这个标准教程)。我记得有几天因为这个问题而处于压力之下,差不多一个月后,我碰巧遇到了这里提供的一个教程:https://www.stellarwebsolutions.com/en/articles/paypal_button_encryption_php.php

经过一些小的修改后,我能够使用我生成的私人密码来加密数据密钥和公共证书(请确保您的网站上有HTTPS)。贝宝然后能够成功解密信息!(哦,孩子,你敢说我做的开心舞)

确保数据有效利用IPN付款后是当u可以避免大多数做自定义加密篡改很凌乱的做法。无论如何,直到我扣下来,并创造一个视频教程祝你好运 - 在回顾我看看真正简单这个过程真的是!

+0

我会小心,文章的日期是2010年 – Martin

+0

它似乎是正常的,也是加密是在这种情况下 – DiscreteTomatoes

+0

谢谢您的答复,我会考虑看看他们,给一个链接总比没有总是更好试图实现它,确保您发布视频时的链接,我很乐意看到它。 – rharbison