使用ruby的Apple网上支付商户会话
我似乎无法让商家会话验证与Ruby一起工作。尝试了HttpParty和RestClient,我得到: OpenSSL::SSL::SSLError(SSL\u connect返回=1 errno=0 state=SSLv3读取完成:SSLv3警报证书已过期): 我在这个节点服务器示例中尝试了相同的证书,它工作得很好,所以它一定是我的ruby代码中的内容使用ruby的Apple网上支付商户会话,ruby,applepay,Ruby,Applepay,我似乎无法让商家会话验证与Ruby一起工作。尝试了HttpParty和RestClient,我得到: OpenSSL::SSL::SSLError(SSL\u connect返回=1 errno=0 state=SSLv3读取完成:SSLv3警报证书已过期): 我在这个节点服务器示例中尝试了相同的证书,它工作得很好,所以它一定是我的ruby代码中的内容 有人设法让它工作了吗?我也遇到了同样的问题。借助于您引用的示例和在的实现(另请参阅关于在的实现的讨论),我能够使其正常工作 对我来说,密钥是按照
有人设法让它工作了吗?我也遇到了同样的问题。借助于您引用的示例和在的实现(另请参阅关于在的实现的讨论),我能够使其正常工作 对我来说,密钥是按照苹果提供的方式传递正确的证书(Apple Pay商户身份证书),并获得证书密钥,如下所示: 一旦您从苹果获得商户ID(会话)证书,通过双击将其导入Mac上的keychain.app,右键单击keychain中的证书,并将组合的私钥和证书导出为.p12文件,然后在终端中:-
openssl pkcs12 -in your_merchant_identity_cert_name.p12 -out ApplePay.key.pem -nocerts -nodes
在将Apple的Apple Pay商户识别证书和ApplePay.key.pem
文件的内容添加到环境变量后,我能够使用Ruby的Net::HTTP类构造以下请求
class YourControllerName < ApplicationController
def apple_pay_validation
respond_to do |format|
format.json { render json: start_apple_session(params[:url]) } if params[:url].include?('apple.com')
end
end
private
def start_apple_session(url)
uri = URI.parse(url) # the url from event.validationURL
data = {'merchantIdentifier' => "merchant.com.your_site_name", 'domainName' => "your_doamin", 'displayName' => "your_company_name"}
pem = File.read('path/to/your/merchant_id.cer')
key = ENV['APPLE_PAY_MERCHANT_ID_ KEY']
passphrase = 'passphrase set up when exporting certificate in keychain' # Should be an environment variable
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
http.ssl_version = :TLSv1_2
http.ciphers = ['ECDHE-RSA-AES128-GCM-SHA256']
http.cert = OpenSSL::X509::Certificate.new(pem)
http.key = OpenSSL::PKey::RSA.new(key, passphrase)
http.verify_mode = OpenSSL::SSL::VERIFY_PEER
request = Net::HTTP::Post.new(uri.request_uri, 'Content-Type' => 'application/json')
request.body = data.to_json
response = http.request(request)
response.body
end
end
希望这有助于节省一些时间和白发 我也有同样的问题。借助于您引用的示例和在的实现(另请参阅关于在的实现的讨论),我能够使其正常工作 对我来说,密钥是按照苹果提供的方式传递正确的证书(Apple Pay商户身份证书),并获得证书密钥,如下所示: 一旦您从苹果获得商户ID(会话)证书,通过双击将其导入Mac上的keychain.app,右键单击keychain中的证书,并将组合的私钥和证书导出为.p12文件,然后在终端中:-
openssl pkcs12 -in your_merchant_identity_cert_name.p12 -out ApplePay.key.pem -nocerts -nodes
在将Apple的Apple Pay商户识别证书和ApplePay.key.pem
文件的内容添加到环境变量后,我能够使用Ruby的Net::HTTP类构造以下请求
class YourControllerName < ApplicationController
def apple_pay_validation
respond_to do |format|
format.json { render json: start_apple_session(params[:url]) } if params[:url].include?('apple.com')
end
end
private
def start_apple_session(url)
uri = URI.parse(url) # the url from event.validationURL
data = {'merchantIdentifier' => "merchant.com.your_site_name", 'domainName' => "your_doamin", 'displayName' => "your_company_name"}
pem = File.read('path/to/your/merchant_id.cer')
key = ENV['APPLE_PAY_MERCHANT_ID_ KEY']
passphrase = 'passphrase set up when exporting certificate in keychain' # Should be an environment variable
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
http.ssl_version = :TLSv1_2
http.ciphers = ['ECDHE-RSA-AES128-GCM-SHA256']
http.cert = OpenSSL::X509::Certificate.new(pem)
http.key = OpenSSL::PKey::RSA.new(key, passphrase)
http.verify_mode = OpenSSL::SSL::VERIFY_PEER
request = Net::HTTP::Post.new(uri.request_uri, 'Content-Type' => 'application/json')
request.body = data.to_json
response = http.request(request)
response.body
end
end
希望这有助于节省一些时间和白发