前言
通过前面两篇文章:独立开发如何接入支付宝和微信支付 和 独立开发者应该如何注册个体工商户,我们知道,个人开发者也是可以比较简单、且体面的为自己的产品接入支付功能的。
众所周知,对接支付相对而言还是比较麻烦且敏感的,但无论是开发网站还是APP,只要涉及到支付,就很难绕开这个话题。而且不同的业务场景、产品形态,需要对接的支付方式也不太一样。不仅如此,在国内,支付至少要支持支付宝和微信两种方式,其复杂性就再一次翻倍了。
因此,接下来我将以我自己的网站为例,分两篇文章介绍一下我是如何以尽可能简单的方式接入支付宝支付的,微信支付后面再说。
当然,思路仅作参考,正式对接起来,还是应该多多查阅官方文档,官方文档才是最靠谱的。
1. 接入流程
虽然支付宝的支付方式有很多,每种支付方式又有很多接口,但接入流程通常是类似的,大致可以分为如下几个步骤:
- 通过支付宝扫码登录 支付宝开放平台,支付宝相信大家应该还是有的吧;
- 明确希望接入支付的应用类型并创建应用,这一步相当于在支付宝平台为你的网站/APP或其它应用创建了一个身份,方便管理;
- 完善应用配置,包括应用的基本信息和开发设置,如加密密钥、回调地址等,配置完成之后需要提交审核,审核通过后,该应用就上线了;
- 开通支付功能,默认情况支付功能都是不开通的,且个人开通时需要上传营业执照,这也是为什么要注册个体工商户的原因;
- 沙箱开发测试,这是一个虚拟环境,用到的也是虚拟的支付宝账号,开发测试会非常方便;
- 上线应用,这里指的你自己的实际应用支付功能开发完成后,将配置改为正式环境的过程,并非第3步中提到的上线,二者可以独立进行。
这篇文章,我准备简单介绍一下2、3、4步,因为第1步没什么好说的,5更偏技术,相对而言麻烦一些,我准备单独用一篇文章来介绍,而6也不复杂,会在5之后顺带说一下。
2. 创建应用
打开 支付宝开放平台后,可以看到下面的页面:
正常情况下,我们开发的应该是 网页/移动应用开发,因为这里面已经包含了PC网站,手机网站和手机APP了,当然,如果你对基于支付宝平台的小程序、小游戏等其它的感兴趣,也可以了解一下。
选择 网页/移动应用开发,然后按指引创建就可以了,下图是以我的博客为例创建的网页应用。
商家账号用个人账号就可以了,不用特意升级为个体户,只是后续开通支付功能的时候,营业执照的主体要与这个账号的主体一致。
3. 完善配置
应用创建完成后,就需要完善应用的配置了,这里主要包括应用详情和开发设置两个部分。
应用详情设置没有难度,看情况修改即可,这里主要介绍一下开发设置中一些需要注意的地方。
3.1 接口加签方式
这是最复杂也是最重要的一个配置项,从某种意义上讲,只要把这个配置好了就行了,其它的都可以不用管。
点击设置会弹出如下对话框,不明就里的人看到这种警告,可能直接就不知所措了吧?
不要慌,直接点“确认”就好了。
这一步说得也很清楚,直接选“密钥”就可以了。
生成密钥文件的时候,需要下载一个PC端的应用,用于生成密钥,具体的操作步骤直接见上图,最后将生成的公钥复制到上图中的第三步。
密钥会自动保存到本地文件,注意保存,不要删掉了,后续会用到。最后会到达如下图所示的页面。
这里的注意事项其实可以不用管,直接点击“稍后操作”就可以了。下载支付宝公钥,后续会用到,注意,这里是支付宝公钥,而不是应用公钥。不知道公钥/私钥是干什么的,可以自行了解一下,这里就不展开介绍了。
3.2 接口内容加密方式
顾名思义,就是加密接口中具体内容的,密钥由平台自动生成,可设置也可不设置。事实上,除了一些特别敏感的信息,如手机号、身份证号、密码、运动数据等,大部分情况是不需要设置的。
为了简单起见,我这里就没有设置。
3.3 服务器IP白名单
这个功能开发者可以给资金操作类敏感接口配置IP地址白名单,例如预下单,退款之类的,为了简单起见,可以将已签约的高风险接口全选,然后在下一步填上网站所在服务器的IP就可以了。
注意,由于有些高风险接口可能我们还没有签约,等未来签约后可以再回头补上。事实上,这里所谓的风险并没有想象中的那么高,作为个人开发者,最简单的办法就是忽略。
只要前面生成的私钥不泄露,别人是攻击不了的。事实上,我就没有配置这一步。
3.4 应用网关
这个比较重要,需要填写一个回调接口地址,这个接口需要在我们的网站中实现,支付成功或失败后,用于接收并处理支付宝异步通知的。有了这个功能,我们才可以更方便地在订单完成之后,自动处理后续业务逻辑,如发货或开通权限等。
当然,严格来说,这个也可以不设置,我们通过订单号定时轮询的方式也可以查询支付状态,并完成后续逻辑。通知和轮询,二者可以实现相同的功能,但在实际开发中,我们两个都要,具体实现我们在下一篇文章中再展开介绍。
3.5 支付宝网关地址
这个值是固定的,正式环境是https://openapi.alipay.com/gateway.do
,沙箱环境(开发测试环境)是https://openapi-sandbox.dl.alipaydev.com/gateway.do
,不需要单独配置,开发时直接用就可以了。
怎么样,配置还是很简单的吧?接下来提交审核就可以了。
审核通过后,这个应用就上线了,可以在生产环境中使用了。
4. 开通支付功能
支付功能只跟主体相关,而跟应用无关,也就是说,无论你开发多少个应用,同一个支付功能只需要开通一次就够了。
4.1 支付功能介绍
前面多次提到支付方式有很多,现在我们详细看看具体有哪些,然后选出最符合自己业务场景的一个或几个接入。
打开 https://open.alipay.com/api#openapi
可以看到如下界面:
其中,
- 当面付是面向线下门店的,开通时,除了需要营业执照外,还需要经营场所照片(包括店铺招牌照片和店铺内景照片)、店铺名称/经营品牌名称以及实际经营地址等。并且这个是商家扫客户,所以这个功能对开发者而言,基本用不上;
- 订单码支付和当面付的应用场景和开通条件是一样的,唯一的区别就是这个是客户扫商家,和当面付刚好相反。然而,仅这一点点区别,就意味着它可以实现线上支付。只要商家根据不同商品生成订单二维码放到网站上,客户就可以扫码下单了。但问题就是订单码支付也是线下面对面支付的一种形式,线上收款会受限,甚至会被风控,因此,保险起见,我们也不选;
- JSAPI支付是基于支付宝开发小程序用的,因此也用不上;
- APP支付顾名思义就是开发APP用的,但这里指的是原生APP,用于调起支付宝。开通条件是需要营业执照,APP有没有上线应用市场都可以,但应用必须包含明确的经营内容和价格信息,且经营内容须与营业执照经营范围一致。这个对于APP开发者而言,还是用得上的;
- 手机网站支付和电脑网站支付都是面向网站的,唯一的区别在于前者在移动端访问时,可以像APP支付一样直接调起本地的支付宝,而后者无论在什么地方都会生成二维码,然后需要通过支付宝扫码支付。开通条件是需要营业执照,提供网站地址,并且网站必须通过 ICP 备案。值得注意的是,如果是基于H5开发的混合APP,则也应该用手机网站支付。另外,电脑网站支付相对于订单码支付,除了审核材料更易获得之外,最主要的是天然支持线上支付,没有异地支付被风控的风险。
最后面的三个基本用不上,就不再介绍了。总而言之,看似支付方式很多,但对个人开发者而言常用的就3个,如果开发的是原生APP,则应该开通APP支付;如果是基于H5的混合APP,则应该开通手机网站支付;而如果开发的是网站,则应该同时开通手机网站支付和电脑网站支付,毕竟现在的网站都是移动端和PC端均可访问的。
当然,接入两种支付方式复杂度必然就高了,因此,前期可以先接入电脑网站支付,后续再把手机网站支付补上,缺点是补上手机网站支付之前,移动端支付就没那么方便了。
4.2 开通支付功能
经过上一节的介绍,已经很清楚了,最适合我的是电脑网站支付,其次是手机网站支付。这一节我就以手机网站支付为例,简单介绍一下开通过程。
首先,通过 https://open.alipay.com/api#openapi
页面选择手机网站支付。
选择相应的应用,平台就会自动检测当前应用是否满足条件。
点击查看详情,可以看到如下内容:
这时会发现手机网站支付的状态是未开通
,点击开通产品,然后根据指引操作就可以了。其中的一个步骤就是填写网址:
申请时,网站有没有上线都可以,没上线当然也不需要 ICP
备案,但没上线需要上传网站截图,并且收款额度及产品使用有效期都会受限,因此,还是要尽快完成上线并备案。
最后,提交审核就可以了,基本上当天就可以出结果。值得注意的是,由于在写这篇文章的时候,我的个体户已经绑定好了,所以整个流程中都没有再提示我上传营业执照之类的,但第一次操作的时候应该会有比较明显的提示。完成之后,可以在 支付宝商家平台 看到商户信息。
通过上面的方式,我开通了电脑网站支付和手机网站支付,而且手机网站支付是基于主域名网站(博客网站)开通的,电脑网站支付是通过子域名网站(一起学笛子)开通的。开通的时候,网站中并没有任何商品及价格信息,比如我的博客网站,甚至和支付一点关系都没有,但依然开通成功了,个人感觉审核非常宽松!
比较让人疑惑的是,同一种支付方式同一主体只需要开通一次,那如果我同一主体下有多个域名,用其中一个备案的域名开通,其它域名也能实现支付吗?这个我暂时还没有条件去验证,有条件的可以试试看,我自己只能等以后用到的时候再说了!
结语
介绍到这里,支付宝支付的所有准备工作就全部完成了,下一步就该写代码了,这个下一篇文章再继续介绍吧。
评论0
暂时没有评论