JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 24
  • Score
    100M100P100Q66541F
  • License MIT

youloge.com website dedicated library

Package Exports

  • youloge.plus

Readme

Youloge.Plus 开放扩展服务 ⚡

前端开放服务,可以快速集成登录注册 转账支付 视频点播 服务。 先到 任意开发者管理后台-apikey 获取一对加解密密钥(ukey/secret)。

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

建议直接引入CDN 即可使用 2.20 kB │ gzip: 1.04 kB

https://unpkg.com/youloge.plus或者https://cdn.jsdelivr.net/npm/youloge.plus

主动调用 youloge.plus.METHOD(config)方法,通过.then.catch 接收回调.listener 监听变化

更新日志

  • 0.0.2 增加sso单点登录服务
  • 0.0.1 初始化项目 构建逻辑 统一模块

开始使用

// METHOD => 取值参考下文
youloge.plus.METHOD({
  ukey:'', // 必填*用于加密数据区分开发者
  ...
}).then(res=>{
  // 处理成功(流程结束)
}).catch(err=>{
  // 处理失败(流程结束)
}).listener(data=>{
  // 阶段性事件(流程尚未结束)
})

1. 单点登录服务 METHOD=sso

youloge.plus.sso(
  {
    "ukey":"*", // 开发者ukey
    "width":Number, // 
    "height":Number, // 
    "close":Bloom, // 
  }
).then(res=>{
  // 登录成功
  res=>{
    'uuid'=>'uuid'
  }
})
// 返回的数据前端可以直接展示
// `uuid` 是唯一的且使用不同的`ukey`获取同一个用户 `uuid`都是一样的

1. 收银台付款服务 METHOD=payment

youloge.plus.payment(
  {
    "ukey":"*", // 开发者ukey
    "official":String "*", // 官方订单号 支付成功原样返回
    "local":String "*", // 本地订单号 支付成功原样返回
    "money":Number "*", // 支付金额 支付成功原样返回
    "width":Number, // 可选参数 金額大于0的整数 默认`100` 金額大于0的整数 必
    "height":Number, // 可选参数
    "close":Bloom, // 可选参数
  }
).then(res=>{ 
  // 成功(流程结束)

})
// `本地订单号` 和 `官方订单号` 二选一 官方订单号来源于购买平台产品产生
//  `本地订单号` 自己维护网站的sku和用户的关系根据本地订单号。
//  `官方订单号` 用于后台查账、来源、IP、所属Ukey
//  `signature` 解密出的字符串 `官方订单号#本地订单号#支付人UUID#实际支付金额#支付时间` 使用 英文`#`分割

- *支付人*和当前*登录用户*是没有关系的,当前用户可能使用其他账户支付

- 只有`local`支付订单号,是你确认支付唯一的凭证

- 详细支付流水 在后台`apikey`下可查看时间,来源,IPV4

数据校验

ukey - 暴漏给前端

secret - 对sign 进行AES对称解密即可(服务端解密使用,不要暴漏)

signature 后端通过解密signature可以获取校验数据

signer - sso接口独有:用户调用唯一凭证,后端通过解密signature获得

// 解密参考
public function signer_decrypt($signer,$secret='')
{
  $bin = base64_decode($signer);
  return openssl_decrypt(substr($bin,16),'AES-128-CBC',base64_decode($secret),1,substr($bin,0,16));
  // JSON参数 不同的方法解出来数据不同
}

但行好事 莫问前程