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

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

目录

文档

接口地址

请求方式

功能描述

注意事项

[获取 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]);

小程序码示例

总结

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

相关推荐
专注VB编程开发20年8 分钟前
asp.net mvc如何简化控制器逻辑
后端·asp.net·mvc
用户67570498850238 分钟前
告别数据库瓶颈!用这个技巧让你的程序跑得飞快!
后端
千|寻1 小时前
【画江湖】langchain4j - Java1.8下spring boot集成ollama调用本地大模型之问道系列(第一问)
java·spring boot·后端·langchain
程序员岳焱1 小时前
Java 与 MySQL 性能优化:MySQL 慢 SQL 诊断与分析方法详解
后端·sql·mysql
龚思凯1 小时前
Node.js 模块导入语法变革全解析
后端·node.js
天行健的回响1 小时前
枚举在实际开发中的使用小Tips
后端
wuhunyu1 小时前
基于 langchain4j 的简易 RAG
后端
techzhi1 小时前
SeaweedFS S3 Spring Boot Starter
java·spring boot·后端
写bug写bug3 小时前
手把手教你使用JConsole
java·后端·程序员