php如何接收支付宝应用网关发送的post请求

news2024/11/25 9:34:34

php如何接收支付宝应用网关发送的POST请求方式,参数又是GET请求的数据格式

    • 配置支付宝应用网关
    • 如何接收支付宝异步通知(应用网关接收请求)
    • 将&连接的参数分割成数组实例:
    • 难点

配置支付宝应用网关

首先要在服务器上写一个接口,然后将接口的访问地址设置在支付宝应用网关
在支付宝的开放平台中设置如图:
在这里插入图片描述

如何接收支付宝异步通知(应用网关接收请求)

上面配置好接口后,我就来接收post请求的数据,又不知道请求参数是啥?然后看文档、问客服、百度。然后使用file_get_contents(“php://input”);能接收到参数。并把接收到的参数保存在一个文件里面看看他的数据格式:
在这里插入图片描述
当我看到他的第一眼还以为是一个get请求的参数。这种post请求参数接收的时候没有参数名,并且还使用&拼接多个参数。

将&连接的参数分割成数组实例:

这个实例里我将我的业务代码删除了的,要是想看拆分后的数据可以在sites.txt中将参数复制用postman看返回参数的具体值。
在这里插入图片描述

public function index(){
		//接收参数
        $postStr = file_get_contents("php://input");

        $aop = new \ AopClient ();

        //支付宝公钥赋值,配置在config文件中
        $aop->alipayrsaPublicKey=config('alipayrsaPublicKey');
        
        //签名方式
        $sign_type="RSA2";
        
        // 接收到的参数转urldecode
        $_POST=urldecode($postStr);
         
        // 测试将支付宝给的参数保存在public/sites.txt下
        // $file="sites.txt";
        // $url=str_replace("\\","/",  ROOT_PATH);
        
        // $url=$url."public/" .trim($file);

        // file_put_contents($url,$_POST);
    
        //把字符串通过&符号拆分成数组
        $data = explode('&', $_POST);

        $params = array();
        //遍历数组
        foreach ($data as $param) {
            $item = explode('=', $param,"2");
            
            // dump($item);
            $params[$item[0]] = $item[1];
        }
        
       	//校验支付宝传入的参数是否被修改过
        $flag = $aop->rsaCheckV1($postStr, null, $sign_type);
        if (!$flag){
            return;
        }
        dump($params);
      

难点

当时写这个接口难就难在是第三方来调用你的接口,然后接收参数得跟着别人的要求来,最关键的是我还不能打印接收到的参数。还遇到我的phpstorm不能DEBUG。这就很难受,所以我写了此篇博客;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/143968.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java中常用API总结(2)—— System类(含实例解读)

System类一、前言二、概述1.API帮助文档2.概述3.使用方式三、常用方法1.获取当前时间所对应的毫秒值1️⃣格式2️⃣实例3️⃣具体应用2.终止当前正在运行的Java虚拟机1️⃣格式2️⃣实例3.进行数值元素copy1️⃣格式2️⃣实例3️⃣注意事项四、结语一、前言 本文将讲述System类…

springsecurity认证流程

Authentication AuthenticationManager : 认证管理器 实现类: ProviderManager AuthenticationProvider : 实现类: DaoAuthenticationProviderRememberMeAuthenticationProvider 方法: authenticate()supports() : 判断当前AuthenticationProvider是…

dubbo学习笔记2(小d课堂)

dubbo核心架构及流程 企业中dubbo常见的多种开发方式 详解dubbo服务注册中心 Dubbo整合zookeeper 我们主要是改这部分: 然后我们启动本地的zookeeper,再去启动它: 会报错,这是说我们缺少响应的jar包: 就可以了。 我们提…

〖Python 数据库开发实战 - Python与Redis交互篇⑨〗- 利用 redis-py 实现模拟商品秒杀活动案例

文章目录 ❤️‍🔥 为什么要引入线程池技术 ❤️‍🔥 通过案例加深线程池技术原理的理解 ❤️‍🔥 实现多线程模拟商品秒杀案例 - 思路 ❤️‍🔥 实现多线程模拟商品秒杀案例 - 代码 今天的这一章节我们将来实现 “模拟商品秒杀活…

ES6 课程概述②

文章目录更好的 Unicode 支持更多的字符串 API3-3. [扩展]正则中的粘连标记模板字符串3-5. [扩展]模板字符串标记4-1. 参数默认值使用[扩展]对 arguments 的影响[扩展]留意暂时性死区4-2. 剩余参数4-3. 展开运算符对数组展开 ES6对对象展开 ES7函数柯里化4-5. 明确函数的双重用…

【菜菜的CV进阶之路 - 深度学习环境搭建】配置Ubuntu深度学习环境

六、配置Ubuntu深度学习环境 1、安装Google chrome 使用wget下载最新的Google Chrome .deb软件包: wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb更多地址可参考:在Deepin v20系统中下载和安装谷歌Chrome最新版de…

Vue学习笔记(一)

Vue学习笔记1. 什么是Vue2. 安装Vue2.1 使用独立版本2.2 使用CDN方式2.3 使用NPM方式3.Vue语法3.1 el挂载点3.2 data数据对象3.3 V-text 设置标签内的内容3.4 V-html3.5 V-on3.6 计数器3.7 v-show3.8 V-if3.9 v-bind3.10 v-for3.11 V-model4.class与style绑定5.表单输入绑定5.1…

【vue2】基础概念 01 (vue框架介绍、el、data、插值表达式)

🥳博 主:初映CY的前说(前端领域) 🌞个人信条:想要变成得到,中间还有做到! 🤘本文核心:vue框架介绍、结构元素详解(el、data、插值表达式) 目录&#xf…

《我是个怪圈》读书笔记

文章目录书籍信息论灵魂及其尺寸摇曳在恐惧与梦想之间的那只电灯泡(取自拉塞尔埃德森的诗)模式的因果潜力关于自我与符号副现象模式与可证性哥德尔的典型怪圈奇迹般步调划一的同步在公式与大整数之间翻转很大的整数与公式步调一致的移动质雅数怪圈论向下…

vue实现文件预览功能

目录 一、使用插件预览 1.前端实现在线预览文档 通过联机查看 Office 文档 打开新窗口预览文件 当前页面预览文件 注意事项 在创建好url之后,可能会出现无法打开文档的情况,这时候就需要对照官网的解释来查找问题了,官方文档的解释如下…

k线图入门精讲

K线图是贵金属技术分析的基础手段,刚入门的投资者应认真学习和理解k线的基础知识,因为有了认识才能分析。然而,多数上班族精力有限,无法耗费大量精力学习,今天小编就为准备了K线入门的“精读班”。 一、K线的作用 K线图…

【node.js】fs\path\http模块的使用 02

🥳博 主:初映CY的前说(前端领域) 🌞个人信条:想要变成得到,中间还有做到! 🤘本文核心:Node.js的fs\path\http模块的使用,模块化开发概念 目录 一、node.js概念与作…

Java程序员你自己的菜鸟气质霸气侧漏了吗?

对于刚入行的程序员来说,面对各种各样的陌生配置环境和代码库,难免会手忙脚乱,尽显菜鸟本色。 但从啥都需要教的菜鸟到啥都懂的大神程序员,并不简单,这需要牺牲一根又一根宝贵的头发,直到它们肉眼可数。 …

线上服务器CPU占用过高?7步带你搞定

一. 前言在Java开发岗位的面试中,时不时会出现一些运维类的题目,其实这也反映了后端面试的一种趋势。现在企业对后端开发的要求越来越全面,不仅要求我们会写代码,还要我们能够进行部署和运维。今天壹哥就结合一个真实的项目案例&a…

【Linux】Linux权限

权限的概念 限制人的,访问的对象天然可能没有这种“属性”权限:一件事情是否允许被谁“做”。 权限 人 事物属性 Linux上的用户分类 root,超级管理员,几乎可以干任何事情(1个)普通用户(多个&a…

雷电飞机大战游戏|基于Java开发实现雷电飞机大战游戏

作者主页:编程指南针 作者简介:Java领域优质创作者、CSDN博客专家 、掘金特邀作者、多年架构师设计经验、腾讯课堂常驻讲师 主要内容:Java项目、毕业设计、简历模板、学习资料、面试题库、技术互助 收藏点赞不迷路 关注作者有好处 文末获取源…

【前端】Vue项目:旅游App-(8)city:标签页Tabs动态数据:网络请求axios与request、数据管理store与pinia、各种封装

文章目录目标过程与代码安装相关库封装网络请求相关代码网络请求数据网络请求数据操作封装pinia管理数据并封装tab栏改为动态数据效果本篇总结总代码修改或新建的文件serviceindexmodules的cityrequest的configrequest的indexstoremodules的citymodules的loadingcity.vue参考目…

录屏没有声音怎么办?录屏怎么录声音

相信部分朋友在录制视频时,有出现录制视频没有声音,导致该段视频没有声音而无法播放。录屏怎么录声音?可以使用支持录制声音的专业的电脑录屏软件。今天小编就在这给大家分享在录制视频同时,将声音也录制进去的操作步骤。一、录屏…

【Linux】主函数的三个形参

主函数的形参有三个:argc参数个数,argv参数内容,envp环境变量。其中argc是整型,argv和envp是指针数组(存的字符串) argv源于我们自己在使用执行命令时传的内容,envp源于程序的父进程&#xff08…

力扣sql入门篇(十)

力扣sql入门篇(十) 1 查找重复的电子邮箱 1.1 题目内容 1.1.1 基本题目信息 1.1.2 示例输入输出 1.2 示例sql语句 SELECT Email FROM Person GROUP BY Email HAVING count(id)>21.3 运行截图 2 合作过至少三次的演员和导演 2.1 题目内容 2.1.1 基本题目信息 2.1.2 示例…