PHP微信V3支付完整版:实现与微信退款回调 总结

news2024/12/24 2:13:06

一、在微信商户平台注册账号并完成相关设置,获取到商户号和API密钥。同时,下载并安装官方提供的PHP SDK。

二、发起支付
使用SDK发起支付请求相对简单。首先,创建一个UnifiedOrder对象,然后设置订单的相关信息,如商品描述、订单金额、通知地址等。最后,调用UnifiedOrder的UnifiedOrder方法发起支付。

$order = new UnifiedOrder();
$order->setBody('商品描述')
    ->setOutTradeNo('99999999999')
    ->setTotalFee('100')
    ->setNotifyUrl('http://www.aaaa.com/notify');
$result = $order->unifiedOrder();

三、处理回调
支付成功后,微信会向你的通知地址发送回调请求。你需要根据官方文档的指引,对回调数据进行签名验证,确保数据的真实性。

$notify = new Notify();
if ($notify->checkSign()) {
    // 支付成功处理
}

四、退款请求
当需要退款时,可以通过Refund类来发起退款请求。设置好必要的参数,如商户订单号、退款金额等,然后调用refund方法。

$refund = new Refund();
$refund->setOutTradeNo('123456789')
    ->setTotalFee('100')
    ->setRefundFee('100')
    ->refund();

五、退款回调
与支付回调类似,退款成功后,微信也会发送退款回调通知。你需要验证签名,并根据业务需求处理回调信息。

$refundNotify = new RefundNotify();
if ($refundNotify->checkSign()) {
    // 退款成功处理
}

支付对接 二次开发
在这里插入图片描述

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

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

相关文章

【HeadFirst 设计模式】装饰者模式的C++实现

一、案例背景 Starbuzz是以扩张速度最快而闻名的咖啡连锁店。如果你在街角看到它的店,在对面街上肯定还会看到另一家。因为扩张速度实在太快了,他们准备更新订单系统,以合乎他们的饮料供应要求。他们原先的类设计是这样的…… 购买咖啡时&am…

HTTP/1.1

