被错误地重定向到旧PayPal用户界面

被错误地重定向到旧PayPal用户界面,paypal,Paypal,我已经使用ruby on rails将paypal集成到我的电子商务中,但它总是重定向到旧的paypal UI,而不是最新的UI。以下是我提到的旧UI: 这是我的大致代码。一旦按下创建订单提交按钮,我的订单控制器将重定向到加密的paypal链接 order\u controller.rb def create redirect_to @order.paypal_url(root_url, shipping_fees, payment_notification_url) def pay

我已经使用ruby on rails将paypal集成到我的电子商务中,但它总是重定向到旧的paypal UI,而不是最新的UI。以下是我提到的旧UI:

这是我的大致代码。一旦按下创建订单提交按钮,我的订单控制器将重定向到加密的paypal链接

order\u controller.rb

def create
    redirect_to @order.paypal_url(root_url, shipping_fees, payment_notification_url)
def paypal_url(return_url, shipping_fees, notify_url)
    encrypted = {
      :cmd => "_s-xclick",
      :encrypted => self.encrypt_for_paypal(return_url, shipping_fees, notify_url),
    }
    "https://www.paypal.com/cgi-bin/webscr?" + encrypted.to_query
end

def encrypt_for_paypal(return_url, shipping_fees, notify_url)
#def paypal_url(return_url, shipping_fees, notify_url)
  values = {
    :business => 'cxxx@hotmail.com',
    :cmd => '_cart',
    :upload => 1,
    :currency_code => 'MYR',
    :return => return_url,
    :invoice => self.number,
    :notify_url => notify_url,
    :cert_id => "XXX",

  }

  line_items.each_with_index do |item, index|
    values.merge!({
      "amount_#{index+1}" => item.final_price,
      "item_name_#{index+1}" => Product.where(id: item.variant.product_id).pluck(:title),
      "item_number_#{index+1}" => item.variant.SKU,
      "quantity_#{index+1}" => item.quantity,
      "shipping_1" => shipping_fees
    })
  end
  encrypted_paypal(values)
end



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 encrypted_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
在我的订单模型中,加密链接代码如下所示:

订单.rb

def create
    redirect_to @order.paypal_url(root_url, shipping_fees, payment_notification_url)
def paypal_url(return_url, shipping_fees, notify_url)
    encrypted = {
      :cmd => "_s-xclick",
      :encrypted => self.encrypt_for_paypal(return_url, shipping_fees, notify_url),
    }
    "https://www.paypal.com/cgi-bin/webscr?" + encrypted.to_query
end

def encrypt_for_paypal(return_url, shipping_fees, notify_url)
#def paypal_url(return_url, shipping_fees, notify_url)
  values = {
    :business => 'cxxx@hotmail.com',
    :cmd => '_cart',
    :upload => 1,
    :currency_code => 'MYR',
    :return => return_url,
    :invoice => self.number,
    :notify_url => notify_url,
    :cert_id => "XXX",

  }

  line_items.each_with_index do |item, index|
    values.merge!({
      "amount_#{index+1}" => item.final_price,
      "item_name_#{index+1}" => Product.where(id: item.variant.product_id).pluck(:title),
      "item_number_#{index+1}" => item.variant.SKU,
      "quantity_#{index+1}" => item.quantity,
      "shipping_1" => shipping_fees
    })
  end
  encrypted_paypal(values)
end



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 encrypted_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

请告知,因为我在某个地方读到了需要插入的内容:method=>POST到链接,但我不确定如何插入。非常感谢

你怎么知道这是错误的?我经常看到这个页面,我想PayPal仍然在使用它?在沙盒中时,我被重定向到新的ui。但是在加密之后,而不是在沙盒模式下,我被重定向到这个ui。只是想知道如何获得新的用户界面,而不仅仅是在沙盒模式下。这可能是你的个人资料中的PayPal设置吗?到目前为止,我找不到任何选项来切换我的PayPal帐户中的用户界面。请告知您是否需要进行任何设置。