tp6+企业付款到零钱

news2024/10/7 12:23:51

一 开通条件,就是首先要在微信平台设置好。

以下微信文档里有的,我这里大概掠几项比较重要的。

付款资金

企业付款到零钱资金使用商户号余额资金。

根据商户号的账户开通情况,实际出款账户有做区别:

◆ 默认情况下,企业付款到零钱使用商户号基本户(或余额账户)余额。如商户号已开通运营账户,则企业付款到零钱使用运营账户内的资金。

◆ 基本户(或上述其他出款账户)的资金来源,可能是交易结算款项(仅基本户),或给账户充值的资金。当出款账户余额不足时,付款将因余额不足而付款失败。

付款规则

付款方式

  • 支持API接口或网页操作,付款至目标用户。

收款用户身份指定

  • 通过APPID+OPENID指定收款用户。
  • APPID需要为申请商户号时的APPID,或者与商户号有绑定关系。
  • OPENID的获取方式,可参照:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140839

付款额度

  • 不支持给非实名用户打款
  • 给同一个实名用户付款,单笔单日限额2W/2W
  • 一个商户同一日付款总额限额100W

注意:以上规则中的限额2w、100w由于计算规则与风控策略的关系,不是完全精确值,金额仅做参考,请不要依赖此金额做系统处理,应以接口实际返回和查询结果为准,请知晓。

收款用户身份校验

  • 针对付款的目标用户,提供可校验真实姓名的功能

查询付款情况

  • 已付款的记录,企业可通过企业付款查询查看相应数据,或者查询商户号资金流水。

付款频次

  • 默认每天最多可向同一个用户付款10次,可以在商户平台--API安全进行设置

其他注意事项

  • 付款金额必须小于或等于商户当前可用余额的金额;

接下来上代码,直接复制粘贴,自己改下参数

Wxpay.php

<?php

namespace app\controller\Admin;

use think\facade\Request;

class Wxpay
{
    //这里就是入口函数
    public function index($data_apply) {
        $total_amount = (100) * $data_apply['amount_money'];//单位分,所以*100
        $data=array(
            'mch_appid'=>'',//商户账号appid
            'mchid'=> '',//商户号
            'nonce_str'=>$this->createNoncestr(),//随机字符串
            'partner_trade_no'=> $data_apply['number'],//商户订单号
            'openid'=> $data_apply['openid'],//用户openid
            'check_name'=>'NO_CHECK',//NO_CHECK不校验用户姓名选项,check_name校验用户姓名
            're_user_name'=> '',//收款用户姓名,NO_CHECK可以是空值
            'amount'=>$total_amount,//金额
            'desc'=> '提现',//企业付款描述信息
            'spbill_create_ip'=> Request::ip(),//Ip地址
        );
        $secrect_key='';///这个就是个API密码。MD5 32位。
        $data=array_filter($data);
        ksort($data);
        $str='';
        foreach($data as $k=>$v) {
            $str.=$k.'='.$v.'&';
        }
        $str.='key='.$secrect_key;
        $data['sign']=md5($str);
        $xml=$this->arraytoxml($data);

        $url='https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers'; //调用接口
        $res=$this->curl($xml,$url);
        $return=$this->xmltoarray($res);

//        print_r($return);
        //返回来的结果
        // [return_code] => SUCCESS [return_msg] => Array ( ) [mch_appid] => wxd44b890e61f72c63 [mchid] => 1493475512 [nonce_str] => 616615516 [result_code] => SUCCESS [partner_trade_no] => 20186505080216815
        // [payment_no] => 1000018361251805057502564679 [payment_time] => 2018-05-15 15:29:50

        $responseObj = simplexml_load_string($res, 'SimpleXMLElement', LIBXML_NOCDATA);//xml转数组
        $res= $responseObj->return_code;  //SUCCESS  如果返回来SUCCESS,则发生成功,处理自己的逻辑,,,,,值得注意的是打款失败也会返回SUCCESS,$return是返回的整条数据包含错误信息
        if ($res == 'SUCCESS'){
            return 200;
        }else{
            return 201;
        }
    }

    //随机字符串
    private function createNoncestr() {
        $chars = "ABCDEFGHIJKIMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
        $str = "";
        //不长于32位
        for ($i = 0; $i < 30; $i++) {
            $str .= substr($chars, mt_rand(0, strlen($chars) - 1), 1);
        }
        return $str;
    }

    public function unicode() {
        $str = uniqid(mt_rand(),1);
        $str=sha1($str);
        return md5($str);
    }

