如何使这个 OpenSSL 命令开始工作?

How do I make it this OpenSSL command starts working?

我的 OpenSSL 命令不工作,我 运行 通过 php 的 exec() 函数。

输出的错误是“1”。

OpenSSL 已启用并正在运行。

命令如下:

$openssl_cmd = "($OPENSSL smime -sign -signer $MY_CERT_FILE -inkey $MY_KEY_FILE " .
                                    "-outform der -nodetach -binary <<_EOF_\n$data\n_EOF_\n) | " .
                                    "$OPENSSL smime -encrypt -des3 -binary -outform pem $PAYPAL_CERT_FILE";
                exec($openssl_cmd, $output, $error);

我是 运行 XAMPP 和 运行 的最新版本 Windows 10。

提前致谢!

编辑:

这是输出为 die($openssl_cmd) 时的完整命令;在 php:

(C:/xampp/apache/bin/openssl.exe smime -sign -signer C:\xampp\[redacted]\paypal\pubcert.pem -inkey C:\xampp\[redacted]\paypal\prvkey.pem -outform der -nodetach -binary <<_EOF_ cmd=_xclick amount=[redacted] item_number=[redacted] discount_rate=0 item_name=[redacted] notify_url=https://www.REDACTED.net/paypal/ipn business=REDACTED cert_id=REDACTED currency_code=USD no_shipping=1 bn=domain.PHP_EWP2 _EOF_ ) | C:/xampp/apache/bin/openssl.exe smime -encrypt -des3 -binary -outform pem C:\xampp\[redacted]\paypal\paypal_cert.pem

编辑: 我正在使用 https://www.stellarwebsolutions.com/en/articles/paypal_button_encryption_php.php 作为指南。

要在 Windows 中执行 Linux-style 命令,使用管道和文件重定向,可以 运行 使用 Windows PowerShell 命令。

例如,在这种情况下,您可以通过 PowerShell 通过执行类似于此的内容来执行它:

poewrshell -Command "(C:/xampp/apache/bin/openssl.exe smime -sign -signer C:\xampp\[redacted]\paypal\pubcert.pem -inkey C:\xampp\[redacted]\paypal\prvkey.pem -outform der -nodetach -binary <<_EOF_ cmd=_xclick amount=[redacted] item_number=[redacted] discount_rate=0 item_name=[redacted] notify_url=https://www.REDACTED.net/paypal/ipn business=tomekandres@live.ca cert_id=REDACTED currency_code=USD no_shipping=1 bn=domain.PHP_EWP2 _EOF_ ) | C:/xampp/apache/bin/openssl.exe smime -encrypt -des3 -binary -outform pem C:\xampp\[redacted]\paypal\paypal_cert.pem"