在线支付接口讲解

上传人:mg****85 文档编号:34784195 上传时间:2018-03-01 格式:DOC 页数:7 大小:303.05KB
返回 下载 相关 举报
在线支付接口讲解_第1页
第1页 / 共7页
在线支付接口讲解_第2页
第2页 / 共7页
在线支付接口讲解_第3页
第3页 / 共7页
在线支付接口讲解_第4页
第4页 / 共7页
在线支付接口讲解_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《在线支付接口讲解》由会员分享,可在线阅读,更多相关《在线支付接口讲解(7页珍藏版)》请在金锄头文库上搜索。

1、支付接口详解 作者 李明 支付接口详解 1.什么是第三方支付 所谓第三方支付,就是一些和各大银行签约、并具备一定实力和信誉保障的第三 方独立机构提供的交易支持平台。在通过第三方支付平台的交易中,买方选购商品后, 使用第三方平台提供的账户进行货款支付,由第三方通知卖家货款到达。 目前提供第三方支付的机构很多,常见的有支付宝、财付通、快钱、网银在线、 易宝支付、云网等各大支付平台。网站如果需要实现第三方支付首先应该向第三方支 付平台申请一个账号并签署协议,协议生效后第三方支付平台将为其开通在线支付功 能,通过程序将接口集成到网站中。 为什么要使用第三方支付?因为第三方支付平台已经与各大银行进行签

2、约,网站 主只需要在此平台申请一个账号即可支持几乎所有的种类的银行卡信用卡的交易。 2.第三方支付原理 以上简要说明了支付过程,当然其中省略了一些步骤(比如购物车,订单等) ,我们重点来 看支付流程。 2.1用户向商城网站发起确认订单的请求 2.2商城网站接收到请求保存订单数据到数据库或其他存储介质 2.3返回订单确认页面,页面上应该显示订单金额等信息支付接口详解 作者 李明 2.4用户确认支付,发起支付请求。注:支付请求是发送到支付网关(比如支付宝、网 银在线)而不是发送到商城网站。 2.5显示支付页面 2.6用户填写认证信息(账号密码等)提交 2.7这里有两个步骤一个是扣款成功后页面跳转

3、到支付结果页面(展示给用户) ,另一 个是支付通知,这两步没有先后顺序可能同时执行,商城网站接收到支付通知后根据验证 规则验证信息的有效性,并作出相应的更改操作(例:有效则更改订单为已付款状态,无 效则记录非法请求信息) 。 以支付宝为例:如果实现在网站中集成支付宝接口,首先要有一个支付宝账号,接下 来向支付宝申请在线支付业务,签署协议。协议生效后有支付宝一方会给网站方一个合作 伙伴ID,和安全校验码,有了这两样东西就可以按照支付宝接口文档开发支付宝接口了, 在上图的几个步骤中只有4和7两个步骤在商城与支付网关之间有信息交互。在步骤4中指将 数据发送到支付网关(支付宝) ,在步骤7中是的通知验

4、证部分,验证网关请求网站某地址, 网站按验证规则对信息进行验证记录并作出响应,我们几乎在开发任何支付接口时,重点 是这两部分的开发,明白支付接口原理,开发支付接口就不难了。 3.支付宝接口开发 3.1接口简介与测试 支付宝目前提供了,担保交易、标准即时到帐、双功能等几种接口,只是在功能上有 些差异,网站集成方式是一样的。以标准即时到帐接口为例,在与支付宝签署协议后, 还需要几个步骤才能完成集成。 进入支付宝后台在商家服务菜单下有两个链接: 分别可以查询到PID和Key,依次点击我的产品,技术服务将会显示:支付接口详解 作者 李明 选择“我要自助集成”接下来会看到 的链接,点击下载技术文档。

5、在下载后的文件中有标准支付宝交易服务接口、商家工具、接口集成指南等接文档, 另外还有几种语言写的demo。我们可以根据接口文档按规则全新开发,也可以再demo 基础上修改集成到网站,需要注意的是开发支付接口需要在公网(服务器必须可以通 过外网访问)才可以完成整个调试过程,如果服务器在外网访问不到,则无法接收到 支付通知。 看一下demo中每个文件的作用:alipay_notify.php支付宝通知处理类文件alipay_service.php 支付宝请求处理类文件alipay_config.php基础信息配置文件index.php快速付款入口模板文件notify_url.php 服务器异步通知

6、页面文件return_url.php 页面跳转同步通知文件 这里已经下载好了(见资源目录pay文件夹) ,为了便于调试增加修改了若干文件,并 增加了一张数据表保存订单信息,我们修改一下配置文件完成一个测试过程。 alipay_config.php是基础信息配置文件,我们需要将在支付宝后台获取的PID与Key写入 到配置文件中。 配置项: 其中方框内的数据是我们需要重点修改的。支付通知地址与返回地址的区别,前面已 经提到,在步骤7中有两项:支付结果页面与支付通知信息,支付结果页面是用户支付 完成后会自动跳转到这个地址这里是返回地址($return_url)。支付接口详解 作者 李明 支付通知地

