thinkphp6调用微信商户支付-合单支付工具代码开发

合单支付基本在加盟店或是分公司或是营销系统里面常见。他的出现,打破了传统提现支付或是转账支付。他的业务原理其实很简单,就是需要优先申请非普通商户,其次是每个入驻的商户都需要申请普通商户。在这之前一定要申请好对应的场景服务,比如公众号支付就需要优先申请公众号,小程序支付就需要优先申请小程序,APP支付就需要提供APP应用ID(在开放平台申请),PC网站支付就需要优先提供网站授权函,如果是企业微信支付,就需要提供企业微信。

一、支付产品流程图

二、微信支付工具集代码开发

<?php
/*** 微信合单支付工具* User: 龙哥·三年风水* Date: 2024/9/27* Time: 14:13*/
namespace app\service;
use app\BaseError;
class WechatCooperatePayment
{protected $combineMchid = null;// 合单商户号protected $merchantSerialNumber = null;// 商户API证书序列号protected $combineAppid = null;// 合单商户Appidprotected $merchantPrivateKey = null;// 商户私钥/*** 初始化参数* WechatPayment constructor.*/public function __construct(){$this->combineMchid = config('pay.wechat.combine_appid');$this->combineAppid = config('pay.wechat.app_id');$this->merchantSerialNumber = config('pay.wechat.merchant_serial_number');$file = file_get_contents('./wechatpay/apiclient_key.pem');$this->merchantPrivateKey = openssl_get_privatekey($file);// 读取商户秘钥}/*** 合单支付* User: 龙哥·三年风水* Date: 2024/9/27* Time: 14:21* @ param $url* @ param $data* @ return mixed*/public function combinePay($url,$data){$data['combine_mchid'] = $this->combineMchid;$data['combine_appid'] = $this->combineAppid;$authorization = $this->getSign($url,$data);$res = http_post($url, $authorization, $data);$arr = json_decode($res, true);if(isset($arr['code'])) {$error['code'] = $arr['code'];$error['message'] = $arr['message'];$error['timestamp'] = time();$error['ip'] = get_client_ip();file_put_contents('wechat_payment.txt', json_encode($error) . PHP_EOL, FILE_APPEND);throw new BaseError($arr['message'], 50000, 200);}return $arr;}/*** 获取签名* User: 龙哥·三年风水* Date: 2024/9/27* Time: 9:23* @ param $url 地址* @ param $data 数据* @ return string 返回*/private function getSign($url,$data){$timestamp = time();$nonce = alnum(12).date('YmdHis', $timestamp) . rand(1000, 9999);$url_parts = parse_url($url);$canonical_url = ($url_parts['path'] . (!empty($url_parts['query']) ? "?${url_parts['query']}" : ""));$data = json_encode($data);$message = 'POST' . "\n" .$canonical_url . "\n" .$timestamp . "\n" .$nonce . "\n" .$data . "\n";openssl_sign($message, $signature, $this->merchantPrivateKey, "sha256WithRSAEncryption");$sign = base64_encode($signature);$schema = 'WECHATPAY2-SHA256-RSA2048';$token = sprintf('mchid="%s",nonce_str="%s",timestamp="%d",serial_no="%s",signature="%s"',  $this->combineMchid, $nonce, $timestamp, $this->merchantSerialNumber, $sign);return "Authorization: " . $schema . " " . $token;}/*** 销毁参数*/public function __destruct(){$this->combineMchid = null;$this->combineAppid = null;$this->merchantSerialNumber = null;$this->merchantPrivateKey = null;}
}

三、测试JSAPI支付订单调用

public function index(){//定义参数$data['combine_out_trade_no'] = create_order();$data['sub_orders'] =   [['mchid'     =>  '1230000109','attach'    =>  '深圳分店','amount'    =>  ['total_amount'  =>  10,'currency'      =>  'CNY'],'out_trade_no'  =>  create_order(),'description'   =>  '运费钱']];$data['combine_payer_info'] =   ['combine_payer_info'    =>  'oUpF8uMuAJO_M2pxb1Q9zNjWeS6o'];$data['notify_url'] =   'http://www.baidu.com';$wechatCooperatePayment = new WechatCooperatePayment();$res = $wechatCooperatePayment->combinePay('https://api.mch.weixin.qq.com/v3/combine-transactions/jsapi',$data);var_dump($res);
}

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

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

