<sub id="pvpnh"><meter id="pvpnh"></meter></sub>

        <th id="pvpnh"></th>

        <sub id="pvpnh"></sub>

        1. 无忧支付网首页
          囊括国内所有第三方支付公司信息
          为客户提供最优?#23454;?#25903;付接口服务
          24小时服务电话
          站内搜索
          您当前的位置:主页 > 支付接口申请相关知识 >

          支付宝在线支付接口开发教程

          添加时间:2015-02-10 20:02

            1.什么是第三方支付

            所谓第三方支付,就是一些和各大银行签约、并具备一定实力和信誉保障的第三方独立机构提供的交易支持?#25945;ā?#22312;通过第三方支付?#25945;?#30340;交易中,买方选购商品后,使用第三方?#25945;?#25552;供的账户进行货款支付,由第三方通知卖?#19968;?#27454;到达。

            目前提供第三方支付的机构很多,常见的有支付宝、财付通、快钱、网银在线、易宝支付、云网等各大支付?#25945;ā?#32593;站如果需要实现第三方支付首先应该向第三方支付?#25945;?#30003;请一个账号并签署协议,协议生效后第三方支付?#25945;?#23558;为其开通在线支付功能,通过程序将接口集成到网站中。

            为什么要使用第三方支付?因为第三方支付?#25945;?#24050;经与各大银行进行签约,网站主只需要在此?#25945;?#30003;请一个账号即可支持几乎所有的种类的银行卡信用卡的交易。

            2.第三方支付原理

            以上简要说明了支付过程,?#27604;?#20854;中省略了一些步骤(比如购物车,订单等),我们重点来看支付流程。

            2.1用户向商城网站发起确认订单的请求

            2.2商城网站接收到请求保存订单数据到数据库或其他存储介质

            2.3返回订单确认页面,页面上应该显示订单金额等信息

            2.4用户确认支付,发起支付请求。注:支付请求是发送到支付网关(比如支付宝、网银在线)而不是发送到商城网站。

            2.5显示支付页面

            2.6用户填写?#29616;?#20449;息(账号密码等)提交

            2.7这里有两个步骤一个是扣款成功后页面跳转到支付结果页面(展示给用户),另一个是支付通知,这两步没有先后顺序可能同时执行,商城网站接收到支付通知后根据验证规则验证信息的?#34892;?#24615;,并作出相应的更改操作(例:?#34892;?#21017;更改订单为已付款状态,无效则记录非法请求信息)。

            以支付宝为例:如果实现在网站中集成支付宝接口,首先要有一个支付宝账号,接下来向支付宝申请在线支付业务,签署协议。协议生效后有支付宝一方会给网站方一个合作伙伴ID,和安全校验码,有了这两样东西就可以按照支付宝接口文档开发支付宝接口了,在上图的几个步骤中只有4和7两个步骤在商城与支付网关之间?#34892;?#24687;交互。在步骤4中指将数据发送到支付网关(支付宝),在步骤7中是的通知验证部分,验证网关请求网站?#36710;?#22336;,网站按验证规则对信息进行验证记录并作出响应,我们几乎在开发任何支付接口?#20445;?#37325;点是这两部分的开发,明白支付接口原理,开发支付接口就不难了。

            3.支付宝接口开发

            3.1接口简介与测试

            支付宝目前提供了,担保交易、标准即时到?#30465;?#21452;功能等几种接口,只是在功能上有些差异,网站集成方式是一样的。以标准即时到帐接口为例,在与支付宝签署协议后,还需要几个步骤才能完成集成。

            选择“我要自助集成”接下来会看到的链接,点击?#30053;?#25216;术文档。

            在?#30053;?#21518;的文件中有标准支付宝交易服务接口、商家工具、接口集成?#25913;系?#25509;文档,另外还有几种语言写的demo.我们可以根据接口文档按规则全新开发,也可以再demo基础上修改集成到网站,需要注意的是开发支付接口需要在公网(服务器必须可以通过外网访问)才可以完成整个调试过程,如果服务器在外网访?#20160;?#21040;,则无法接收到支付通知。

            看一下demo中每个文件的作用:

            这里已经?#30053;?#22909;了(见?#35797;?#30446;录pay文件?#26657;?#20026;了便于调试增?#26377;?#25913;了若干文件,并增加了一张数据表保存订单信息,我们修改一下配置文件完成一个测试过程。

            alipay_config.php是基础信息配置文件,我们需要将在支付宝后台获取的PID与Key写入到配置文件中。

            配置项:

            其中方框内的数据是我们需要重点修改的。支付通知地址与返回地址的区别,前面已经提到,在步骤7中有两项:支付结果页面与支付通知信息,支付结果页面是用户支付完成后会自动跳转到这个地址这里是返回地址($return_url)。

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

            数据库中增加了一条“订单信息”.

            如果点击“确认支付”按钮或者确认支付 链接将会跳转到支付宝页面,点击按钮时通过表单POST方式将信息提交到支付网关,由于支付请求数据无需让用户看到,这里都写在隐藏域中了。确认支付 链接是通过URL传参,因为支付宝接口允许以POST或者GET方?#25945;?#20132;,所以两种方式都可以。把参数提交给支付网关后,页面跳转到到支付页面。我们看到如下图所示:

            我们看到支付宝为我们提供了两种支付方式,一种是通过支付宝账户支付,另一种是通过银行卡支付。例如选择使用银行卡支付,填写邮箱或手机号跳转到如下页面:

            我们开单支付宝几乎支持所有的银行卡支付,同时?#34892;?#29992;卡和网点方式付款,选择对应的银行下一步按提示付款即可。付款完成后页面会返回到我们在配置文件?#20449;?#32622;的$return_url地址,同时“订单状态”?#19981;?#21457;生改变。

            注:测试时如果没有在外网测试(即支付通知地址无法在外网访问)则支付通知无法被请求到,无法自动完成订单状态的修改。

            3.2支付宝接口规范与代码分析

            支付宝接口规范可参考/pay/doc/标准支付宝交易服务接口(专用于防钓鱼网站)。Pdf,里面已经有了比较详细的说明。

            3.2.1如何创建支付请求

            在前面的测试中我们点击了“确认支付”将信息将信息提交到了支付宝的支付网关,我们可以思考一下应该发送哪些参数给支付网关。关于请求参数列表可以参考标准支付宝交易服务接口(专用于防钓鱼网站)。Pdf中的3.2.2.需要注意的是并不是我?#21069;?#36825;些参数原封不动的提交到支付宝就可以了,为了保证数据安全支付宝目前使用的是MD5签名防止数据篡改机制。

            在提交数据前需要将需要提交的数据以一定规则(见接口文档)组装成?#22336;?#20018;,?#30001;?#23433;全校验码(Key)组成一个新?#22336;?#20018;,通过MD5生成一个32字节的签名,我们提交支付请求时还需要把这个签名也提交过去。看一下表单源码

            支付宝接收到参数后会进行验证请求参数的?#25103;?#24615;,验证无误后将显示支付页面,否则提示错误。

            3.2.2 如何验证支付通知

            在用户支付完成后,支付宝会请求网站支付通知地址(这个地址应在创建支付请求时作为参数传递过去)。返回参数列表参见标准支付宝交易服务接口(专用于防钓鱼网站)。Pdf3.3.1.支付宝的返回数据中同样有一个签名串(采取和支付请求同样的签名方式),在支付通知文件中首先要对数据进行签名验证。除?#25628;?#35777;签名,还需要将参数中的notify_id提交到支付宝的验证网关支付宝系统这个通知的真实性,通知验证。支付宝系统判断通知是否是?#32422;?#21457;送,如果是以?#22336;?#20018;格式返回 true,否则返回false,我们通过验证服务器返回的数据验证请求的真实性,如果都验证通过则可以进行更改订单数据、给用户发送邮件通知等操作。关于验证签名可以看一下通知文件中的源码。带demo中将参数中的notify_id提交到支付宝是通过POST方?#25945;?#20132;并取得返回数据,代码片段:

            这里重点就是fsockopen函数,在发送电子邮件时我们已经接触过,通过此函数打开套接字连接,类似于以前学过的fopen函数返回的是一个文件句柄,之后可以使用文件函数( fgets()、fgetss()、fputs()、fclose() feof()等)对其进行操作,代码中使用了fputs()(同fwrite())函数,写入数据来模拟表单以POST方?#25945;?#20132;数据,最后通过fgets()函数获取返回的数据保存到数组中,最后进行验证,具体参照源码。

          上一篇?#22909;?#26377;了
          下一篇:个人和企业申请农业银行网上银行的条件
          pk10不管怎么玩都是输
          <sub id="pvpnh"><meter id="pvpnh"></meter></sub>

                <th id="pvpnh"></th>

                <sub id="pvpnh"></sub>

                  <sub id="pvpnh"><meter id="pvpnh"></meter></sub>

                        <th id="pvpnh"></th>

                        <sub id="pvpnh"></sub>

                        1. 神秘的百慕达电子游艺 警察与土匪免费试玩 特工简.布隆德归来APP 球球大作战棒棒糖怎么刷 曼联埃弗顿关系 山东群英会开奖直播 个人幸运数字查询 高速公路之王试玩 金鱼的故乡 宝石之轮套利教程 重庆青少年网球冠军赛 圣诞大镖客返水 招财进宝树 纽伦堡20天气 王者荣耀剑仙 浙江快乐彩开奖号码走势