youloge.plus
TypeScript icon, indicating that this package has built-in type declarations

1.0.8 • Public • Published

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

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

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

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

更新日志

  • 1.0.8 引入curl 参数:直接对接开发者接口
  • 1.0.7 修复弹窗fiexd 样式问题
  • 1.0.6 修复selector设置错误情况下走弹窗式遮罩层不会关闭问题
  • 1.0.5 统一风格ukey 初始化 + selector 支持内嵌式渲染
  • 0.0.9 前置服务captcha人机验证,归入到匿名账户体系
  • 0.0.2 增加sso单点登录服务
  • 0.0.1 初始化项目 构建逻辑 统一模块

开始使用

初始化

let PLUS = youloge.plus({
  ukey:'', // 必填*用于加密数据区分开发者
  curl:'' // 开发者接口地址 不填为引用来源根地址;使用[Youloge.rpc 通信协议](https://docs.youloge.com/lic/rpc)
});

弹窗式 & 内嵌式

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

人机验证服务 METHOD=captcha

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

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

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

单点登录服务 METHOD=sso

  • uuid 是唯一的且使用不同的ukey获取同一个用户 uuid都是一样的
  • signature可以解密出uuid:用户ID expire:过期时间 singer:用户凭证7200秒,3小时
  • secret 专门用来刷新凭证7天有效,过期必须手动登录再次刷新。
  • 开发者凭证也是该接口:(Ukey和Ukey的邮箱是同一人,即视为开发者)
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`字符串

关于数据校验解密

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

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参数根据不同的方法解出来数据不同
}

但行好事 莫问前程

Readme

Keywords

Package Sidebar

Install

npm i youloge.plus

Weekly Downloads

1

Version

1.0.8

License

MIT

Unpacked Size

16.7 kB

Total Files

7

Last publish

Collaborators

  • youfeed