明文schema

微信明文 URL Scheme
获取方式
开发者无需调用平台接口,在MP平台->设置->隐私与安全->明文Scheme拉起此小程序声明后,可自行根据如下格式拼接appid和path等参数,作为明文 URL Scheme 链接。

weixin://dl/business/?appid=*APPID*&path=*PATH*&query=*QUERY*&env_version=*ENV_VERSION*
//例如
weixin://dl/business/?appid=wx4e1ba651bbe36d01&path=mall/order/list&query=index%3D2

其中,各个参数的定义如下:

【必填】APPID:通过明文 URL Scheme 打开小程序的 appid ;
【必填】PATH:通过明文 URL Scheme 打开小程序的页面 path ,必须是已经发布的小程序存在的页面,不可携带 query;
【选填】QUERY:通过明文 URL Scheme 打开小程序的 query ,最大512个字符,只支持数字,大小写英文以及部分特殊字符:!#$&'()*+,/:;=?@-._~%`,需要url_encode;
【选填】ENV_VERSION:要打开的小程序版本,正式版为release,体验版为trial,开发版为develop,仅在微信外打开时生效。注意:若不填写,则默认打开正式版小程序。
通过明文 URL Scheme 打开小程序的场景值为 1286。

频率限制
生成端:每天生成 URL Scheme(加密+明文) 和 URL Link 的总数量上限为50万;

打开端:每天通过 URL Scheme(加密+明文) 和 URL Link 打开小程序的总次数上限为300万。

支付宝明文 URL Scheme
拼接方式

alipays://platformapi/startapp?appId=[appId]&page=[page]&query=[query]

其中,各个参数的定义如下:

  • appId 要跳转的目标小程序 APPID。 例如:20170713077xxxxx

  • page 要跳转到目标小程序的具体 page 页面,该值等于 app.json 里面的配置值;如果不带 page
    字段,默认跳转到小程序首页。 路径中可以在 ?后面附加跳转后的页面参数。页面参数必须进行 UrlEncode编码,否则只能获取到第一个页面参数。
    例如:
    UrlEncode 编码前:pages/index/index?key1=1&key2=2
    UrlEncode 编码后:pages/index/index?key1%3D1%26key2%3D2

  • query 表示从外部 App 携带的参数透传到目标小程序,如果不需要携带参数给小程序,可以不带该参数。
    query:启动参数,内容按照格式为参数名=参数值&参数名=参数值
    注意: query 携带的启动参数必须进行 UrlEncode编码否则只能获取到第一个参数。
    例如:
    UrlEncode 编码前:key1=value1&key2=value2
    UrlEncode编码后:key1%3Dvalue1%26key2%3Dvalue2

scheme转换成https链接唤起小程序
需要把 scheme 当作参数进行 UrlEncode 编码后,拼接在 https://ds.alipay.com/?scheme= 后。
拼接过程

第一步、填写贵司正确的应用appId和page页面路径,完成如下:

alipays://platformapi/startapp?appId=202100216xxxxxxx&page=pages/index/index

携带启动参数场景,先单独对 query 携带的启动参数进行 UrlEncode 编码,完成如下:
UrlEncode 编码前:

 alipays://platformapi/startapp?appId=202100216xxxxxxx&page=pages/index/index&query=key1=value1&key2=value2

UrlEncode 编码后:

 alipays://platformapi/startapp?appId=202100216xxxxxxx&page=pages/index/index&query=key1%3Dvalue1%26key2%3Dvalue2

第二步、对 第一步 拼接完成的链接进行整体 UrlEncode 编码并拼接在 https://ds.alipay.com/?scheme=后(携带启动参数场景),完成完整拼接如下:

 https://ds.alipay.com/?scheme=alipays%3A%2F%2Fplatformapi%2Fstartapp%3FappId%3D202100216xxxxxxx%26page%3Dpages%2Findex%2Findex%26query%3Dkey1%253Dvalue1%2526key2%253Dvalue2
