城市:上海
地址:在线支付接口详解丨支付接口对接丨APP支付通道丨BC支付接口丨D0支付接口
展馆:BC支付接口Q:97860818 Skype:bczfjk@outlook.com bc支付接口API代付/原生微信支付宝h5 支付接口 支付通道 第三方支付接口 第四方支付接口 Bc支付接口
主办:支付接口 支付通道 第三方支付接口 第四方支付接口 Bc支付接口 Bc第三方支付接口 第三方支付通道 第四方支付通道 在线支付接口 微信扫码支付接口
当我们在商城购物时可能会用到在线支付,你会发现无论你是哪个银行的银行卡接口中都会支持,在做项目开 发时,也经常会用到支付接口,我们当然希望支持所有的网银,但这需要我们针对每个银行开发一套接口吗?不是不可以而是没必要,使用第三方的支付接口就可以 满足,第三方支付平台已经与各大银行进行签约,网站主只需要在此平台申请一个账号即可支持几乎所有的种类的银行卡信用卡的交易,当然是可能支付少量的手续 费的。什么是第三方支付呢?
- 1
- 2
- 3
第三方支付原理图:
以上简要说明了支付过程,当然其中省略了一些步骤(比如购物车,订单等),我们重点来看支付流程。
1用户向商城网站发起确认订单的请求
2商城网站接收到请求保存订单数据到数据库或其他存储介质
3返回订单确认页面,页面上应该显示订单金额等信息
4用户确认支付,发起支付请求。注:支付请求是发送到支付网关(比如支付宝、网银在线)而不是发送到商城网站。
5显示支付页面
6用户填写认证信息(账号密码等)提交
7这里有两个步骤一个是扣款成功后页面跳转到支付结果页面(展示给用户),另一个是支付通知,这两步没有先后顺序可能同时执行,商城网站接收到支付通知后根据验证规则验证信息的有效性,并作出相应的更改操作(例:有效则更改订单为已付款状态,无效则记录非法请求信息)。
- 1
- 2
- 3
进入支付宝后台在商家服务菜单下有两个链接:
分别可以查询到PID和Key,依次点击我的产品,技术服务将会显示:
选择“我要自助集成”接下来会看到下载技术文档的链接,点击下载技术文档。
- 1
看一下demo中每个文件的作用:
├alipay_notify.php┈┈┈┈支付宝通知处理类文件
├alipay_service.php ┈┈┈支付宝请求处理类文件
├alipay_config.php┈┈┈┈┈┈基础信息配置文件
├index.php┈┈┈┈┈┈┈┈┈┈快速付款入口模板文件
├notify_url.php ┈┈┈┈┈┈┈服务器异步通知页面文件
├return_url.php ┈┈┈┈┈┈┈页面跳转同步通知文件
这里已经下载好了(会附加在本文附件中),为了便于调试增加修改了若干文件,并增加了一张数据表保存订单信息(见附件),我们修改一下配置文件完成一个测试过程。
alipay_config.php是基础信息配置文件,我们需要将在支付宝后台获取的PID与Key写入到配置文件中。
配置项:
- 1
- 2
点击“下订单”按钮
根据上图的流程现在已经走到了步骤3,此时已经生成了订单号(为了便于测试使用了时间戳作为订单号),并且将订单信息写入到数据库。我们看一下数据库:
数据库中增加了一条“订单信息”。
如果点击“确认支付”按钮或者确认支付 链接将会跳转到支付宝页面,点击按钮时通过表单POST方式将信息提交到支付网关,由于支付请求数据无需让用户看到,这里都写在隐藏域中了。确认支付 链接是通过URL传参,因为支付宝接口允许以POST或者GET方式提交,所以两种方式都可以。把参数提交给支付网关后,页面跳转到到支付页面。我们看到 如下图所示:
我们看到支付宝为我们提供了两种支付方式,一种是通过支付宝账户支付,另一种是通过银行卡支付。例如选择使用银行卡支付,填写邮箱或手机号即可跳转到下一 个页面进行选择银行,支付宝几乎支持所有的银行卡支付,同时有信用卡和网点方式付款,选择对应的银行下一步按提示付款即可。付款完成后页面会返回到我们在 配置文件中配置的$return_url地址,同时“订单状态”也会发生改变。
注:测试时如果没有在外网测试(即支付通知地址无法在外网访问)则支付通知无法被请求到,无法自动完成订单状态的修改。
也有的开发者在浏览器的跳转页面做订单状态的更改(不推荐这样做,因为浏览器端服务器无法控制,比如突然断网,浏览器关闭等)
支付宝接口规范可参考附件和示例文件,里面已经有了比较详细的说明,比如要对支付通知进行响应等。
如何创建支付请求?
- 1
- 2
- 3
支付宝接收到参数后会进行验证请求参数的合法性,验证无误后将显示支付页面,否则提示错误。
如何验证支付通知?
在用户支付完成后,支付宝会请求网站支付通知地址(这个地址应在创建支付请求时作为参数传递过去)。返回参数列表参见标准支付宝交易服务接口(专用于防钓 鱼网站).Pdf3.3.1。支付宝的返回数据中同样有一个签名串(采取和支付请求同样的签名方式),在支付通知文件中首先要对数据进行签名验证。除了验 证签名,还需要将参数中的notify_id提交到支付宝的验证网关支付宝系统这个通知的真实性,通知验证。支付宝系统判断通知是否是自己发送,如果是以 字符串格式返回 true,否则返回false,我们通过验证服务器返回的数据验证请求的真实性,如果都验证通过则可以进行更改订单数据、给用户发送邮件通知等操作。关于 验证签名可以看一下通知文件中的源码。带demo中将参数中的notify_id提交到支付宝是通过POST方式提交并取得返回数据,代码片段: