我正在使用PHP和Mysql设计订单站点.在最后阶段,用户被给予Paypal按钮以支付他所做的订单.因此,项目名称,值是变量.这些值是变量,我不能使用Paypal的加密按钮.我必须使用非加密按钮或在将其显示给用户之前对其进行加密.
我希望出于安全原因加密它.我想知道如何在我的服务器上执行此操作.
Raf*_*ael 31
你需要做的是相当复杂,首先,介绍,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>
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
请注意,这些都是在对= value的格式,一个完整的参考看看这里: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.
我发现这最后一部分设置非常棘手,所以我建议你在这里下载适用于PayPal的PHP SDK: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方法,它为您提供了非常简单的加密按钮; 如果您想查看骨骼,请查看为您提供signAndEncrypt方法的PPCrypto类,该方法仅为您提供该字段所需的加密字符串,并向您显示加密按钮的过程.
也许您可以尝试将这些变量放入具有唯一 ID 的临时表中。然后使用该 id 作为按钮。每当客户单击 paypal 按钮时,都会从表中查询变量。我只是希望我能正确理解你的说法 xD