相关文章

大学学校用电安全远程监测预警系统

1.概述&#xff1a; 该系统是基于移动互联网、云计算技术&#xff0c;通过物联网传感终端&#xff0c;将办公建筑、学校、医院、工厂、体育场馆、宾馆、福利院等人员密集场所的电气安全数据&#xff0c;实时传输至安全用申管理服务器&#xff0c;为用户提供不间断的数据跟踪&a…

2024年项目经理不能错过的开源项目管理系统大盘点:全面指南

在2024年&#xff0c;随着项目管理领域的不断发展&#xff0c;开源项目管理系统成为了项目经理们提升工作效率的利器。本文将全面盘点几款备受推荐的开源项目管理系统&#xff0c;帮助项目经理们找到最佳选择&#xff0c;不容错过。 在项目管理日益复杂的今天&#xff0c;开源项…

鼎阳加油-IOC关键技术问题的解决记

鼎阳SDS6204示波器EPICS IOC的搭建-CSDN博客 这款示波器在labview下工作的很好&#xff0c;以前搭建逐束团3D系统时连续几个月不间断的工作连接从没断过线&#xff0c;并做过速率测试&#xff0c;单通道时10Hz的波形更新速率都可以达到&#xff1a; 鼎阳SDS6204示波器波形读取…

温州大麓青年音乐节即将开唱,37组音乐人国庆齐聚共谱华章

金秋十月&#xff0c;当丰收的季节与音乐的旋律相遇&#xff0c;温州将迎来一场前所未有的文化盛事。2024年10月1日至4日&#xff0c;温州大麓青年音乐节将在瓯海盛大举行。不仅是一场音乐的狂欢&#xff0c;更是一次多元文化的碰撞与融合。本届音乐节邀请了37组以上的知名音乐…

中级职称评审到底需要准备什么材料?

职称评审需要的材料非常非常多&#xff0c;其中涉及到各类表格&#xff0c;这些小资料&#xff0c;看起来简单&#xff0c;实则做起来复杂&#xff0c;不过这种资料只能当年通知出来之后进行整理&#xff0c;今天甘建二跟大家说一下职称评审中需要提前准备的一些重要材料&#…

酒店智能门锁SDK接口通用转换函数对接酒店收银-SAAS本地化-未来之窗行业应用跨平台架构

