Tenpay

A Ruby on Rails plugin for Tenpay(财付通).

使用

  1. 修改Gemfile:

gem “tenpay”

  1. 生成配置文件:

$ script/rails g tenpay

这个命令会在你的应用的config目录创建一个tenpay.yml文件,默认是快钱提供的测试帐号(关于测试帐号的使用方法请参看测试章节) 将tenpay.yml中的商户ID和密钥替换为财付通提供给你的真实ID和密钥然后进行下一步。

  1. 下面的代码会创建一笔新订单:

@request = Tenpay::Request.new(
               'test product',     # 产品名称
                1,                 # 订单编号,必须保持唯一
                Time.now,          # 订单生成时间
                4500,              # 订单价格,以分为单位
                'http://return',   # 完成支付后的回调地址
                request.remote_ip, # 用于IP验证,开发模式可忽略
                'attach data')     # 自定义数据
redirect_to @request.url

上面的代码会将用户重定向到财付通的支付页面。

  1. 在用户完成支付后,财付通会调用你在支付请求中提供的返回URL:

@response = Tenpay::Response.new(params)
if @response.successful?
  # 支付成功
else
  # 失败
end

注意,快钱可能会多次调用你的返回URL,并将结果展现给用户,因此你的代码要考虑多次执行后的输出对用户的有好度。

查询

如果需要查询订单支付状态,可以使用下面的接口:

@query = Tenpay::Query.new(1,        # 订单id
                           Time.now) # 订单日期
@query.response.successful? # true => 已支付, false => 未支付

如果在使用中遇到任何的问题或者建议,欢迎和我联系: [email protected]

Copyright © 2009 Yuanyi Zhang, released under the MIT license