Paypal加密网站付款

时间:2010-04-14 17:21:41

标签: php encryption paypal

我正在尝试整合PayPal网站付款标准>购物车将付款方式上传到我的购物车中。我在一段时间后整合了Google Checkout,但我并没有发现它因PayPal而过于混乱。

我从这里获得有关如何加密它的信息: https://cms.paypal.com/us/cgi-bin/?&cmd=_render-content&content_ID=developer/e_howto_html_encryptedwebpayments#id08A3I0P017Q

Paypal说我需要使用OpenSSL生成私钥和公共证书。我去了OpenSSL并下载了最新版本,它只是一个包含各种文件的文件夹,但我看不到我可以使用的应用程序,不知道该怎么做。

即使我要让OpenSSL为我生成私钥和公共证书,下一步是下载MS或Java命令行工具,以提前创建加载的购物车,使用购物车总额,税,这对我来说听起来很疯狂,比如我应该在每个订单之前手动执行此操作?

显然,我不知道顾客之前要购买的购物车中的物品,所以我需要在我的网站上使用PHP即时完成。但我完全迷失了。必须有一种方法来设置动态安全购物车上传到paypal。有人可以指出我正确的方向吗?

4 个答案:

答案 0 :(得分:3)

首先,您的OpenSSL问题。如果您使用Linux或Mac,它很容易(一如既往)。像往常一样安装软件包,并使用paypal说明页面上的命令。在Windows上,请确保从此page下载二进制文件而非

您无需使用他们提供的Java程序来生成链接。说明书的那一部分是针对制作静态页面的人,而不是使用PHP。 PayPal是一个很大的解决方案,可以为您提供极大的灵活性,但他们通过为您提供许多不同的API和处理付款的方式来实现这一目标。您发布的链接中的EWP(加密网站付款)不是您要查找的内容。

自从我在为客户提供解决方案时使用PayPal已经有几年了。上一次,有一个单独的API来执行您所要求的称为PDT (Payment data transfer)的API。自从我上次使用API​​以来,API已经发生了一些变化,自上次下载以来,文档似乎已经移动了,但仍然有“网站支付标准集成指南”和“订单管理集成指南”。那些仍然有你想要的指示我想。

简短的回答是,使用PayPal可以自行生成加密链接以构建自定义解决方案,但您必须做一些工作才能实现。在网站上很难找到文档

答案 1 :(得分:2)

虽然Nicholas已经回答了如何生成您需要的私钥和证书,并建议使用PDT来满足您的需求,但我还想了解实际使用PHP中的加密付款,因为我相信一些粘合剂将会我想这样做。

您运行的服务器需要安装openssl(它安装在大多数Linux服务器上),您需要能够从php执行此操作(即通过exec命令)。

此处提供了执行此操作的代码:

http://www.stellarwebsolutions.com/en/articles/paypal_button_encryption_php.php

我成功地使用了这个(在调整文件变量之后,因为它们没有在函数中被正确选取)。

答案 2 :(得分:0)

这个帖子看起来有点老了,我想。

尽管如此,我还以为我会投入2美分

Paypal现在可以选择只需点击“卖家”标签的复选框,其中说明:“不接受来自未加密网站的付款”......或类似内容。

此外,还有选项(也由Paypal推荐),下载自己的证书,生成您自己的(或公钥),并使用BOTH验证并检查付款是否是欺诈性的。

我目前正在执行此操作。我在我的网站上创建了paypal按钮,然后点击选项拒绝来自未加密网站的付款。

问题是:这个所谓的“安全措施”阻止了我网站上大约50%的客户,并且没有明显的理由。

这就是为什么我正在认真考虑从我的paypal按钮中删除这个所谓的安全功能!这很麻烦。所有PayPal付款都是安全的,因为它们通过SSL。我的网站同样受SSL加密保护。

而且,从在线广泛研究来看,大多数人都和我一样:“加密”按钮不值得花时间和麻烦,特别是如果它只会让50%的潜在客户生气!

答案 3 :(得分:0)

对于Python用户,python-ewp包负责签名和加密。 * 假设您有可用的OpenSSL标头和库,安装就像下面这样简单:

pip install ewp

一旦你有一个包含key=value行的字符串,你可以将其传递给ewp.sign()以生成签名,并ewp.encrypt()进行加密:

signature = ewp.sign('test.key', 'test.crt', data)
ciphertext = ewp.encrypt('paypal.crt', signature)

请注意,提供了三个文件名:

  • test.key - 私人RSA密钥
  • test.crt - 由密钥签名的X509证书
  • paypal.crt - PayPal的公共证书

您可以使用以下内容生成RSA密钥:

openssl genrsa -out test.key 2048

...并创建一个有效期为一年的自签名证书:

openssl req -new -key test.key -x509 -days 3650 -out test.crt

可以通过these instructions获取PayPal证书。

* 免责声明:我是该套餐的作者。