lua脚本

Lua 脚本功能使用

内置的Lua脚本插件开发了7个主要的用于Lua环境的库:

  • string (opens new window)
  • math (opens new window)
  • base (opens new window)
  • VsysService (TO BE UPDATED)
  • VsysHttp
    • get(string url, string pubKey):发送GET请求到url,使用pubKey对返回的内容进行解密
    • post(string url, string pubKey, lua.LTable body):发送post请求使用pubKey进行加密
      • body会转换成json并使用公钥加密
      • 请求的header会包含加密后body的内容的签名
    • postwosign(string url, lua.LTable body):发送post
  • VsysRefund
    • refundVsys(int amount, string recipient, string orderID):订单orderID退款数额amount原路返回到vsys账户地址recipient
    • refundToken(int amount, string recipient, string orderID):订单orderID退款数额amount以token的形式到地址recipient
  • SystemUtils
    • preventDefault:当启动该设置时,该函数会让创建的UserService的初始状态为ServicePending,详情请参考供应商的商品服务期限

编写 Lua脚本函数

供应商可以提供start, stoprefund三种不同功能的函数作为Lua脚本,方便完善整个逻辑链条。这些脚本将在服务启动, 关闭和退款时被调用。如果没有提供对应的脚本,系统将按默认的流程执行服务启动, 关闭和退款之后的操作。

start示例:付款成功后有调用该lua脚本

-- 使VsysHttp和SystemUtils库
local http = require("VsysHttp")
local util = require("SystemUtils")
-- 声明使用start函数,必须是start、stop、refund之一
-- inputTable传参
--[[
    id: string,订单ID
    duration: int,订单期限
    createdAt: int,订单的创建时间
    options: inputTable, 订单选择的服务选项
--]]
function start(inputTable)
-- 该示例中使用preventDefault模式
    util.preventDefault()
    a = {}
    a["id"]= inputTable["id"]
    a["createdAt"] = inputTable["createdAt"]
    a["duration"] = inputTable["duration"]
    -- 使用post请求
    resp = http.postwosign("https://example-url", a)
    return resp
end

stop示例:在进行退款流程时调用

-- 引入VsysHttp库
local http = require("VsysHttp")
-- 声明使用stop函数,必须是start、stop、refund之一
-- inputTable传参
--[[
		id: string,订单ID
--]]
function stop(inputTable)
    a = {}
    a["id"] = inputTable["id"]
    resp = http.postwosign("https://example-url"..a["id"], a)
    return resp
end

refund示例:在用户自行退款的时候调用

-- 使用VsysHttp库
local http = require("VsysHttp")
-- 声明使用stop函数,必须是start、stop、refund之一
-- inputTable传参
--[[
		id: string,订单ID
--]]
function refund(inputTable)
    a = {}
    a["id"] = inputTable["id"]
    resp = http.postwosign("https://example-url"..a["id"], a)
    return resp
end
上次更新: 2021/6/2 上午3:30:02