Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

php 生成微信收款码(自动生成微信收款码)

作者:寂寞带点伤   发布日期:2025-11-22   浏览:933

要生成微信收款码,可以使用微信支付的API来实现。以下是一个简单的示例代码:

<?php
// 设置微信支付的参数
$appid = 'your_appid';
$mchid = 'your_mchid';
$key = 'your_key';

// 生成随机字符串
function generateNonceStr($length = 32) {
    $chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
    $nonceStr = '';
    for ($i = 0; $i < $length; $i++) {
        $nonceStr .= $chars[mt_rand(0, strlen($chars) - 1)];
    }
    return $nonceStr;
}

// 生成微信支付二维码
function generateQRCode($appid, $mchid, $key) {
    $url = 'https://api.mch.weixin.qq.com/pay/unifiedorder';

    // 构建请求参数
    $params = array(
        'appid' => $appid,
        'mch_id' => $mchid,
        'nonce_str' => generateNonceStr(),
        'body' => '微信收款码',
        'out_trade_no' => time(),
        'total_fee' => 1, // 支付金额(单位:分)
        'spbill_create_ip' => $_SERVER['REMOTE_ADDR'],
        'notify_url' => 'http://your_notify_url',
        'trade_type' => 'NATIVE'
    );

    // 生成签名
    ksort($params);
    $stringToSign = '';
    foreach ($params as $key => $value) {
        $stringToSign .= $key . '=' . $value . '&';
    }
    $stringToSign .= 'key=' . $key;
    $params['sign'] = strtoupper(md5($stringToSign));

    // 发送请求
    $xmlData = '<xml>';
    foreach ($params as $key => $value) {
        $xmlData .= '<' . $key . '>' . $value . '</' . $key . '>';
    }
    $xmlData .= '</xml>';

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $xmlData);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    $response = curl_exec($ch);
    curl_close($ch);

    // 解析响应结果
    $result = simplexml_load_string($response);
    if ($result->return_code == 'SUCCESS' && $result->result_code == 'SUCCESS') {
        return $result->code_url;
    } else {
        return false;
    }
}

// 生成微信收款码
$qrcode = generateQRCode($appid, $mchid, $key);
if ($qrcode) {
    echo '<img src="https://chart.googleapis.com/chart?chs=300x300&cht=qr&chl=' . urlencode($qrcode) . '" alt="微信收款码">';
} else {
    echo '生成微信收款码失败';
}
?>

请注意,以上代码仅提供了生成微信收款码的基本流程,具体的微信支付配置和回调处理需要根据实际情况进行调整。

上一篇:php输出错误检查(遇到php错误)

下一篇:php文件怎么变成zip?(php生成php文件)

大家都在看

php session用法

php 定义常量

phpisset函数

php html转图片

php后端

php爬虫框架

php读取csv文件

php+mysql动态网站开发

phpmyadmin docker

php session id

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站