美文网首页
App集成支付宝,服务端拼接参数(旧版接口)

App集成支付宝,服务端拼接参数(旧版接口)

作者: hatch_win | 来源:发表于2017-06-09 12:10 被阅读0次
    商家私钥

    ALIPAY_RSA_PRIVATE_KEY = <<-EOF
    -----BEGIN RSA PRIVATE KEY-----
    这里是生成的商家私钥,旧版支付接口只能支持RSA(1024长度)
    -----END RSA PRIVATE KEY-----
    EOF

    Helper Method Config
    拼接参数
    def generate_alipay_params(options = {})
      base_params = {
        "service" => "mobile.securitypay.pay",
        "_input_charset" => "utf-8",
        "partner" => "2088121210025141",
        "seller_id" => "2088121210025141",
        "payment_type" => "1"
      }
      pay_params = base_params.merge(options)
      pay_params.merge({ "sign" => CGI.escape(Order.alipay_sign(pay_params)), "sign_type" => "RSA"})
    end
    
    签名
    def alipay_sign(params)
      string = params.map { |k, v| %Q{#{k}="#{v}"} }.join('&')
      rsa = OpenSSL::PKey::RSA.new(ALIPAY_RSA_PRIVATE_KEY)
      Base64.strict_encode64(rsa.sign('sha1', string))
    end
    
    Action: Use Helper Method
            pay_params = generate_alipay_params({
              "out_trade_no" => "test_no_01",
              "notify_url" => "https://example.com/notify",
              "subject" => "test",
              "total_fee" => "0.01",
              "body" => "test"
            })
            pay_string = pay_params.map { |k, v| %Q{#{k}="#{v}"} }.join('&')
            pay_string = URI.encode(pay_params.map{|k,v| %Q{#{k}="#{v}"}}.join("&"))   # 这一步根据用户需要执行
    

    后面找时间加上新版接口

    相关文章

      网友评论

          本文标题:App集成支付宝,服务端拼接参数(旧版接口)

          本文链接:https://www.haomeiwen.com/subject/hdnxqxtx.html