Doing railscast # 143. 코드는 다음과 같습니다. 보안 자료를 추가 할 때 "인증서 ID의 암호를 해독 할 수 없습니다."라는 메시지가 나타납니다. 개발 중이다. 보안 장비를 꺼내면 다시 복숭아가 작동합니다. 나는 새로운 인증서 등으로 전체 과정을 몇 번이나 다시했습니다. 불운.Railscast 143 (Paypal 보안)으로 인해 "인증서 ID를 해독 할 수 없습니다."
다음에 시도 할 내용이 있습니까?
내가 생산에 그것을 경험하고 마술 작업을 시작 본 게시물에 정확히 같은 문제에 봉착 :에서
Can't get PayPal Encrypted Website Payments to work in Rails
페이지 "이러한 구매"
<%= form_tag "https://www.sandbox.paypal.com/cgi-bin/webscr" do %>
<%= hidden_field_tag :cmd, "_s-xclick" %>
<%= hidden_field_tag :encrypted, @cart.paypal_encrypted("#{@url}/buy_these", payment_notifications_url) %>
<p><%= submit_tag "Buy these for #{number_to_currency(@cart.total_price)}" %></p>
을 cart.rb에서
:
PAYPAL_CERT_PEM = File.read("#{Rails.root}/certs/paypal_cert.pem")
APP_CERT_PEM = File.read("#{Rails.root}/certs/app_cert.pem")
APP_KEY_PEM = File.read("#{Rails.root}/certs/app_key.pem")
def encrypt_for_paypal(values)
signed = OpenSSL::PKCS7::sign(OpenSSL::X509::Certificate.new(APP_CERT_PEM), OpenSSL::PKey::RSA.new(APP_KEY_PEM, ''), values.map { |k, v| "#{k}=#{v}" }.join("\n"), [], OpenSSL::PKCS7::BINARY)
OpenSSL::PKCS7::encrypt([OpenSSL::X509::Certificate.new(PAYPAL_CERT_PEM)], signed.to_der, OpenSSL::Cipher::Cipher::new("DES3"), OpenSSL::PKCS7::BINARY).to_s.gsub("\n", "")
end
def paypal_encrypted(return_url, notify_url)
values = {
:business => '[email protected]',
:cmd => '_cart',
:upload => 1,
:return => return_url,
:invoice => id,
:notify_url => notify_url,
:cert_id => 'DVFY6JS476MR8'
}
things.each_with_index do |item, index|
values.merge!({
"amount_#{index+1}" => item.price,
"item_name_#{index+1}" => item.id,
"item_number_#{index+1}" => item.id,
"quantity_#{index+1}" => 1
})
end
encrypt_for_paypal(values)
end
Railscast는 거의 3 살입니다. 이 지침을 PayPal의 현재 API 문서와 비교해 보셨습니까? [많은 PayPal gems] (http://rubygems.org/search?utf8=%E2%9C%93&query=paypal) 중 하나를 사용할 수 있습니까? –
제안 해 주셔서 감사합니다! 내가 안정적으로 작동하지 않을 수 있다고 밝혀졌습니다. – icewoman27