    public function arraytoxml($data){
        $str='<xml>';
        foreach($data as $k=>$v) {
            $str.='<'.$k.'>'.$v.'</'.$k.'>';
        }
        $str.='</xml>';
        return $str;
    }
    public function xmltoarray($xml) {
        //禁止引用外部xml实体
        libxml_disable_entity_loader(true);
        $xmlstring = simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA);
        $val = json_decode(json_encode($xmlstring),true);
        return $val;
    }

    public function curl($param="",$url) {
        $postUrl = $url;
        $curlPost = $param;
        $ch = curl_init();                                      //初始化curl
        curl_setopt($ch, CURLOPT_URL,$postUrl);                 //抓取指定网页
        curl_setopt($ch, CURLOPT_HEADER, 0);                    //设置header
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);            //要求结果为字符串且输出到屏幕上
        curl_setopt($ch, CURLOPT_POST, 1);                      //post提交方式
        curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);           // 增加 HTTP Header(头)里的字段
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);        // 终止从服务端进行验证
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
        curl_setopt($ch,CURLOPT_SSLCERT,'****/****/****/apiclient_cert.pem'); //这个是证书的位置绝对路径
        curl_setopt($ch,CURLOPT_SSLKEY,'****/***/***/apiclient_key.pem'); //这个也是证书的位置绝对路径
        $data = curl_exec($ch);                                 //运行curl
        curl_close($ch);
        return $data;
    }
}

控制器使用

public function apply_for(Request $request){
    $data = $request -> param();
    //请求打款
    $wxpay = new Wxpay();
    $pay = $wxpay->index($finance_apply_for);
    if ($pay == 200){
          //........自己的业务
        return json(['code' => 200, 'message' => '审核通过']);
    } else{
        return json(['code' => 201, 'message' => '打款失败']);
    }
}

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

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

相关文章

四、kafka集群与可靠性

Kafka集群的目标 1、高并发 2、高可用&#xff08;防数据丢失&#xff09; 3、动态伸缩 Kafka集群规模如何预估 吞吐量&#xff1a; 集群可以提高处理请求的能力。单个Broker的性能不足&#xff0c;可以通过扩展broker来解决。 磁盘空间&#xff1a; 比如&#xff0c;如…

C# 生成XML文档中如何去掉 xmlns=““

如果在XML 文档的指定了默认的命名空间&#xff0c;那么产生的文档中将会出现xmlns“”。 如何去掉这个烦人的xmlns“”? 网络上似乎都没有讲明白。有人提示: 当我们在AppendChild的时候&#xff0c;如果ParentNode是带有xmlns属性的&#xff0c;而你新加的节点&#xff0c;在…

SpringBoot 高校实验室资产管理系统-计算机毕设 附源码85189

SpringBoot高校实验室资产管理系统 摘 要 随着计算机技术的发展&#xff0c;特别是计算机网络技术与数据库技术的发展&#xff0c;使人们的生活与工作方式发生了很大的改观。本课题研究的高校实验室资产管理系统&#xff0c;主要功能模块包括后台首页&#xff0c;轮播图&#…

WindowManager中Surface申请流程

WindowManager中Surface申请流程 1、SurfaceFlinger 和 WindowManager2、WindowManager中Surface申请流程2.1 WMS侧添加界面时scheduleTraversals()2.2 Window更新过程时scheduleTraversals()2.3 Surface初始化申请2.4 简易时序图 3、对应画布Layer创建3.1 简易时序图 android1…

【Vue3 页面美化】常用组件库推荐

Vue 作为一款深受广大群众喜欢的前端框架&#xff0c;拥有众多优秀的开源 UI 组件库&#xff0c;这里整理了一下供大家参考。 这几套框架主要用于后台管理系统和移动端的制作&#xff0c;方便开发者快速开发。 一、PC 端 UI 库 1.1 Element Plus 官网地址&#xff1a;https…

基于阿里云免费算力自建LLM(类GPT)大模型

这会是一个关于 ChatGPT 的系列文章&#xff0c;主要记录老胡日常使用 ChatGPT 的思考和一些有趣的开源项目&#xff0c;然后这些信息我都会汇总到一个 ChatGPT 信息群(免费&#xff0c;目的是为了交流)&#xff0c;有兴趣的朋友可以联系我进群 &#x1f973;。 目前开源的 LLM…

sql总理论加实践