### MySQL明文密码登录失败的原因分析及解决方案 #### 原因一:认证插件不兼容 自MySQL 8.0起,默认的认证插件由`mysql_native_password`更改为`caching_sha2_password`。这可能导致某些客户端无法加载新的认证插件,从而引发登录失败的问题[^4]。 #### 解决方案一:更改默认认证插件 可以通过修改用户的认证插件来解决此问题。具体操作如下: 1. 使用管理员权限登录MySQL服务器。 2. 执行以下SQL语句以更改指定用户的认证插件为`mysql_native_password`: ```sql ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码'; ``` 3. 刷新权限并退出重试: ```sql FLUSH PRIVILEGES; ``` #### 原因二:密码策略过于严格 MySQL可能启用了严格的密码验证策略,导致不符合安全要求的明文密码被拒绝。 #### 解决方案二:调整全局密码策略 可以降低密码强度校验的要求,允许简单的明文密码通过验证。执行以下命令可禁用密码策略: ```sql SET GLOBAL validate_password.policy=LOW; ``` 或者完全关闭密码策略: ```sql UNINSTALL PLUGIN validate_password; ``` #### 原因三:服务未正常启动或端口冲突 如果MySQL服务未能成功运行,则即使提供了正确的用户名和密码也无法完成身份验证。 #### 解决方案三:检查并重启MySQL服务状态 确认MySQL进程是否存在以及监听端口是否开放。对于Windows系统而言,可通过服务管理器查看;而对于Linux则使用命令行工具检测: ```bash sudo systemctl status mysql.service netstat -an | grep 3306 ``` 假如发现异常情况,尝试停止再重新开启服务试试看效果如何: ```bash sudo service mysql stop && sudo service mysql start ``` #### 原因四:账户锁定或权限不足 当多次输入错误密码后可能会触发自动锁住机制,另外即便解锁也可能因为缺乏相应访问控制列表中的条目而遭到阻止。 #### 解决方案四:解除账号封锁状况并且赋予适当权利 先判断目标用户是否有遭受限制影响: ```sql SELECT * FROM performance_schema.account_usage WHERE user='your_user'; SHOW WARNINGS; ``` 接着按照实际情况采取行动恢复正常使用功能: - 如果是因为连续失误造成暂时性的不可达现象的话可以直接跳过等待时间立即恢复正常; - 若属于长期失效情形则需手动设置有效期范围之外的时间点作为起点计算向前推移一定周期数直至当前时刻为止期间均视为有效期内无任何约束条件下的自由进出模式即可实现彻底解放枷锁的目的同时还要记得补充授予必要的许可事项以免再次遭遇类似的困境局面发生哦! --- ### 提供一段示例代码用于演示如何创建带有加密处理的新记录入库流程 以下是基于JSON数据结构向数据库表单写入经过AES算法保护后的敏感字段值的一个例子说明文档片段内容摘抄部分展示给大家参考学习一下吧😊: ```cpp bool UserDAO::insert(const std::string& username,const std::string& passwd){ MYSQL* conn=mysql_init(NULL); if(!conn)return false; const char* server="127.0.0.1"; uint port=3306; const char* user="testUser"; const char* password="testPass"; if(!(conn=mysql_real_connect(conn,server,user,password,"mydb",port,NULL,CLIENT_FOUND_ROWS))){ fprintf(stderr,"%s\n",mysql_error(conn)); return false; } string sqlStr=fmt::format( R"(INSERT INTO users(username,pwd_hash) VALUES('{}',HEX(AES_ENCRYPT('{}','encryption_key'))))", mysql_real_escape_string_quote(conn,username.c_str(),username.length()), mysql_real_escape_string_quote(conn,passwd.c_str(),passwd.length()) ); int res=mysql_query(conn,sqlStr.c_str()); mysql_close(conn); return !res; } ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大王0111

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值