微信创建小程序码 - 数量不受限制

获取小程序码:小程序码为圆图,且不受数量限制。

目录

文档

接口地址

请求方式

功能描述

注意事项

[获取 scene 值](#获取 scene 值)

请求参数

返回参数

对接

请求方法

获取小程序码

调用获取小程序码

总结


文档

接口 地址

https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=ACCESS_TOKEN

请求方式

POST

功能描述

该接口用于获取小程序码,适用于需要的码数量极多的业务场景。通过该接口生成的小程序码,永久有效,数量暂无限制。 更多用法详见 获取小程序码。

注意事项

如果调用成功,会直接返回图片二进制内容,如果请求失败,会返回 JSON 格式的数据。

POST 参数需要转成 JSON 字符串,不支持 form 表单提交。

调用分钟频率受限(5000次/分钟),如需大量小程序码,建议预生成

获取 scene 值

scene 字段的值会作为 query 参数传递给小程序/小游戏。用户扫描该码进入小程序/小游戏后,开发者可以获取到二维码中的 scene 值,再做处理逻辑。

调试阶段可以使用开发工具的条件编译自定义参数 scene=xxxx 进行模拟,开发工具模拟时的 scene 的参数值需要进行 encodeURIComponent

请求参数

返回参数

对接

请求方法

对请求使用了curl方法进行了封装。

代码如下:

php 复制代码
/**
 * 发起请求
 * @param string $url 请求地址
 * @param string $param 请求数据包
 * @return   string      请求返回数据
 */
public function http_post($url, $param)
{
    $oCurl = curl_init();
    if (stripos($url, "https://") !== FALSE) {
        curl_setopt($oCurl, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($oCurl, CURLOPT_SSL_VERIFYHOST, false);
        curl_setopt($oCurl, CURLOPT_SSLVERSION, 1); //CURL_SSLVERSION_TLSv1
    }
    if (is_string($param)) {
        $strPOST = $param;
    } else {
        $aPOST = array();
        foreach ($param as $key => $val) {
            $aPOST[] = $key . "=" . urlencode($val);
        }
        $strPOST = join("&", $aPOST);
    }
    curl_setopt($oCurl, CURLOPT_URL, $url);
    curl_setopt($oCurl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($oCurl, CURLOPT_POST, true);
    curl_setopt($oCurl, CURLOPT_HTTPHEADER, array(
            'X-AjaxPro-Method:ShowList',
            'Content-Type: application/json; charset=utf-8',
            'Content-Length: ' . strlen($strPOST))
    );
    curl_setopt($oCurl, CURLOPT_POSTFIELDS, $strPOST);
    $sContent = curl_exec($oCurl);
    $aStatus = curl_getinfo($oCurl);
    curl_close($oCurl);
    if (intval($aStatus["http_code"]) == 200) {
        return $sContent;
    } else {
        return false;
    }
}

获取小程序码

对获取小程序码所需参数、请求地址、调用进行请求封装为一个函数。

page是小程序跳转路径,param_str是传递的参数和值。

代码如下:

php 复制代码
public function getWxaCodeUnLimit($page, $param_str, $access_token)
{
    $url = "https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=" . $access_token;

    return $this->http_post($url, json_encode(array(
        'scene'         =>  $param_str,
        'page'          =>  $page,
        'width'         =>  430,
        'check_path'    =>  false,   // 不检测路径
        'env_version'   =>  'trial', // 体验版 默认正式版
    )));
}

调用获取小程序码

注意:调用的前置条件是获取access_token值。这里不再详述获取access_token。

代码如下:

php 复制代码
$path = 'pages/special/groupPurchase/GroupDetails';
$param_str = 'id=1';
$image = $wechatModel->getWxaCodeUnLimit($path, $param_str, $access_token);
if (strlen($image) < 1000) {
    ds_json_encode(10001, '错误', $image);
}
$filename = sprintf('./uploads/min_%d.png', time());
file_put_contents($filename, $image);
ds_json_encode(10000, ['path' => $filename]);

小程序码示例

总结

获取受数量限制的小程序码适用于需要推广的链接较少且需要永久有效的场景。

相关推荐
fox_lht20 小时前
15.3.改进我们之前的输入、输出项目
开发语言·后端·学习·rust
大鸡腿同学21 小时前
用 AI 肝了一个星期的智能客服助手,看看怎么个事
后端
IT_陈寒21 小时前
Python的os.path.join居然能这么坑?
前端·人工智能·后端
张忠琳21 小时前
【Go 1.26.4】Golang Channel 深度解析
开发语言·后端·golang
Rain50921 小时前
2.1 Nest.js 项目初始化与模块化架构
开发语言·前端·javascript·后端·架构·数据分析·node.js
cjp56021 小时前
009. ASP.NET WEB API 用户关联esp32设备
前端·后端·asp.net
贺国亚1 天前
Text-to-SQL与Analytics-Agent
后端
一只叫煤球的猫1 天前
ThreadForge 源码解读二:一个 Task 从 submit 到完成,内部到底发生了什么?
java·后端·面试
苏三说技术1 天前
AgentScope Java 2.0 正式发布了!
后端