Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 动态加密贝宝按钮?_Javascript_Php_Encryption_Paypal_Payment - Fatal编程技术网

Javascript 动态加密贝宝按钮?

Javascript 动态加密贝宝按钮?,javascript,php,encryption,paypal,payment,Javascript,Php,Encryption,Paypal,Payment,所以我正在创建一个网站,需要有一个订阅贝宝按钮。我目前正在使用的,但它是非常不安全的,人们可以改变他们支付的金额。因此,我将需要使用加密按钮,但我不知道如何实现这一点,仍然能够改变价格取决于用户。我需要这样做的原因是,用户将能够选择不同数量的东西。比如说,他们可以选择1到50点之间的任何地方,这会改变价格,因此,如果1点是1美元,用户选择24,订阅按钮的金额将必须是每月24美元。下面是创建非加密按钮的当前代码。作为一个附带问题,如果有人碰巧知道保密您的商户id是否重要。如果是这样,我该怎么做

所以我正在创建一个网站,需要有一个订阅贝宝按钮。我目前正在使用的,但它是非常不安全的,人们可以改变他们支付的金额。因此,我将需要使用加密按钮,但我不知道如何实现这一点,仍然能够改变价格取决于用户。我需要这样做的原因是,用户将能够选择不同数量的东西。比如说,他们可以选择1到50点之间的任何地方,这会改变价格,因此,如果1点是1美元,用户选择24,订阅按钮的金额将必须是每月24美元。下面是创建非加密按钮的当前代码。作为一个附带问题,如果有人碰巧知道保密您的商户id是否重要。如果是这样,我该怎么做

$paypal-button.html ' '
; 很久以前,我试着做类似的事情

据我所知,这是没有办法的。你不能简单地更改加密按钮的值,如果它没有加密,用户可以更改它,基本上支付任何费用

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

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

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

编辑:现在我不在手机上,这里有一个链接到


此外,我认为您不必担心您的商户ID被看到。它用于处理付款,我相信它可以在交易详细信息中看到。

如果不在PayPal端托管按钮详细信息,就无法做到这一点。这也会发生在旧式的PayPal表单集成中,例如,任何人都可以进入Chrome的Devtools并更改html表单变量。作为一种解决方法,您可以实现一个托管订阅按钮,并让用户更改订阅的数量。如果您的价格与积分数量成线性比例,那么它将起作用。

是的,有办法!不要听那些反对者的话,我最近成功地对动态创建的购物车信息实施了加密,这些信息是使用php注入到空表单中的。我真的计划创建一个完整的教程,因为这似乎是罕见的信息,我想知道为什么贝宝没有一个标准的教程。我记得因为这个问题我有好几天的压力,差不多一个月后,我偶然发现了这里提供的一个教程:

经过一些小的修改后,我能够使用PHP代码来加密数据,使用我生成的私钥和公共证书确保你的网站上有HTTPS。贝宝随后成功解密了信息!哦,孩子,你敢打赌我跳了快乐的舞蹈


确保数据只有在付款后才使用IPN是一种非常混乱的方法,因为你可以通过自定义加密来避免大多数篡改。无论如何,直到我全力以赴,创建了一个视频教程,祝你们好运——回顾过去,我看到这个过程是多么的简单

您应该检查另一端的支付金额,这是唯一可靠的方法。您知道,我不久前查看了API/Express签出,可能我做得不正确,这很可能是因为我使用ajax发布沙盒端点,但我收到了一个错误,因为它位于不同的域。这是正确的方法吗?老实说,我不完全确定你是怎么做的。但我可以给你一个流程/过程的简要想法。您可以声明api凭据、返回url、取消url、paypal模式live/sandbox以及其他一些内容。数据被传递到处理脚本中,您将在其中设置价格等变量,基本上是查询数据库以获得正确的数据。数据/用户被定向到PayPal进行支付。一旦完成,它们将被重定向回声明的返回URL,您可以在其中存储数据/显示完成的页面。令牌、请求等比我所说的要多,但至少它让您对流程的工作方式有了非常基本的了解。此外,您可能会注意到有一个IPN和ExpressCheckout。它们是不同的,你可以两者都用,或者一个或另一个。例如,ExpressCheckout会将echeck标记为挂起,因为它在处理时处于挂起状态。一旦付款更新/更改,将通知IPN,您可以相应地更新数据库。I w
你要小心,这篇文章的日期是2010年。看起来没问题,而且加密总是比没有好。谢谢你的回复和链接,我会看看它们,并尝试实现它。确保你在视频中发布一个链接,我很乐意看到。