Rails实现第三方支付

Requirement

在现有Rails项目中,扩展第三方支付功能;

Preparation

  • 认知第三支付接口的业务流程

    估计很大部分童鞋在接到该功能任务情况下,都会选择去查找实现第三方支付功能的gem,然后直接一个劲地开始 coding coding and coding !!! 导致在开发过程遇到bug或者问题都无从下手,加上支付gem的文档普遍写得不够详细,那更加雪上加霜。所以建议弄清楚第三方支付接口业务流程后,再去选择合适的gem(关于支付gem在下面会有简要介绍)。

    Tenpay(财付通)为例子:

    wap支付流程

    wap支付流程中,用户在财付通WAP APP中购买业务,通过财付通WAP支付平台进行支付。典型业务流程如下:

    Wap

    通知查询/订单查询流程(按需要把,其实这个功能大部分情况都不怎么用到)

    通知查询/订单查询是指财付通APP向财付通系统发送查询请求,并同步等待财付通系统处理完毕后返回的响应数据。数据交互是财付通APP与财付通服务器直接通信。

    Tenpay

    后台通知流程 (这个比较重点,简单说就是有sync与async两种requests)

    后台通知是指财付通系统主动向财付通APP发送通知数据,并同步等待财付通APP处理完毕后返回的响应数据。数据交互是财付通服务器与财付通APP直接通信,一般请求采用http的get或post,应答用字符串格式。

    Tenpay

    更多文档可以直接去官网查看:

    Tenpay Doc

    Alipay Doc

  • 申请需求的Key(申请key各位童鞋们自己去搞定,这里就不多介绍)

    Tenpay 需要 SPID KEY Tenpay

    Alipay 需要 Account Key Email Alipay

Coding

Read pay_fu Readme

Testing

  • Tenpay

    http://open.tenpay.com/wiki/index.php/%E6%B5%8B%E8%AF%95

  • Alipay

    说到Alipay的测试,我就忍不住吐槽一番了,居然连测试帐号与沙箱环境都没提供,那好把! 乖乖的一分钱一分钱的去测试,然后通过错误日记提示错误,通过模拟request测试直到成功

Payment gems

  • activemerchant_patch_for_china

    简介: A rails plugin to add an active_merchant patch for china online payment platform including alipay (支付宝), 99bill (快钱) and tenpay (财付通)

    github: https://github.com/flyerhzm/activemerchant_patch_for_china

    优点: 支持支付方式多

    缺点:目前已停止更新, 多样性的支付方式必定伴随着定制性与轻巧性的不足

  • pay_fu

    简介:a rails payment engine that supports both alipay and paypal

    github: https://github.com/transist/pay_fu

    优点: 轻巧,目前仍处于更新ing

    缺点: 支持支付方式少,某些参数配置依赖于activemerchant_patch_for_china,无sync request handler function,async request handler function定制性难

    PS: (目前正对pay_fu补充Tenpay feature,并增加sync request与async request handler function 的定制)

定制我们自己的 JQuery 插件

### 介绍---一直来使用过的 JQuery 插件很多,也写过一些 JQuery 库的扩展。然而要真正了解插件如何扩展 JQuery 库需要对 JavaScript prototype 属性有一些基本的了解。虽然说不直接使用,但是 JavaScript prototype...… Continue reading

HTML INPUT TYPE

Published on July 26, 2015

HTTP 信封里的文档

Published on July 16, 2015