Magpie用于模拟支付平台的沙盒功能
Git: http://github.com/baya/magpie
Author: Guimin Jiang
Copyright: 2010
License: MIT License
Latest Version: 0.8.8
Release Date: 2010-11-03
快搭
sudo gem install magpie
打开终端,输入:
$ mag magpie.yml
magpie.yml文件用来配置你的商号信息, 假设你在支付宝(alipay)有个账号:123456, key是:aaabbb, 网银在线(chinabank) 有个账号:789789, key是:cccddd, 财付通(tenpay)有个账号:888666, key是:dddggg, 那么你在magpie.yml中这样写,
alipay: - ["123456", "aaabbb"] chinabank: - ["789789", "cccddd"] tenpay: - ["888666", "dddggg"]
注意! 如果你输入mag命令报错, 那可能是因为你的电脑缺少一些magpie需要的gem包, 试着使用下面的命令:
$ sudo gem install rack $ sudo gem install hpricot
mag命令默认会在本地9292端口启动http服务, 你可以用-p选项指定端口
mag -p 2010 magpie.yml
mag命令的更多选项可以通过mag -h
查看
使用示例
假设你正在实现支付宝支付的相关代码, 首先启动magpie服务
$ mag magpie.yml
上面命令的意思是:用Mongrel启动magpie服务, 服务的mode是snake, 日志文件是magpie.log, 服务的端口是9292
完整的命令是: mag -s mongrel -M snake -L magpie.log -p 9292 magpie.yml
然后在你开发的商户系统中将支付网关由支付宝的网关https://www.alipay.com/cooperate/gateway.do
更改为magpie的网关http://127.0.0.1:9292/alipay
如果你请求的参数出现错误, 你可以通过magpie的日志查看到详细的出错信息, 或者在浏览器上查看出错信息
如果你的支付请求成功, magpie将会显示一个成功订单的页面, 然后你点击购买就可以给你自己的商户系统发送
购买成功的通知了, 你需要确保你商户系统的notify_url
是可用的,magpie将通过这个notify_url
将支付
成功的通知发到你的商户系统中, 这样你就可以避免去支付宝的页面进行真实的支付.
对于网银在线(chinabank), 将支付网关由网银在线的网关https://pay3.chinabank.com.cn/PayGate
更改为
magpie的网关http://127.0.0.1:9292/chinabank
对于财付通(tenpay), 将支付网关由财付通的网关http://service.tenpay.com/cgi-bin/v3.0/payservice.cgi
更改为magpie的网关http://127.0.0.1:9292/tenpay
Magpie启动模式
1. bird mode
$ mag -M bird magpie.yml
写ruby代码的人一般都是测试控, 这个bird模式主要是为他们提供.以支付宝(alipay)为例, 开发者将支付
参数提交到http://127.0.0.1:9292/alipay, 出错信息将以xml格式反馈给开发者,如果提交成功, 成功
信息同样以xml格式反馈给开发者, 同时magpie会自动将购买成功的消息通知到开发者的商户系统中,并返回
商户系统的处理结果.
在bird模式下,开发者需要确保magpie.yml中的商号信息是真实有效的,也就是在alipay上实际注册过的,因为
magpie在bird模式下会将开发者提交的支付参数往alipay的实际网关https://www.alipay.com/cooperate/gateway.do
发送一次.
网银在线(chinabank), 财付通(tenpay)的模拟情况与之类似.
2. snake mode
$ mag -M snake
这是magpie默认的启动模式,以支付宝(alipay)为例, 开发者将支付参数提交到http://127.0.0.1:9292/alipay
出错信息以普通html页面显示,如果提交成功, 开发者将看到订单的详细信息, 然后开发者可以点击支付按钮进行支付
测试, 最终magpie将返回开发者商户系统的处理结果.
网银在线(chinabank), 财付通(tenpay)的模拟情况与之类似
其他语言开发者
如果你使用其他开发语言, 比如php, java等,需要使用magpie, 必须首先搭建ruby执行环境才能运行mapgie.
你可以看看这篇资料http://www.javaeye.com/topic/43228
在这篇资料,你看到"然后就可以安装rails了,"这里就可以停止了, 然后开始搭建ruby执行环境. 我鼓励你能
把整篇资料看完, 搭建好ruby on rails开发环境, 这样你就可以用rails开发项目了.
支持的支付平台
- 支付宝(alipay)
- 网银在线(chinabank)
- 财付通(tenpay)
使用的项目
感谢
- potian Rack编程的作者
- liuzihua liuzihua8@gmail.com
Changelog
2010-10-20: 0.8.6.1 release
- 支持网银在线
2010-10-20: 0.8.6.2 release
- 改善README.md的可阅读性
2010-11-03: 0.8.8 release
- 增加财付通的支持
- 增加snake, bird两个启动模式
- 增加日志功能
2010-11-08: 0.8.8.1 release
- 修改一个紧急bug: 加载yml文件报无法找到YAML
Copyright
MAGPIE © 2007-2010 by Guimin Jiang. MAGPIE is licensed under the MIT license except for some files which come from the RDoc/Ruby distributions. Please see the COPYING documents for more information.