Web Monetization 是一种开放的技术手段, 能让浏览网站或者玩网页游戏的用户向作者进行 (超小额度) 付款而且实时到账. 这给网页游戏开发者一条新的生财之道, 同时付款的玩家会获得额外的高端游戏内容.
网页微支付 已被提名为 W3C 标准. 它基于 Interledger 协议, 一种开放的, 中立的任意货币转账协议, 包括比特币这样的数字货币.
转账要满足以下需求:
玩家必须持有网页支付提供商提供账户以便向游戏开发者付款:
目前 Coil 是唯一的网页支付服务提供商, 以后会越来越多.
开发者必须持有网页支付钱包以便接收付款. 已经有许多服务提供商提供网页钱包服务:
钱包提供商把支付点与钱包对应. 支付点是钱包的收款地址, 它可以被随意公开出去. 详情请见 paymentpointers.org. 支付点就像一个网络连接, 但是是由 $ 开头:
$ilp.uphold.com/QkG86UgXzKq8
支付点要加入到网页 <head>
标签中的 <meta>
标签里:
<meta name="monetization" content="$ilp.uphold.com/QkG86UgXzKq8">
在 Defold 游戏中使用网页支付功能是个简单的过程. 新建项目和已有项目的配置方法略有不同.
如果是新建项目强烈建议你使用 Defold 欢迎屏幕里的网页支付项目模板. 这个模板包含了 网页支付原生扩展, 还能为你的网页游戏自动添加支付点:
下一步注册 网页钱包账户 然后在 game.project 文件的 Web Monetization 部分将支付点与钱包挂接:
首先注册 网页钱包账户 然后手动在网页中加入支付点:
<meta name="monetization" content="YOUR_PAYMENT_POINTER">
下一步将 网页支付原生扩展 作为 项目依赖库 加入. 打开 game.project 文件, 找到 Project 部分的 Dependencies 项 加入:
https://github.com/defold/extension-webmonetization/archive/master.zip
在项目中加入扩展包和支付点之后就可以使用它了. 它的 API 包含两个部分:
检查玩家付款 (或者正在付款):
local monetized = webmonetization.is_monetized()
if monetized then
print("The user has an active payment stream")
end
设置监听器跟踪付款进度:
webmonetization.set_listener(function(self, event)
if event == webmonetization.EVENT_PENDING then
print("The user is trying to make a first payment")
elseif event == webmonetization.EVENT_START then
print("The user has started paying")
elseif event == webmonetization.EVENT_PROGRESS then
print("The user is still paying")
elseif event == webmonetization.EVENT_STOP then
print("The user has stopped paying")
end
end)