2008-10-11更新,支持支付宝notify方法。http://www.iteye.com/post/693987
ActiveMerchant 很好很强大,但是网上介绍的都是信用卡支付的方式,对于国内这种类Paypal的支付方式很少。
这种支付方式在ActiveMerchant中称之为integration模式,可能是由于编写起来并不难,介绍它的文档很少,我编写的时候是完全按照paypal的代码写的。
http://code.google.com/p/activemerchant/issues/detail?id=114
是我提交的Patch,以支付宝为例,在使用前需要指定 ActiveMerchant::Billing::Integrations::Alipay::KEY和Alipay::ACCOUNT,具体这两个值放在哪里,根据个人喜好,直接放在插件中,或者放在environment.rb中,或者放在lib文件夹下require进来都可以。
使用的时候,需要在页面中使用下面这样的代码(参见
http://activemerchant.rubyforge.org/classes/ActiveMerchant/Billing/Integrations/ActionViewHelper.html)
<% payment_service_for 1000, 'paypalemail@mystore.com',
:amount => 50.00,
:currency => 'CAD',
:service => :paypal,
:html => { :id => 'payment-form' } do |service| %>
<% service.customer :first_name => 'Cody',
:last_name => 'Fauser',
:phone => '(555)555-5555',
:email => 'codyfauser@gmail.com' %>
<% service.billing_address :city => 'Ottawa',
:address1 => '21 Snowy Brook Lane',
:address2 => 'Apt. 36',
:state => 'ON',
:country => 'CA',
:zip => 'K1J1E5' %>
<% service.invoice '#1000' %>
<% service.shipping '0.00' %>
<% service.tax '0.00' %>
<% service.notify_url url_for(:only_path => false, :action => 'notify') %>
<% service.return_url url_for(:only_path => false, :action => 'done') %>
<% service.cancel_return_url 'http://mystore.com' %>
<% service.sign %>
<% end %>
helper.rb中的工作也很重要,
mapping :tax, 'tax_no'
说明 service.tax '0.00' 会生成 <input type='hidden' name='tax_no' value='0.00'/>这样一个表单字段。
mapping :customer, :email => 'c_email', :address => 'c_address'
说明 service.customer :email => 'alipay@iteye.com', :address => '上海' 会生成
<input type='hidden' name='c_email' value='alipay@iteye.com'/>和
<input type='hidden' name='c_address' value='上海'/>两个字段。
对于不会用于生成Hash签名,基本不会变的字段,可以在helper的intialize方法中生成
def initialize(order, account, options = {})
super
add_field('bank_type', 0)
end
=> '<input type="hidden" name="bank_type" value="0"/>'
service.sign方法,是我为生成签名添加的。在这个方法里最后使用 add_field 'sign', sign把hash值填入到表单里。(好像只有国内的支付接口需要计算hash值)
# in lib/active_merchant/billing/integrations/tenpay.rb
def sign
add_field('sign',
Digest::MD5.hexdigest("cmdno=#{cmdno}&date=#{date}&bargainor_id=#{account}" +
"&transaction_id=#{transaction_id}&sp_billno=#{order}&total_fee=#{amount}" +
"&fee_type=#{currency}&return_url=#{return_url}&attach=#{attach}&key=#{KEY}"))
end
返回方式有两种,notify和return。可以理解为异步和同步方式,一般notify方法还需要acknowlege,也就是通知对方收到。目前支付宝的notify模式尚未支持,若要使用需要参照paypal的实现。这里先看return模式。
Return类只需要两个方法 success? 和 message,使用的时候也很简单
def OrderController < ApplicationController
include ActiveMerchant::Billing::Integrations
def alipay_return
r = Alipay::Return.new(request.query_string)
unless @result = r.success?
logger.warn(r.message)
end
end
分享到:
相关推荐
本压缩包文件"支付宝,财付通,快钱支付接口.rar"包含支付宝、财付通和快钱这三家知名第三方支付平台的支付接口文档,旨在为开发者提供详尽的接入指南。以下是关于这些支付接口的详细说明: 1. **支付宝在线支付...
在这个C#版的支付解决方案中,我们涵盖了支付宝、财付通和快钱这三种主流的第三方支付平台,它们在中国市场占据了重要的地位。 首先,让我们来了解一下支付宝。支付宝是中国最大的第三方支付平台,由阿里巴巴集团...
多数支付网关使用的都是标准的MD5加密,但也有特殊的加密方式。例如易宝使用hmac-md5,支付宝使用非标准的MD5加密。...其它的如财付通、云网、网银在线、NPS、快钱、贺喜等支付平台都可以使用标准的MD5.
"快钱接口C#.net"项目就是这样一个示例,它展示了如何使用C#编程语言和.NET框架来实现与快钱支付平台的集成。快钱是中国知名的第三方支付服务提供商,提供了多种支付解决方案,包括但不限于在线支付、快捷支付、扫码...
PHP是互联网开发中广泛使用的编程语言,因此快钱提供了PHP版本的SDK和示例代码,方便开发者快速接入。 快钱人民支付开发接口的主要功能包括但不限于: 1. **支付接口**:支持各种支付方式,如快捷支付、网银支付、...
本文将深入探讨NPS(Net Payment Solutions)、快钱、支付宝这三种常见的支付方式,以及如何利用ASP.NET和PHP开发相关的电子商务应用。 首先,NPS是一种网络支付解决方案,通常为商家提供API接口,用于集成到自己的...
7. **支付方式**:快钱支付可能支持多种支付方式,如信用卡、借记卡、快捷支付、微信支付、支付宝等,开发者需要根据用户需求和自身业务情况选择合适的支付渠道。 8. **测试环境**:在正式上线前,开发者需要在快钱...
快钱支付是面向移动应用,特别是iOS平台的一种便捷支付解决方案。这个支付接口允许开发者集成到他们的应用程序中,以便用户能够安全、...同时,快钱支付还会提供技术支持和更新,以适应不断变化的支付环境和技术需求。
4. **验证与跳转**:快钱服务器接收到请求后,会验证商户信息和交易数据的合法性,然后返回一个验证结果。如果验证成功,会生成一个支付页面链接,用户会被引导至快钱支付页面完成支付操作。 5. **处理支付结果**:...
8. **快钱人民币支付网关开发包(高级版)**:这个高级版的开发包可能包含了更全面的功能和更精细的控制选项,例如支持更多的支付方式,或者提供了更详细的交易报告功能。 总的来说,使用快钱人民币支付网关开发包,...
- **使用对象**:主要面向快钱安全支付网关商户的网上应用开发人员、维护人员和管理人员。 - **技术支持**: - **联系方式**:技术支持邮箱:`support@99bill.com`;技术支持热线:`(021)58777299-864/876`;服务...
同时,要遵守快钱的API使用规定,确保交易的合法性和合规性。 7. **调试和测试** 在实际部署前,开发者应利用快钱提供的测试环境进行调试,检查支付流程的每一个环节,确保在正式环境中能正常工作。这通常包括模拟...
- **申请商户编号与商户密钥**:在使用快钱支付接口前,必须向快钱公司申请获得唯一的商户编号(`$merchant_id`)及相应的商户密钥(`$merchant_key`)。这些信息将用于验证交易的安全性。 - **安全机制**:快钱支付...
需要注意与支付宝的差别,人民币网关快钱退款后,需要大约5个工作日。商务上具体对接时,可以咨询快钱技术,因为可能有变,比如为了提高用户体验,缩短时间。 并且退款后,快钱服务器不会回调,所以需要主动发起查询
本文档旨在为使用快钱人民币支付网关的商户提供详细的接口规范指南,帮助商户的技术团队更好地理解和接入快钱支付系统。通过遵循本文档中的指导原则和技术细节,商户可以有效地集成快钱支付解决方案,实现安全、高效...
通过不断创新和发展,快钱已经能够提供种类繁多的支付工具和服务,包括但不限于人民币支付、外卡支付、神州行卡支付、联通充值卡支付以及VPOS支付等多种支付方式。这些支付工具不仅支持多种终端设备(如互联网、手机...
**第三方支付**是另一种常见的支付方式,如支付宝、财付通和快钱。这些第三方支付平台为企业和个人提供了一个中间渠道,确保交易的安全性和便利性。例如,支付宝通过其“第三方担保交易模式”保障交易安全,用户数量...
第三方接口:NPS、快钱、支付宝三种在线支付接口附近,内有详细文档说明
1. **网银接入**:快钱提供的网银接入服务允许消费者使用个人银行卡进行在线交易。这意味着企业客户可以集成快钱的支付接口,使得消费者在购买商品或服务时能够直接通过网银转账完成支付,提高支付效率和交易安全性...