<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>rankjie</title>
    <link>https://ruby-china.org/rankjie</link>
    <description/>
    <language>en-us</language>
    <item>
      <title>关于支付宝接口的集成 (验证 notify 部分)</title>
      <description>&lt;p&gt;下面这是我用来验证支付宝返回 notify 时，sign 是否正确的代码，但是它一直都没能验证正确，不知道怎样的加密算法才是对的呢= =？&lt;/p&gt;

&lt;p&gt;def verify_sign
      params.delete("sign_type") #sign_type 默认就是 MD5
      sign = params.delete("sign")
      values = {}
      params.keys.sort.each do |k|
        values[k] = params[k];
      end
      sign.downcase == Digest::MD5.hexdigest(CGI.unescape(values.to_query) + ALIPAY_KEY)
    end&lt;/p&gt;

&lt;p&gt;然后下面这里有一段支付宝 post 来的数据样例：
    params= {
 "buyer_email"=&amp;gt;"123123123@qq.com", 
 "buyer_id"=&amp;gt;"",
 "exterface"=&amp;gt;"trade_create_by_buyer",
 "is_success"=&amp;gt;"T", "logistics_fee"=&amp;gt;"0.00",
 "logistics_payment"=&amp;gt;"SELLER_PAY", 
 "logistics_type"=&amp;gt;"EXPRESS", 
 "notify_id"=&amp;gt;""
 "notify_time"=&amp;gt;"2012-12-14 00:22:22", 
 "notify_type"=&amp;gt;"trade_status_sync", 
 "out_trade_no"=&amp;gt;"", "payment_type"=&amp;gt;"1",
 "receive_address"=&amp;gt;"null", 
 "seller_email"=&amp;gt;"123123@qq.com", 
 "seller_id"=&amp;gt;"", 
 "subject"=&amp;gt;"test", 
 "total_fee"=&amp;gt;"0.01", 
 "trade_no"=&amp;gt;"", 
 "trade_status"=&amp;gt;"TRADE_FINISHED",
 "sign"=&amp;gt;"", 
 "sign_type"=&amp;gt;"MD5"
     }&lt;/p&gt;

&lt;p&gt;哪位老师能解答一下？谢谢！&lt;/p&gt;

&lt;p&gt;-------------------下面的问题已解决--------------------
第一次做 web 开发，边学边用的 Rails，所以可能问的问题非常初级，还望各位老师多多包涵。&lt;/p&gt;

&lt;p&gt;我申请了标准双接口 (个人只能申请这个)，正准备做一个充值金额的功能。
如果我采用 form+POST 的形式进行支付宝订单提交，那么整体的流程是否是这样：
1.用户输入要充值的金额&lt;/p&gt;

&lt;p&gt;2.表单内容提交到我的处理页面&lt;/p&gt;

&lt;p&gt;3.我的处理页面把其他参数添加上，并且进行 sign 操作，假设得到 MD5 加密的值为 MMMDDD555&lt;/p&gt;

&lt;p&gt;4.把所有参数 POST 到支付宝的接口 (是否可以使用 Net::HTTP.post_form?)&lt;/p&gt;

&lt;p&gt;然后呢？数据 POST 过去了，但是用户仍然停留在我的站点页面里，正确的作法该怎么做？&lt;/p&gt;

&lt;p&gt;谢谢各位老师！&lt;/p&gt;</description>
      <author>rankjie</author>
      <pubDate>Thu, 13 Dec 2012 16:49:46 +0800</pubDate>
      <link>https://ruby-china.org/topics/7534</link>
      <guid>https://ruby-china.org/topics/7534</guid>
    </item>
  </channel>
</rss>
