npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

youloge.plus

v1.9.9

Published

youloge.com website dedicated library

Downloads

22

Readme

Youloge.Plus 开放扩展服务 ⚡ 当前处于非正式版 🚧

  • 前端开放服务,可以快速集成人机验证,登录注册,转账支付,视频点播 服务。
  • 先到 任意开发者管理后台-apikey 获取一对加解密密钥对(apikey/secret)。
  • 项目开源,欢迎提交PR,或者提交Issue。

💡 ⚡️ 🛠️ 📦 🔩 🔑 - 接口来源-开放API文档

  • 建议直接引入CDN 即可使用 2.77 kB │ gzip: 1.27 kB
  • https://unpkg.com/youloge.plus或者https://cdn.jsdelivr.net/npm/youloge.plus
  • 主动调用 youloge.plus.METHOD(config)方法,通过.then.catch接收回调,还可添加.emit 监听变化

更新日志

  • 1.9.1 添加utils辅助函数,统一事件
  • 1.2.0 优化监听事件,增加窗口新建销毁处理逻辑
  • 1.0.8 引入notify 参数:直接对接开发者接口
  • 1.0.7 修复弹窗fiexd 样式问题
  • 1.0.6 修复selector设置错误情况下走弹窗式遮罩层不会关闭问题
  • 1.0.5 统一风格apikey 初始化 + selector 支持内嵌式渲染
  • 0.0.9 前置服务captcha人机验证,归入到匿名账户体系
  • 0.0.2 增加login单点登录服务(邮箱匿名代理)
  • 0.0.1 初始化项目 构建逻辑 统一模块

开始使用

初始化

let PLUS = youloge.plus({
  apikey:'', // 必填*用于加密数据区分开发者
  notify:'' // 可选*同步通知接口地址[网址参数不变,会替换路劲部分];
  // 例如:notify:'https://www.xxxx.com/mep/dashboard?a=URL_ADDRESS&b=URL_ADDRESS'
  // 支付通知地址:https://www.xxxx.com/`wallet/versive`?a=URL_ADDRESS&b=URL_ADDRESS
});

弹窗式 & 内嵌式

  • selector:null 0 false undefined为否时则为弹窗式
  • selector:当前只渲染第一个div容器,如果需要内嵌多个 需要多次调用
  • selector:div 选择器时配置参数优先从 data-*=""上选取且会覆盖js 初始参数
// METHOD => 取值参考下文
PLUS.METHOD({
  selector:'#id' // 只取查询到的第一个`Element`
  // 其他配置参数
}).emit(data=>{
  // 监听事件(流程尚未结束)(可选项) * 在`then catch`之前添加监听
}).then(res=>{
  // 处理成功(流程结束)
}).catch(err=>{
  // 处理失败(流程结束)
})

人机验证服务 METHOD=captcha

  • 人机验证通过返回的signature只能开发者自己解密
  • 解密有一个singer参数,可以临时作为匿名用户调用vip接口
  • captcha解密出来的singer 有效期为300秒,过期后需要重新调用
  • 匿名用户可以调用其他服务:例如发布匿名评论 匿名发布文章等
  • 匿名用户的发表作品权重很低:不会被纳入搜索引擎且删除不需要其他开发者审核
  • 匿名用户的虚拟邮箱为[email protected](假的)昵称为匿名用户uuid为YQasfalskfjklwklahskfhw
  • 不要给匿名用户转账:等同于赞助了

关于匿名用户的生成方式还可以使用开发者singer代替,如果你自己实现人机验证的话

PLUS.captcha({
  "state":"string < 64", // 自定义参数 用过通过人机验证后会写入在`signature`中
}).then(res=>{ 
  // 成功(流程结束)
})
// 成功返回`signature` 通过解密可以获得`captcha`参数,该参数用于对接验证服务(单次)

单点登录服务 METHOD=sso

  • uuid 是唯一的且使用不同的apikey获取同一个用户 uuid都是一样的
  • signature可以解密出uuid:用户ID expire:过期时间 singer:用户凭证7200秒,3小时
  • secret 专门用来刷新凭证7天有效,过期必须手动登录再次刷新。
  • 开发者凭证也是该接口:(apikey和apikey的邮箱是同一人,即视为开发者)
PLUS.sso({
  "close":Bloom, // 
}).then(res=>{
  // 登录成功
})
// 返回的数据前端可以直接展示

账户渠道充值 METHOD=pay

  • 平台货币为:#1.00RGB ≈ ¥1.0001CNY ≈ $0.1372USD 灵感来源于css颜色数值;
  • 可指定金额
  • 可指定渠道
  • 可指定用户
  • 渠道充值收银台付款是二个不同的服务:用户充值只能用于消费 购物 打赏,不支持提现
PLUS.pay({
  "close":Bloom, // 
}).then(res=>{
  // 登录成功
})
// 返回的数据前端可以直接展示

收银台付款服务 METHOD=payment

  • 平台货币为:#1.00RGB ≈ ¥1.0001CNY ≈ $0.1372USD 灵感来源于css颜色数值;
  • 任意用户付款给开发者:非点对点收款
  • 支付人和当前登录用户是没有关系的,当前用户可能使用其他账户支付
  • 只有local支付订单号,是你确认支付唯一的凭证
  • 详细支付流水 在后台apikey下可查看时间,来源,IPV4
  • 点对点收款 即指定用户付款直接用户登录状态下:调用支付API即可。
  • 开发者收款经过>T+3 +7 +15按比例提现 > 0.6% 0.8% 3% 5%(配合平台做纳税,实名认证)
PLUS.payment({
  "local":String "*", // 本地订单号 支付成功原样返回
  "money":Number "*", // 整数金额 100 => #1.00RGB
  "close":Bloom, // 可选参数
}).then(res=>{ 
  // 成功(流程结束)
})
//  `本地订单号` 自己维护网站的sku和用户的关系根据本地订单号。
//  `signature` 解密出的字符串 `官方订单号#本地订单号#支付人UUID#实际支付金额#支付时间` 使用 `JSON`字符串

关于数据校验解密

apikey - 暴漏给前端,用于调用各种开发服务

secret - 专门用于后端AES-256-CBC * 2解密(固定IP服务端解密使用不要暴漏)

signature 后端通过解密signature可以获取JSON字符串格式数据

  • 解密参考 算法使用AES-256-CBC * 2
  • signature 前16字节为 iv
  • secret 00-32字节为 key_one
  • secret 16-32字节为 key_two
public function signature_decrypt($signature,$secret='')
{
  $key = base64_decode($secret);
  $bin = base64_decode($signature);$iv = substr($bin,0,16);$str = substr($bin,16);
  $one = openssl_decrypt($str,'AES-256-CBC',substr($key,0,32),1,$iv);
  $two = openssl_decrypt($one,'AES-256-CBC',substr($key,32,64),1,$iv);
  return json_decode($two,true);
  // JSON参数根据不同的方法解出来数据不同
}

但行好事 莫问前程