开发业务(8)——支付宝的支付接入

​ 支付宝支付的接入

网站的底层最基础的业务之一,就是收付款。在H5网站里面,支付宝还是非常好用。首先注册企业支付宝(要准备相关资料),
支付宝的支付框架已经升级,在之前版本用v2居多。在新版本https://opendoc.alipay.com/open-v3/053sd1 里面更加容易接入到系统里面。

  1. PC网页支付的申请与配置 (在支付宝页面扫码支付)
    点击支付,跳转到支付宝官网,然后扫一扫完成支付。相关配置说明:

    提供网站地址,网站能正常访问且页面显示完整,网站需要明确经营内容且有完整的商品信息。

    网站必须通过 ICP 备案,且备案主体需与支付宝账号主体一致。若网站备案主体与当前账号主体不同时需上传授权函。

    如以个人账号申请,需提供营业执照,且支付宝账号名称需与营业执照主体一致

  2. 创建一个网页端应用APP
    这里把全部的支付看成一个小应用。生成应用之后,需要去配置相关信息。
    配置流程:
    接口加签方式(密钥/证书) :

    1. 加签方式:选择“密钥”。
    2. 加签算法:选择 ”RSA2“。
    3. 点击“生成密钥”。
    4. 复制“应用公钥”字符串,需要在第3步中上传

    备注:此处加密需要密钥生成软件。生成密钥复制到。公钥生成的逻辑。下载公钥和私钥生成软件(支付宝官方提供的),主要根据RSA2加密生成一个公钥和私钥串。将公钥上传到支付宝,会再进行一次运算,传回公钥。

  3. 应用网关和白名单配置
    应用网关主要是指支付成功后的回调接口(由支付宝官方发起通知)
    白名单主要是指能发起支付参数请求服务器的IP设置(确保密钥被泄露也不担心权限问题)

    配置好了之后,支付宝的PC端发起整个业务逻辑流程:
    1.根据前端用户提交的订单数据,生成订单号和金额相关信息
    2.打开WEB请求网关
    3.跳转支付宝付款页面(PC和手机网站流程基本一样)
    4.付款成功之后,跳回我们设定的新页面

    4.支付宝支付功能开发相关逻辑注意点:
    1.一般都是直接使用前面开发好的插件,如果自己从0开始接,要跑通的测试和回调调试工作量挺大。
    2.开发的时候需要配置的相关参数:(标准的严格身份确定流程理解)
    appid 项目的识别标记 (支付宝对每个申请的支付项目都进行编号)
    应用公钥和私钥 (公钥的作用是给支付宝发送请求,私钥的作用是验证公钥发过来的数据是否正确)
    支付宝的公钥(支付宝服务器确定我们服务器身份的钥匙)
    也就是通讯流程,我们先向服务器发送公钥确认身份,支付宝也用我们配置的公钥给我们服务器发送消息通知,确保其他来源信息无法伪造。也就是需要配置俩个公钥和一个自己的私钥验证身份。
    3.请求数据是需要对身份和数据的合法性进行校验,再完成其他订单关联逻辑,最后发起支付宝的支付逻辑
    再回调接口完成。其中回调的时候,需要对数据进行解密,然后再校验订单逻辑
    将付款订单状态进行变更成已经付款,回调通知是有三次失败通知的。

    ​ 4.由于订单的数量数据比较关键,一般都会保留日志,所以日志记录对支付而言是非常重要的。

    5.thinkphp框架的日志方法示例(主要记住对应数据)
    \think\Log::record(“回调请求参数解析错误”, “error”);
    由于回调的数据是基本无法模拟请求的(主要是被加密了),只能依赖日志相关功能。日志在被请求之后。是保存在runtime/log里面。
    回调相关数据分析:

    [{
    "app_id":"2021033333",  //回调的相关信息,我们上面的申请appid
    "auth_app_id":"20210333333",
    "buyer_id":"2088102", //买家的用户id
    "buyer_logon_id":"57***@qq.com", //登录邮箱
    "buyer_pay_amount":"0.01", //付款金额
    "charset":"utf-8",
    "fund_bill_list":"[{\"amount\":\"0.01\",\"fundChannel\":\"ALIPAYACCOUNT\"}]", //账单信息
    "gmt_create":"2024-08-15 22:02:31",  //订单创建时间
    "gmt_payment":"2024-08-15 22:02:32",
    "invoice_amount":"0.01",  //付款金额
    "notify_id":"2024081501222220232047121437948757", //付款通知
    "notify_time":"2024-08-15 22:02:33",
    "notify_type":"trade_status_sync",
    "out_trade_no":"20240815220210102950",  //这个是我们平台自己生的订单号
    "point_amount":"0.00",   //积分豆蔻
    "receipt_amount":"0.01",  //金额
    "seller_email":"jint4@qq.com", //邮箱
    "seller_id":"2021384532",  //卖家id
    "sign":"Ee8qSb0PpzKTcXGz0sW7A8oqrcaVKieOYp2xtb9bqDiydRLYR0/bq/WjSbkB5GEWo44De3/J6J+eD4U4A+dzfxpl6Qivv9GCOywbBm4gKbQlfsIgHD256q6xFQAWpvJ2Csy7xUu3e97ul3vkBx1oO024nYljP0gFCyQD0ht3/8iBaydA2NgttVxAzZRz6ieuzzF+BsqU8puhGTtG9d1PZzszrmFByJScg3oiWHk8XIjMd/Ce2UHVurKCowJGEE9cvylb8rG9Wb/R0wL/UYuBTUnE/XMbRnvGb38nbC10F4pSNFFMGp6BrlyN6pACr9rfXzm1xPQ4sU33OuCydcWagw==",  //签名 通过密钥签名算法进行的签名,此处我们直接使用官方Skd即可
    "sign_type":"RSA2",
    "subject":"淘",
    "total_amount":"0.01",
    "trade_no":"202408152200144712142",
    "trade_status":"TRADE_SUCCESS", //交易成功说明
    "version":"1.0"},] 
    

可以看到回调的参数非常多,签名与我们本地的appid 参数id 即可完成alipay的数据解码对接。

  • 14
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大梁来了

千山万水总是情,打赏一块行不行

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值