7、址同样是用户支付完成后,支付宝会请求该地址($notify_url),但是支付 通知是支付宝服务器直接请求,不会被用户看到。这两个地址必须是以http开头的完 整路径格式为了完成测试过程,这里已经将/pay/alipay/notify_url.php改写,将 $notify_url设置为可访问到此文件的URL即可。这几项配置好后再根据数据库脚本 (pay/orders.sql)创建一张数据表。并根据数据库的配置信息修改mysql_config.php。 通过对支付宝提供的demo做简单修改就可以完成创建支付请求(步骤4)了,这里更 改了支付首页等页面(见源码包pay目录) 。我们先测试一下:

8、点击“下订单”按钮 根据上图的流程现在已经走到了步骤3,此时已经生成了订单号,并且将订单信息写入 到数据库。我们看一下数据库: 数据库中增加了一条“订单信息” 。 如果点击“确认支付”按钮或者确认支付 链接将会跳转到支付宝页面,点击按钮时通支付接口详解 作者 李明 过表单POST方式将信息提交到支付网关,由于支付请求数据无需让用户看到,这里都 写在隐藏域中了。确认支付 链接是通过URL传参,因为支付宝接口允许以POST或者 GET方式提交,所以两种方式都可以。把参数提交给支付网关后,页面跳转到到支付 页面。我们看到如下图所示: 我们看到支付宝为我们提供了两种支付方式,一种是通过支付宝账户支付

9、,另一种是 通过银行卡支付。例如选择使用银行卡支付,填写邮箱或手机号跳转到如下页面:支付接口详解 作者 李明 我们开单支付宝几乎支持所有的银行卡支付,同时有信用卡和网点方式付款,选择对 应的银行下一步按提示付款即可。付款完成后页面会返回到我们在配置文件中配置的 $return_url地址,同时“订单状态”也会发生改变。 注:测试时如果没有在外网测试(即支付通知地址无法在外网访问)则支付通知无法被请求到,无 法自动完成订单状态的修改。 3.2支付宝接口规范与代码分析 支付宝接口规范可参考/pay/doc/标准支付宝交易服务接口(专用于防钓鱼网站).Pdf,里 面已经有了比较详细的说明。 3.2

10、.1如何创建支付请求 在前面的测试中我们点击了“确认支付”将信息将信息提交到了支付宝的支付网 关,我们可以思考一下应该发送哪些参数给支付网关。关于请求参数列表可以参考标 准支付宝交易服务接口(专用于防钓鱼网站).Pdf中的3.2.2。需要注意的是并不是我们把这些 参数原封不动的提交到支付宝就可以了,为了保证数据安全支付宝目前使用的是MD5签 名防止数据篡改机制。 在提交数据前需要将需要提交的数据以一定规则(见接口文档)组装成字符串, 加上安全校验码(Key)组成一个新字符串,通过MD5生成一个32字节的签名,我们提 交支付请求时还需要把这个签名也提交过去。看一下表单源码 支付宝接收到参数后会进

11、行验证请求参数的合法性,验证无误后将显示支付页面,否则提 示错误。 3.2.2 如何验证支付通知支付接口详解 作者 李明 在用户支付完成后,支付宝会请求网站支付通知地址(这个地址应在创建支付请求时 作为参数传递过去) 。返回参数列表参见标准支付宝交易服务接口(专用于防钓鱼网站).Pdf3.3.1。 支付宝的返回数据中同样有一个签名串(采取和支付请求同样的签名方式) ,在支付通知文 件中首先要对数据进行签名验证。除了验证签名,还需要将参数中的notify_id提交到支付 宝的验证网关支付宝系统这个通知的真实性,通知验证。支付宝系统判断通知是否是自己发 送,如果是以字符串格式返回 true,否则

12、返回false,我们通过验证服务器返回的数据验证 请求的真实性,如果都验证通过则可以进行更改订单数据、给用户发送邮件通知等操作。 关于验证签名可以看一下通知文件中的源码。带demo中将参数中的notify_id提交到支付宝 是通过POST方式提交并取得返回数据,代码片段: 这里重点就是fsockopen函数,在发送电子邮件时我们已经接触过,通过此函数打开套接 字连接,类似于以前学过的fopen函数返回的是一个文件句柄,之后可以使用文件函数( fgets()、fgetss()、fputs()、fclose() feof()等)对其进行操作,代码中使用 了fputs()(同fwrite())函数,写入数据来模拟表单以POST方式提交数据,最后通过 fgets()函数获取返回的数据保存到数组中,最后进行验证,具体参照源码。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号