最近需要给(ZT)增加在线支付功能,比较了国内的各种支付方案,最后选择了财付通,申请比较简单而且没有年费,但是腾讯官方只提供了PHP,JSP和ASP的代码,只能自己写了一个Rails的。
安装
$ script/plugin install git://github.com/yzhang/tenpay.git
使用
1. 插件安装后,会在你的config目录下创建一个tenpay.yml文件(默认是腾讯提供的测试帐户,往这个帐户付款它居然真的就收了,虽然只是1分钱),你需要修改这个文件,填入你从腾讯申请的商户号(spid)和密钥(key)。
2. 下面的代码演示如何创建一个新交易:
@request = Tenpay::Request.new('测试产品', # 产品名称
1, # 订单编号,需要保证全局唯一
4500, # 产品价格,以分为单位
'http://return', # 用户完成支付后返回的URL, 支持Get/Post
request.remote_ip, #用户IP,用户production模式下检验用户,development模式忽略。
'attach data') # 商户数据,会原样传递给返回URL,可不填
redirect_to @request.url
用户访问这个action的时候会被引导到支付页面。
3. 用户完成支付后,需要返回商户页面,也就是你在请求中填写的返回URL,下面的代码用于验证请求是否有效:
@response = Tenpay::Response.new(params)
if @response.successful?
# 支付成功
else
# 不合法的请求或支付失败
end
目前还不支持查询接口,欢迎大家的意见和建议。

