Php 贝宝加密按钮,加密值

Php 贝宝加密按钮,加密值,php,curl,encryption,paypal,Php,Curl,Encryption,Paypal,如何在动态paypal html表单上获取加密输入的值?我的服务器端语言是php 这是我的html <form action="https://www.paypal.com/cgi-bin/webscr" method="POST" class="block"> <input name="'.Cart_Form_Cart::FORM_TRY.'" type="hidden" value="1" /> <input name="'.Cart_Form_Cart::FO

如何在动态paypal html表单上获取加密输入的值?我的服务器端语言是php

这是我的html

<form action="https://www.paypal.com/cgi-bin/webscr" method="POST" class="block">
<input name="'.Cart_Form_Cart::FORM_TRY.'" type="hidden" value="1" />
<input name="'.Cart_Form_Cart::FORM_ACTION.'" type="hidden" value="checkout" />
<input type="submit" class="form-submit blue-button pointer margin-top-20" value="Proceed to Checkout" />
<input type="hidden" name="cmd" value="_s-xclick" />
<input type="hidden" name="encrypted" value="**NEED THIS VALUE**" />
</form> 
这是卷发电话

$curl = curl_init();
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_URL, $url.http_build_query($sendData));
$encrypt = curl_exec($curl);
curl_close($curl);
return $encrypt;
更新:

我在php中将所有内容绑定到一个变量,然后将该变量作为文本输出到页面。那么,这条线呢

$text .= '<input type="hidden" name="encrypted" value="-----BEGIN PKCS7-----'.$encryption.'-----END PKCS7-----" />';
$text.='';

如何进行“$encryption”。从输入值中未缩进的新行开始?

您可以在此处阅读paypal官方文档: 你可以使用他们的官方工具

然而,我使用的是这个PHP类的修改版本 这段代码既旧又黑,但它是有效的

您需要创建一个证书,将您的公共证书上载到paypal,并获取上传后他们将生成的证书ID。你也需要他们的公共证书。您可以使用您的证书、私钥、证书ID和paypal公共证书配置该类的实例

因此,基本上,代码实际做的是使用您的certificate对数据字段进行签名,然后使用paypal公共证书

这是我的版本,我将它与symfony(前缀和sfConfig)一起使用,但除此之外,它只是PHP:


注意:在示例文档(在类源代码中)中,HTML字段值位于新行,没有缩进-这非常重要

对如何获取证书id和证书感到困惑。这些与我的用户名/密码和签名有关吗?您可以使用openssl生成自己的证书,然后需要将该证书上载到paypal。之后,当您的证书被列出时,您将看到证书ID。我遵循了这一点,但我得到了一个“我们无法解密证书ID”。我知道这是正确的。我认为这可能与您所谈论的值中的新行有关。请参阅我更新的问题,您应该在证书页眉之后和证书页脚之前有换行符<代码>$text.=''
$text .= '<input type="hidden" name="encrypted" value="-----BEGIN PKCS7-----'.$encryption.'-----END PKCS7-----" />';