一、通用转换代码 public class CyberWin_LocakAPP{// public static byte[] bufCard new byte[128 1];public static string 未来之窗_美萍_getsign(byte[] bufCard){int i;string 酒店标识, s, s2;// 先读卡string 未来之窗 Encoding.ASCII.GetString(bufCard);// edt_Ca…

使用dayjs获取今天日期,星期几

<div>{{ curDate }} {{ getWeek() }}</div>import dayjs from dayjs;data(){return{curDate: dayjs(new Date()).format(YYYY年MM月DD日)} }, mounted() {this.getWeek(); }, methods: {// 获取今天星期几getWeek() {let datas dayjs().day();let week [日, 一, …

Linux 搭建与使用yolov5训练和检验自建模型的步骤

Linux 搭建与使用yolov5训练和检验自建模型的步骤 硬件设备 环境搭建(无cuda) 下载anaconda wget https://repo.anaconda.com/archive/Anaconda3-2024.06-1-Linux-x86_64.sh bash Anaconda3-2024.06-1-Linux-x86_64.sh # 看完许可证后, yes, 后面选择安装路径, 可以按默认路…

打造高效合同管理平台,提升企业运营效率

在现代企业的日常运营中&#xff0c;合同管理扮演着至关重要的角色。无论是劳动协议、采购订单还是销售合同&#xff0c;各类合同都承载着企业的重要信息和业务节点。然而&#xff0c;面对日益复杂的商业环境和海量合同数据&#xff0c;如何有效管理和利用这些合同成为众多企业…

一些写论文必须要知道的神仙级网站!芝士AI(paperzz)

说实话&#xff0c;写论文真的是挺头疼&#xff0c;尤其到了毕业季的时候&#xff0c;没有过任何写作毕业论文的经验的毕业生而言更是如此&#xff0c;相信大家都有过这种状态&#xff0c;不知从何下笔&#xff0c;还需要面对论文进度的压力&#xff0c;并且时常需要寻找各种资…

基于Python大数据可视化的短视频推荐系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码 精品专栏&#xff1a;Java精选实战项目…

刘诗诗现身上海参加可隆自然而然露营节,户外风活力清新生图绝美!

9月26日&#xff0c;刘诗诗现身上海可隆自然而然露营节&#xff0c;活动现场&#xff0c;刘诗诗身着可隆OBLI-K露营冲锋衣外套&#xff0c;经典石库门配色既高级又具有质感&#xff0c;内里搭配简单白T与浅灰色短裙&#xff0c;户外运动风完美拿捏&#xff0c;所穿的鞋子是可隆…

vue单点登录异步执行请求https://xxx.com获取并处理数据

一、请求一个加密地址获取access_token再拼接字符串再次请求 接口返回数据 异步执行请求该地址获取数据并处理 二、请求代码第二步使用 access_token 获取 auth_key // 第二步&#xff1a;使用 access_token 获取 auth_keyconst access_token tokenData.access_token;const …

通配符与Powershell

通配符与正则表达式 通配符 通配符是一种特殊的语句&#xff0c;主要有*、?和[]&#xff0c;用来模糊搜索文件。 通配符表达意思举例说明*星号、匹配任何字符*.cpp匹配.cpp文件?问号、匹配任意一个字符*.?d匹配具有特定格式的文件[]中括号、匹配括号中的一个字符.[a-z]d代…

原生APP开发成本计算

原生APP开发的成本是一个复杂的问题&#xff0c;受到众多因素的影响&#xff0c;很难给出一个精确的数字。但我们可以通过了解影响成本的因素&#xff0c;以及常见的估算方法&#xff0c;来对开发成本有一个大致的了解。 影响原生APP开发成本的因素 功能复杂度&#xff1a; 功…

AI视频技术:引领影视剧拍摄的未来

大家好&#xff0c;我是Shelly&#xff0c;一个专注于输出AI工具和科技前沿内容的AI应用教练&#xff0c;体验过300款以上的AI应用工具。关注科技及大模型领域对社会的影响10年。关注我一起驾驭AI工具&#xff0c;拥抱AI时代的到来。 当科技遇见艺术&#xff0c;一场视听盛宴正…

如何正确连接和使用滑动变阻器?

滑动变阻器是可以改变电阻值的电子元件&#xff0c;广泛应用于各种电子设备和电路中。正确连接和使用滑动变阻器对于保证电路的正常工作和延长设备的使用寿命至关重要。以下是关于如何正确连接和使用滑动变阻器的一些建议&#xff1a; 了解滑动变阻器的基本原理和结构&#xf…

Linux上的C/C++编程

Linux上的C/C编程 yum软件包管理器Linux编辑器-vimvim命令模式指令集vim末行模式指令集 gcc/g的使用Linux自动化编译工具-make/MakefileLinux调试器-gdb调试命令 多人合作工具git yum软件包管理器 yum 是Linux上常用的包管理器&#xff0c;类似于Windows上的“应用商店”。 语…

深度伪造语音检测(Deepfake Speech Detection, DSD)全面概述

近期&#xff0c;深度学习技术和神经网络在生成型人工智能领域已取得重大突破。如今&#xff0c;关键的通信媒介&#xff0c;如音频、图像、视频和文本&#xff0c;均能实现自动生成&#xff0c;并广泛应用于诸多领域&#xff0c;包括聊天机器人系统&#xff08;如ChatGPT&…

漏洞挖掘 | 发现隐藏子域的虚拟主机

高效虚拟主机发现的工具和技术 在进行外部渗透测试或漏洞赏金狩猎时&#xff0c;我们从各个角度探索目标系统&#xff0c;收集尽可能多的信息来识别潜在的攻击向量。这涉及识别所有可用的资产、域和子域。 在这个过程中&#xff0c;我们关注的事情之一就是枚举虚拟主机。通过…