相对来说支付宝是三大常见支付方式里面,集成起来比较简单的,官方替程序员们考虑了很多,包括详细的注释,简单的流程。集成支付宝接口我们会遇到的情况只有下面两种:
PC和WEB支付,场景是触屏网站和PC网站,也称作即时到帐接口
APP支付,场景是原生APP
PC和WEB支付之所以合并到一起是因为,支付的过程全部发生在支付宝的页面,我们只需要负责发起,只是发起时传递的参数不同罢了。这为我们后面写通用支付类创造了很好的条件。是不是感觉很温暖,点赞马云爸爸。
APP支付相对复杂一些,主要是涉及到了公私钥的问题,在讲APP支付之前会先讨论一下公私钥,相信只要懂了原理,集成起来也不是什么难事。
让我们开始。
PC和WEB支付
接口申请
申请地址是支付宝的官网,然后我们需要一个商家账户,这个账户一般是客户或者老板注册之后给你的。在下面的地方申请:
每一个接口的申请流程都给出了直观的图解:
认证的流程也相对微信没有那么复杂,如果你先集成了微信支付再来看支付宝,是不是觉得很舒服呢。
我们把电脑网站支付和手机网站支付都申请了。
申请流程到集成上线这一步的时候,我们会看到一个前往商家管理的按钮,点击它。
集成这个接口我们只需要两个参数,点击查看PID、Key:
partner,合作者身份ID,和seller_id是同一个值
key,加密方式为md5,用于签名
集成流程
配置好上面那些参数,引入必要的文件
构造请求函数
构造表单和按钮放到页面上准备提交
支付成功后的回调验签名
WEB支付集成方式是相同的,只是配置参数中的产品类型(service)不同,PC支付的产品类型为create_direct_pay_by_user,WEB支付的产品类型为alipay.wap.create.direct.pay.by.user。
集成过程中几乎没踩过什么坑,所以如果你的客户急着要项目的话,可以先快速的把支付宝集成好,让整个项目可以正常运行,之后再增加微信支付。
总结
我们已经看了5种支付方式,分别是微信家的三个,和支付宝家的两个。不难总结出下面这样的模式:
通常来说,无论何种支付方式,你发起支付需要下面几个参数:
1. 订单号
2. 订单名称
3. 支付金额
4. 前台回调地址
5. 后台回调地址
6. 穿透数据
通常来说,无论何种支付方式,支付成功后你会收到下面的信息:
1. 你的订单号
2. 支付接口的订单号
3. 支付时间
4. 支付金额
5. 支付方式
6. 穿透数据
这个模式对我们以后写通用支付类很重要,因为想要实现简单集成,拿来则用,最关键的思想就是要把口子扎紧了,也就是把尽量少的变化留给外部,尽量实现解耦。
上面的模式也就是整个支付模块和外部交流的模板,约定好输入和输出参数之后,你甚至可以换一套支付模块,也不会影响到项目的其他部分。同样的,一个项目里面如果出现了多个支付页面,也可以使用同一个模块调起支付,降低维护成本。
后面还剩下支付宝APP支付和银联支付需要纳入我们的模块中来,他们有个共同点就是,都需要配置公钥和私钥,所以后面我们就需要研究一下公私钥原理了。
以上内容属于作者原创,特此声明,如需转载,请留言取得同意