一、基础查询 DQL语法 SELECT 字段列表 1.设置别名 SELECT 字段1[别名],字段二[别名]......FROM 表名 WHERE 条件列表; 2.查询多个字段 SELECT 字段1,字段2,字段3......FROM 表名; SELECT * FROM 表名; 3.去除重复记录 DISTANT FROM 表明列表 WHERE 条件列表(条件…

Stable Diffusion: 利用Latent Diffusion Models实现高分辨率图像合成

原文链接&#xff1a; Stable Diffusion: 利用Latent Diffusion Models实现高分辨率图像合成 High-Resolution Image Synthesis with Latent Diffusion Models 01 The shortcomings of the existing works?02 What problem is addressed?03 What are the keys to the solutio…

RESTful API 中的 HTTP 方法有哪些?

RESTful API 中的 HTTP 方法有哪些&#xff1f; RESTful API 是一种基于 HTTP 协议的 API 设计风格&#xff0c;它使用 HTTP 协议中的方法来定义对资源的操作。在 RESTful API 中&#xff0c;HTTP 方法主要用于表示对资源的操作&#xff0c;例如获取、创建、更新和删除资源。本…

持 PMP®证书增持 CSPM-2证书,怎么弄?

2023年起&#xff0c;持有PMP证书的朋友可以直接增持一个同等级证书CSPM-2&#xff0c;不用重新考试&#xff0c;不用重新学习&#xff0c;原PMP证书不影响正常使用&#xff0c;相当于多了一个国标项目管理领域的证书。 第一步准备资料 1、填写能力评价表(简历和业绩不用填&am…

自毁便签:MaiFile Privnote

自毁便签&#xff1a;MaiFile Privnote为您提供安全可靠的信息传递 在当今数字化时代&#xff0c;隐私保护成为了人们关注的焦点。MaiFile Privnote作为一种创新的在线服务&#xff0c;为用户提供了一种安全、便捷的方式来发送私密信息&#xff0c;确保信息在传递后能够自动销…

SSM校园二手交易微信小程序-计算机毕设 附源码87210

SSM校园二手交易微信小程序 目 录 1 绪论 1.1 研究背景 1.2国内外研究现状 1.3论文结构与章节安排 2 校园二手交易微信小程序系统分析 2.1 可行性分析 2.1.1技术可行性分析 2.1.2经济可行性分析 2.1.3操作可行性分析 2.1.4需求分析 2.2 系统流程分析 2.2.1 数据流程…

【HTTP】HTTP协议 HTTPS 协议

目录 一、HTTP &#x1f337;1、HTTP是什么&#xff1f; &#x1f337;2、HTTP的工作过程 &#x1f337;3、 抓包工具Fiddler的使用 &#x1f337;4、HTTP的协议格式&#xff08;重点&#xff09; &#x1f337;5、HTTP请求 5.1 请求地址URL 5.2 方法method 5.3 认识 …

日志是什么?耗时2个月搞懂Linux日志

这里写目录标题 日志基本介绍日志管理服务日志轮替 日志基本介绍 日志是用来记录重大事件的工具。 日志文件是重要的系统信息文件&#xff0c;其中记录了很多重要的系统事件。包括用户的登录信息&#xff0c;系统的启动信息&#xff0c;系统的安全信息&#xff0c;邮件相关信息…

如何使用电脑压缩jpg图片大小?jpg图片怎么压缩大小kb?

在学习时经常需要将一些高分辨率的图片添加到你的学术论文或者演示文稿中&#xff0c;但是这些高清图片往往会占用大量的存储空间&#xff0c;导致文件变得非常大&#xff0c;难以上传或者发送&#xff0c;所以需要把这些jpg图片压缩&#xff08;https://www.yasuotu.com/jpg&a…

如何在前端项目中使用icon图标 (iconfont和remixicon以及Materialicon)

1.使用阿里图标库iconfont iconfont链接 把你所需要用的图标加入购物车中 把购物车中的图标加入到项目中 此时有两种使用方 直接下载文件&#xff0c;然后在项目中引入css文件就可以直接使用 2.使用在线链接 注意&#xff1a;在线链接服务仅供平台体验和调试使用&#xff0c;…

定时任务最简单的3种实现方法

定时任务在实际的开发中特别常见&#xff0c;比如电商平台 30 分钟后自动取消未支付的订单&#xff0c;以及凌晨的数据汇总和备份等&#xff0c;都需要借助定时任务来实现&#xff0c;那么我们本文就来看一下定时任务最简单的几种实现方式。 TOP 1&#xff1a;Timer Timer 是…

宽带毫米波数模混合波束赋形

从无线移动通信发展的脉络来看&#xff0c;第1、2 代&#xff08;1G、2G&#xff09;先后分别从模拟和数字两种方式解决了人们之间的语音通信需求&#xff0c;第3 代&#xff08;3G&#xff09;开始增加对数据业务的支持&#xff0c;第4 代&#xff08;4G&#xff09;系统着重满…

一场专属开发者的技术盛宴——华为开发者联创日首站登陆深圳

技术无界&#xff0c;创想无限。2023年6 月 17 日&#xff0c;华为开发者联创日深圳首站成功举办。本次活动由华为技术有限公司主办&#xff0c;深圳市龙岗数字创意产业走廊管理中心协办&#xff0c;并得到了华为全国首个数字创意产业方向的创新中心——华为&#xff08;龙岗&a…

【历史上的今天】6 月 20 日:MP3 之父出生;富士通成立;谷歌收购 Dropcam

整理 | 王启隆 透过「历史上的今天」&#xff0c;从过去看未来&#xff0c;从现在亦可以改变未来。 今天是 2023 年 6 月 20 日&#xff0c;在 2016 年的今天&#xff0c;中国超级计算机“神威太湖之光”摘得世界冠军。超级计算机&#xff0c;被称为“国之重器”&#xff0c;是…