目录 一、比较HTTP/1.0的优点 二、请求报文 1.请求报文 (1)格式 2.get请求 (1)请求行 (2)请求头 (3)请求体 3.post请求 (1)请求行 (2&…

LLM - 微调(Fine-Tuning) Llama3 以及合并微调模型 教程

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/141218047 在微调 Llama3 大模型时,需要注意一些事项: 合适的预训练模型:不同的预训练模型具有不同的特点和适…

Selenium WebDriver 的 Microsoft Edge 驱动程序【附代码】

1、从 Microsoft Edge 驱动程序的官方网站下载与浏览器版本相匹配的驱动程序。 https://msedgewebdriverstorage.z22.web.core.windows.net/https://msedgewebdriverstorage.z22.web.core.windows.net/ 2、指向驱动程序(msedgedriver.exe)的路径 serv…

Datawhale X魔搭AI夏令营 AIGC方向Task01学习笔记

目录 一、开通PAL-DSW适用 二、报名可图Kolors-LoRA风格故事挑战赛 三、创建PAL实例 四、跑baseline 五、结果上传魔塔 六、关闭PAL 小白,刚跑通Baseline,初步了解了竞赛。 Datawhale官方的速通教程链接:Task 1 从零入门AI生图原理&am…

利用Matlab实现【图论】中的图

目录 前言 一、图论是什么? 1.基本概念 2.表达形式 二、使用matlab作图 1.作无向图 2.作有向图 总结 前言 本文将讲解如何使用matlab中的函数实现最短路径算法,所提供代码仅供参考,严禁用于数模比赛中使用! 一、图论是什么&#…

Linux:进程管理,任务管理,监控系统

1,任务管理 从前台丢到后台:【ctrl】 z,如果正在使用vim,突然想干其他事情,但又不想关闭vim,只需要暂时将vim丢到后台等待即可(暂停)。 查看后台任务状态:jobs&#xff0…

许多人在网络上“裸奔”,你信吗?

现在网络的热议话题之一,是近年来不仅网络诈骗、电信诈骗比比皆是,而更加让人恐怖的是仅只一个QQ号码就可以查出你所有的个人信息。 ​在时下,我国个人隐私泄漏的现象比比皆是,而且不只是仅几大社交平台才存在着严重的漏洞。早前…

WPF 资源、引用命名空间格式、FrameworkElement、Binding、数据绑定

资源 对象级别独立文件 静态资源使用(StaticResource)指的是在程序载入内存时对资源的一次性使用,之后就不再去访问这个资源了。 动态资源使用(DynamicResource)使用指的是在程序运行过程中仍然会去访问资源。 显然,如果你确定…

【专题】全球商用服务机器人市场研究(2023)报告合集PDF分享(附原数据表)

原文链接:https://tecdat.cn/?p37366 近年来,随着人工智能、物联网和自动化技术的不断进步,商用服务机器人行业迅速崛起,展现出广阔的发展前景。从最初的实验室研发到如今的规模化应用,商用服务机器人已逐渐成为各行…

【解析几何笔记】3.向量分解定理

3. 向量分解定理 3.1 线性组合 有 n n n个向量 α 1 , α 2 , . . . , α n \pmb{\alpha}_{1},\pmb{\alpha}_{2},...,\pmb{\alpha}_{n} α1​,α2​,...,αn​,对应有 n n n个实数 λ 1 , λ 2 , . . . , λ n \lambda_{1},\lambda_{2},...,\lambda_{n} λ1​,λ2…

Springboot项目基础开发模式+注解

文章目录 web项目开发涉及基础servlettomcatstrutsssm架构SpringBoot架构tomcathibernate Springboot注解AAspectAutowiredAllargConstructorAround BBeanBuilder CConfigurationConditionalOnMissingBeanComponentComponentScanConfigurationPropertiesCrossOrigin DDocumente…

C语言——构造类型

构造类型 数据类型分类 结构体 结构体的定义 定义:自定义数据类型的一种,关键字 struct ,结构体类型的变量可以存储多个不同数据类型的数据。 定义格式: struct 结构体名 { 数据类型1 成员名称1; 数据类型2 成员名称2; … } 注…

Golang | Leetcode Golang题解之第335题路径交叉

题目&#xff1a; 题解&#xff1a; func isSelfCrossing(distance []int) bool {n : len(distance)// 处理第 1 种情况i : 0for i < n && (i < 2 || distance[i] > distance[i-2]) {i}if i n {return false}// 处理第 j 次移动的情况if i 3 && di…

Mac系统如何下载安装Photoshop软件mac的新版指南!

Photoshop&#xff08;简称PS&#xff09;是一款广受欢迎的图像处理工具&#xff0c;在设计、摄影、广告等领域广泛应用。对于Mac用户&#xff0c;安装Photoshop可能会涉及到一些特殊的步骤。本文将为你提供在Mac上安装Photoshop的详细教程及常见问题的解决方案。 一、准备工作…

由微软开源GraphRAG加持的AI智能体,让律师变得更强大!

随着人工智能大模型时代的到来&#xff0c;LLM大语言模型、RAG增强检索、Graph知识图谱、Prompt提示词工程等技术的发展日新月异&#xff0c;也让各行各业更加期待技术带来的产业变革。 比如&#xff0c;法律行业&#xff0c;虽然通用大模型已经能够适配一些法律场景&#xff…

从自动化到智能化:物联网技术在转转智能质检中心的应用

1 背景2 物联网介绍 2.1 开篇故事2.2 物联网是什么2.3 物联网的基本组成 3 物联网技术选型和落地方案 3.1 应用层协议选型3.2 Broker 选型3.3 QoS 消息质量选型3.4 Broker 的部署方案 4 结语5 参考链接 1. 背景 在转转智能质检中心&#xff0c;随着业务的不断发展&#xff0c…

MQ死信对列

面试题&#xff1a;你们是如何保证消息不丢失的&#xff1f; 1、什么是死信 死信就是消息在特定场景下的一种表现形式&#xff0c;这些场景包括&#xff1a; 1. 消息被拒绝访问&#xff0c;即消费者返回 basicNack 的信号时 或者拒绝basicReject 2. 消费者发生异常&#xff0…

vue3在高德地图中制作气象扇形雷达图

这是效果图&#xff0c;每隔22.5就会有一个扇形区域&#xff0c;有三层区域&#xff0c;第一层是距离圆点5km&#xff0c;第二层是10km&#xff0c;第三层是50km。 第一步&#xff1a;高德地图中绘画圆 // 构造矢量圆形let circle new AMap.Circle({center: position.value, …

rv1126-rv1109-读取mipi摄像头ID

1.有那个一个需求,需要读取mipi摄像头ID 起初,我以为很简单,实际非常复杂; 2.移植原有的逻辑,就是操作I2C函数读取ID寄存器,但是一直失败; 3.然后发现是电源没有打开;然后电源又是在DTS里面配置的 4.配置电源后发现要配置时钟 5.配置时钟后发现还要配置摄像头的上…