文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

php 商户转账到微信零钱

2023-09-01 06:57

关注

首先在微信商户开通此功能(开通可能不易)

拿到  商户号   证书 还有证书序列号   关联商户的appid(如果是app在开放平台申请appid小程序的话那就是小程序的appid)   注意一定要关联appid   

在微信商户号里   开通 api 权限 以及添加服务器的ip

上代码

public function zhuanzhang(){    $post_data = [        "appid" => 'wx0b468e83f769fc09',//appid        "out_batch_no" => 'wlss'.date('YmdHis').mt_rand(100000, 999900),//商家批次单号        "batch_name" => '提现到账',//批次名称        "batch_remark" => '提现到账',//批次备注        "total_amount" => intval(strval($params['money'] * 100)),// 转账金额单位为“分”        "total_num" => 1, // 转账总笔数        //此处可以多笔提现  组合二维数组放到transfer_detail_list即可   我这里单笔操作,写死了        "transfer_detail_list" => [            [                'out_detail_no' => 'wlss'.date('YmdHis').mt_rand(100000, 999900),                'transfer_amount' => intval(strval($params['money'] * 100)),                'transfer_remark' => '提现到账',                'openid' => $openid,            ]         ]    ];                        $url = 'https://api.mch.weixin.qq.com/v3/transfer/batches';    $result = self::wx_post($url, json_encode($post_data,               JSON_UNESCAPED_SLASHES|JSON_UNESCAPED_UNICODE));            $result = json_decode($result, true);                    if(isset($result['code'])){        $this->error($result['massage']);    }}public static function wx_post($url, $param)    {        $authorization = self::getV3Sign($url, "POST", $param);        $curl = curl_init();        $headers = [            'Authorization:' . $authorization,            'Accept:application/json',            'Content-Type:application/json;charset=utf-8',            'User-Agent:Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36',        ];        curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);        curl_setopt($curl, CURLOPT_TIMEOUT, 500);        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);        curl_setopt($curl, CURLOPT_URL, $url);        curl_setopt($curl, CURLOPT_POSTFIELDS, $param);        curl_setopt($curl, CURLOPT_POST, true);        $res = curl_exec($curl);        curl_close($curl);        return $res;    }                public static function getV3Sign($url, $http_method, $body)    {        $nonce = strtoupper(self::createNonceStr(32));        $timestamp = time();        $url_parts = parse_url($url);        $canonical_url = ($url_parts['path'] . (!empty($url_parts['query']) ? "?${url_parts['query']}" : ""));        $cert_dir = '证书路径'; //绝对路径        $sslKeyPath = $cert_dir."apiclient_key.pem";        //拼接参数        $message = $http_method . "\n" .            $canonical_url . "\n" .            $timestamp . "\n" .            $nonce . "\n" .            $body . "\n";        $private_key = self::getPrivateKey($sslKeyPath);        openssl_sign($message, $raw_sign, $private_key, 'sha256WithRSAEncryption');        $sign   = base64_encode($raw_sign);        $token = sprintf('WECHATPAY2-SHA256-RSA2048 mchid="%s",nonce_str="%s",timestamp="%s",serial_no="%s",signature="%s"', "商户号", $nonce, $timestamp, "证书序列号", $sign);        return $token;    }    public static function createNonceStr($length = 16) { //生成随机16个字符的字符串        $chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";        $str = "";        for ($i = 0; $i < $length; $i++) {            $str .= substr($chars, mt_rand(0, strlen($chars) - 1), 1);        }        return $str;    }    public static function getPrivateKey($filepath = '')    {        if (empty($filepath)) {            //私钥位置            $cert_dir = '证书位置';            $filepath = $cert_dir."apiclient_key.pem";        }        return openssl_get_privatekey(file_get_contents($filepath));    }

到此微信商户转账到用户零钱结束   (注意微信商户号里一定要有钱)  //不然会报错

来源地址:https://blog.csdn.net/qq_39870660/article/details/130200679

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