第三方支付简要原理解释说明

发表于:2022-11-21 09:42

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:王芬老师    来源:博客园

  第三方支付,就是一些具备实力和信誉保障的第三方独立机构提供的交易支付平台。买方选购了商品后,使用第三方平台进行付款,由第三方通知卖家货款到达。
  目前市面上支持第三方支付的平台有很多,商家通过和第三方签署协议,并获得一个账号,协议生效后,支付平台为商家开通支付功能,通过程序将接口集成到网站中。
  使用第三方支付可以统一资源,商家可以很容易的实现与几乎所有种类的银行实现交易服务。
  今天来说一下第三方支付的基本原理。
  具体操作步骤
  1.用户向商城网站发起确认订单的请求。
  2.商城网站接收到保存订单数据到数据库
  3.返回订单确认页面,页面上应该显示订单金额信息。
  4.用户确认支付,发起支付请求。
  支付请求是发送至支付网关,不是商城。
  5.显示支付页面。
  6.用户填写认证信息(账号密码)提交。
  7.这里一共两步,一个是扣款成功后页面跳转到支付结果展示页面,另一个是支付通知,这两步同时进行,商城网站接收到支付通知后根据验证规则验证操作信息的有效性。
  有效则为订单已付款状态,没有则为非法请求信息。
  支付宝举例
  首先有一个支付宝账号,向支付宝申请在线支付业务,签署协议。
  协议生效后支付宝会给网站方一个合作ID加安全效验,然后就按照支付宝的的接口文档开发支付宝的接口,在上面的操作步骤中4是将数据发送到支付宝网关,7是通知验证部分,验证网关请求网站,网站验证规则对信息进行验证记录,我们开发时其他支付平台也是重要的这两步。
  支付宝支付流程
  查询PID和KEY------->下载技术文档----------->根据代码示例集成------------->接口测试----------->集成成功。
  支付宝在后台商家服务菜单:查询合作者身份(PID),查询安全验证码(Key)。
|-alipay_notify.php----支付宝通知处理文件 |-alipay_service.php---支付宝请求处理文件 |-alipay_config.php-----基础信息配置文件 |-index.php-----------快速付款模板入口文件 |-notify_url.php--服务器异步通知页面文件
  alipay_config.php文件分析:我们需要将支付宝后台获取的PID与Key写入到配置文件中。
2345678 $partner    ="---"."86754233"  合作伙伴ID $security_code='u3e'guirpffcib7''安全验证码 $_input_charset="utf-8"  字符编码格式 $sign_type='MD5'  加密方式 $transport="http" 访问模式 $notify_url  支付通知地址 $return_url  返回地址 $show_url   商品展示地址
  支付结果页面返回地址
  支付结果页面是用户支付完成后,支付宝会请求该地址:$notify_url 这里是向支付宝服务器请求,这个url是以http开头的完整格式路径,然后根据数据库脚本创建一张表,根据数据的配置更改mysql_config.php 通过对支付宝提供的demo修改。
  在我们后台会有一张订单表:id、goods_id、 goods_name、email、status这几个字段。
  建立支付请求
  我们一般发送哪些参数给支付网关,而且这些参数并不是原封不动的提交到支付宝就可以的,目前使用MD5签名防止数据篡改机制。
  支付完成
  在用户支付完成后,支付宝会请求网站支付通知地址(这个地址在创建支付请求时作为参数传递过去),返回参数列表,支付宝的返回数据中有一个签名串,在支付文件中首先要对数据进行签名验证。
  除了签名验证,还需要将参数中的notify_id 提交到支付宝的验证网关验证,通过验证服务器验证数据请求的真实性,如果成功返回true,否则返回false.这里有一个句柄函数fsockopen。
  看完这篇文章的你,大概对银行金融行业非常感兴趣,那就加入“51Testing银行测试交流群”吧!
  群友都是银行金融行业从业人员/对该行业感兴趣的测试人,大家不仅可以在群内进行行业交流,还有不定期行业资料、每月一次的银行金融行业直播掉落~
  还在等什么?联系恬恬圈/甜甜圈,或者长按下方识别二维码添加天天圈,备注“银交流播群”加入吧~
  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号