Tenpay
A Ruby on Rails plugin for Tenpay(财付通).
使用
-
修改Gemfile:
gem “tenpay”
-
生成配置文件:
$ script/rails g tenpay
这个命令会在你的应用的config目录创建一个tenpay.yml文件,默认是快钱提供的测试帐号(关于测试帐号的使用方法请参看测试章节) 将tenpay.yml中的商户ID和密钥替换为财付通提供给你的真实ID和密钥然后进行下一步。
-
下面的代码会创建一笔新订单:
@request = Tenpay::Request.new(
'test product', # 产品名称
1, # 订单编号,必须保持唯一
Time.now, # 订单生成时间
4500, # 订单价格,以分为单位
'http://return', # 完成支付后的回调地址
request.remote_ip, # 用于IP验证,开发模式可忽略
'attach data') # 自定义数据
redirect_to @request.url
上面的代码会将用户重定向到财付通的支付页面。
-
在用户完成支付后,财付通会调用你在支付请求中提供的返回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