我在让PayPal加密网站付款在Rails网站上工作时遇到问题。
发布到PayPal URL时,出现两种不同的错误消息-在使用沙箱的暂存站点上,我得到:
证书已被删除。请使用有效的证书。
在生产现场,我得到:
我们无法解密证书ID。
据我所知,它们的设置是相同的,除了一个使用PayPal Sandbox公钥,另一个使用普通的PayPal公钥。我必须忽略一些细节,但是现在我已经将头撞了几天。
我使用以下命令生成公用密钥和专用密钥:
openssl genrsa -out app_key.pem 1024
openssl req -new -key app_key.pem -x509 -days 365 -out app_cert.pem
Run Code Online (Sandbox Code Playgroud)
然后我上传app_cert.pem
到PayPal,并将我的证书ID放入这样的文件中:
development:
user: seller_1259814545_biz@somedomain.com
action_url: https://www.sandbox.paypal.com/cgi-bin/webscr
paypal_cert_file: certs/paypal_sandbox_cert.pem
app_cert_file: certs/app_cert.pem
app_key_file: certs/app_key.pem
cert_id: CBDFN7JXBM2ZQ
secret: dfasdkjh3453
test:
user: seller_1259814545_biz@somedomain.com
action_url: https://www.sandbox.paypal.com/cgi-bin/webscr
paypal_cert_file: certs/paypal_sandbox_cert.pem
app_cert_file: certs/app_cert.pem
app_key_file: certs/app_key.pem
cert_id: CBDFN7JXBM2ZQ
secret: dfasdkjh3453
staging:
user: seller_1259814545_biz@somedomain.com
action_url: https://www.sandbox.paypal.com/cgi-bin/webscr
paypal_cert_file: certs/paypal_sandbox_cert.pem
app_cert_file: certs/app_cert.pem
app_key_file: certs/app_key.pem
cert_id: CBDFN7JXBM2ZQ
secret: dfasdkjh3453
production:
user: business@somedomain.com
action_url: https://www.paypal.com/cgi-bin/webscr
paypal_cert_file: certs/paypal_cert.pem
app_cert_file: …
Run Code Online (Sandbox Code Playgroud)