То, что вам нужно сделать, довольно сложно, во-первых, кнопки ввода, шифрованные PayPal имеют следующую раскладку:
<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="encrypted" value="-----BEGIN PKCS7-----MIIIEQYJKo...Encrypted stuff...IF5ioje8JH0LAA+5U7P+tabAMOL37k=-----END PKCS7-----">
<input type="image" src="https://www.paypalobjects.com/es_XC/MX/i/btn/btn_buynowCC_LG.gif" border="0" name="submit" alt="PayPal, la forma más segura y rápida de pagar en línea.">
<img alt="" border="0" src="https://www.paypalobjects.com/es_XC/i/scr/pixel.gif" width="1" height="1">
</form>
Поле cmd указывает зашифрованную кнопку «Купить сейчас» (проверьте значения для кнопок, которые вы хотите создать), а зашифрованное поле - это фактическое содержимое кнопки в следующем макете:
cert_id=ZQCMJTZS27U4F
cmd=_xclick
business=contact@mybiz.com
item_name=Handheld Computer
item_number=1234
custom=sc-id-789
amount=500.00
currency_code=USD
tax=41.25
shipping=20.00
no_note=1
cancel_return=http://www.company.com/cancel.htm
Обратите внимание, что они в формате пары = значение, для полной ссылки смотрите здесь: https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_html_Appx_websitestandard_htmlvariables.
Теперь теория, чтобы получить зашифрованное поле, хорошо зашифрованное, вам нужно подписать эти значения вашим сертификатом (сертификатом x509) и вашим закрытым ключом, а затем вам необходимо зашифровать это подписанное сообщение с помощью открытого сертификата PayPal.
Переходя к практике, для этого вы можете (нужно) использовать следующие две функции PHP (часть расширения OpenSSL): openssl_pkcs7_sign и openssl_pkcs7_encrypt.
Мне показалось, что эту последнюю часть очень сложно настроить, поэтому я рекомендую вам загрузить PHP SDK для PayPal здесь: https://www.x.com/community/ppx/sdks#WPST и прямо здесь: https://cms.paypal.com/cms_content/US/en_US/files/developer/PP_PHP_WPS_Toolkit.zip, этот SDK поставляется с классом EWPServices кто содержит метод encryptButton, который довольно просто дает вам зашифрованную кнопку; если вы хотите посмотреть на кости, посмотрите в классе PPCrypto, который предлагает вам метод signAndEncrypt, который дает вам только зашифрованную строку, необходимую для поля, и показывает процесс шифрования кнопки.
Кстати, если вы не знаете, как получить свой сертификат и свой закрытый ключ (и / или сертификат Paypal), посмотрите здесь: https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_html_encryptedwebpayments#id08A3I0N30Y4