此博客不更新好久了, 更新的文档在这, 有兴趣到这里围观:node
---------------------------------------------------github
因项目须要,要增长支付宝手机网站支付功能,找了支付宝的样例代码和接口说明,折腾两天搞定,谨以此文做为这两天摸索的总结。因为公司有本身的支付接口,并不直接使用这个接口,因此晚些时候打算把测试代码整理好放到Github上。浏览器
github上有两个开源小项目(搜索 alipay
),但都没有WAP支付功能,能够拿来当参考,能够认为是示例代码的js移植版,结构很相像。我原打算在其中一个项目基础上继续开发,看了代码和接口文档后,仍是决定从头开发一个。由于原有代码层次不够清晰,有点过分设计的感受,并且支付宝的接口很简单,重写工做量不大。服务器
吐槽下: 官网的示例代码真只是示例级(test)而已,跟产品级(production)还隔比较远,感受还谈不上SDK。接口文档至关的坑爹,正因如此我才以为有必要好好写篇文章总结。异步
接口开发最重要的应该是理解数据交互流程了,流程弄清了,并理解为什么这么设计,开发起来也是事半功倍测试
首先,要准备下面几个参数:网站
a. 企业支付宝帐号的PID(也叫ParnerID)和KEY,若是使用RSA签名而不是MD5的话,还要把RSA私钥准备好url
b. 支付时用户看到的东西:商品名称(subject)、支付总额(total_fee)、购买数量(一般都是1吧)spa
c. 交易后的跳转地址,交易成功后用户能够手工点击,或页面延迟自动跳转到这个地址(return_url)
d. 交易状态异步通知地址,交易成功或交易关闭会把消息POST到这个地址(notify_url)
而后,看这幅流程图(不错吧,推荐下这个网站:)
这个流程图基本囊括了整个交互过程,下面是说明:
能够发现,整个流程有点像OAuth(哎呀,以前那篇文章还没写完呢!),主要分三步:
一是申请支付宝交易号(获取token),这一步能够理解为,让支付宝验证网站的有效性、让网站指定该交易要支付多少钱 二是用户到支付宝页面付款,这一步能够理解为,让支付宝验证用户有效性,让用户在一个不受网站监视的环境下进行支付 三是用户付款后,处理结果页面告诉用户支付成功(同步通知),另外异步通知网站服务器该订单已支付。
支付宝的接口文档说只有两个步骤,感受不是很好理解,三步仍是比较准确的(收钱确定要办事的嘛)。
好困,细节问题下期继续。。。