重点来在线支付接口的原理和流程:

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

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

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

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

5、显示支付页面

6、用户填写认证信息(账号密码等)提交

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

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

支付接口开发与配置:

1.首先到支付宝申请账户

2.登录->商家服务->网站集成支付宝->选择申请接口类型->等待合同生效

3.生效后下载开发集成文档PHP版本
这里给大家直接提供PHP版的接口文档

其实,整个接口应用最主要的是要理解三个文件:notify_url.php、alipay.config.php、return_url.php。特别是在alipay.config.php这个配置文件中,要填写‘合作身份者id’、‘安全检验码’、‘签约支付宝账号或卖家支付宝帐户’,而这些都是在支付宝接口申请时支付宝网站提供的。在notify_url.phpreturn_url.php文件中,开发者可以编写代码,当支付成功会失败的时候,对数据库进行操作。

接口首页效果内容默认都为空,读者可能会有疑问:淘宝上的应用不都会有商品信息,表单不都是默认填好的吗?事实上,一旦开发者完善后,表单内容都会从数据库中获取,过程是:当消费者生成订单,下单后,表单会根据订单号从数据库获取订单信息,包括付款金额、备注等等。当然,这些程序都需要由代码控制实现。因此要让自己的在线支付接口开发能够顺利的进行,并让在线支付能够简单的操作,就需要接口设计者好好的熟悉接口代码。




与支付公司签约后,网站将获得相关开商户号、密钥、支付网关以及开发文档。技术人员通过阅读文档,获取需要使用的相关数据参数,如商品名称、金额等,并通过约定的加密方式及密钥进行加密处理,将以FORM表单POST或GET的方式发送给支付公司提供的支付网关URL。

支付网关收到商户提供的相关参数后将进行数据处理及加密验证,如果数据合格且密钥验证成功,将引导用户进入各家银行选择页面,用户在选择自己使用的银行后,将进入相关银行的支付网关进行支付。

用户在银行网关成功付款后,银行进行扣款,并将支付结果回传给支付公司,支付公司收到银行的结果,同样进行签名验证,并将支付结果信息传递给商户网站。

支付公司将支付结果传递给商户网站也是通过FORM表单的方式,只是该数据传递属于服务器后端处理的。商户网站向支付公司发起支付请求传递支付相关参数时,就包含一个或两个URL,用于指定接收支付结果的URL中。

商户网站接入支付结果有两种方式,一种是通过浏览器进行跳转通知,一种是服务器端异步通知。那么商户的技术人员该如何选择呢?我们对这两种通知类型进行分析。

浏览器跳转通知:这种方式主要是基于用户访问的浏览器,如果用户在银行页面支付成功后,直接关闭了页面,并未等待银行跳转到支付结果页面,那么商户网站就收不到支付结果的通知,导致支付结果难以处理。而且浏览器端数据很容易被篡改,而降低安全性。所以我们推荐技术人员开发时使用后端服务器通知做技术判断,而只将前台通知进行支付相关显示,不进行逻辑处理。

服务器异步通知:该方式是支付公司服务器后台直接向用户指定的异步通知URL发送参数,采用POST或GET的方式。商户网站接收异步参数的URL对应的程序中,要对支付公司返回的支付结果进行签名验证,成功后进行支付逻辑处理,如验证金额、订单信息是否与发起支付时一致,验证正常则对订单进行状态处理或为用户进行网站内入账等。