南锋

南奔万里空,脱死锋镝余

Cocos Creator接入telegram支付

这里的Cocos Creator接入telegram支付,只是简单的做了一个在Cocos Creator中拉起telegram Bot并发送一个发票。你需要通过HTTP请求与teleram Bot API 进行交互。

前期工作

1、建议阅读前面几篇和telegram相关的文章
2、创建一个telegram Bot并获得了Bot Token
3、准备发票信息,比如商品名称、价格、货币等

Cocos Creator

在正式使用这个功能前,我们最好是能够写一个测试代码。我这里做的比较简单,直接新建了一个工程,然后在scene中添加了一个按钮,其他就什么都没有了。
测试代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
import { _decorator, Component, Node ,Button} from 'cc';
const { ccclass, property } = _decorator;

interface InvoiceData {
chat_id: string; // 收款人聊天 ID
title: string; // 商品名称
description: string; // 商品描述
payload: string; // 唯一的负载
provider_token: string; // 支付提供者的 Token
start_parameter: string; // 开始参数
currency: string; // 货币
prices: string; // Prices should be a JSON string
}

@ccclass('NewComponent')
export class NewComponent extends Component {
@property(Button)
button: Button = null;
@property(Button)
webAppButton: Button = null;
private apiUrl: string;
private invoiceData: InvoiceData;
start() {
// Telegram API URL
this.apiUrl = `https://api.telegram.org/bot${你机器人的token}/sendInvoice`;

// 发票信息
this.invoiceData = {
chat_id: '', // 收款人聊天 ID,前面文章有些如何获取
title: 'Product Title', // 商品名称
description: 'Product Description', // 商品描述
payload: 'UniquePayload', // 唯一的负载
provider_token: '', // 支付提供者的 Token,前面文章有写如何获取
start_parameter: 'start', // 开始参数
currency: 'USD', // 货币
prices: JSON.stringify([{ label: 'Product', amount: 1000 }]), // 商品价格
};
}

update(deltaTime: number) {

}
async openBot () {
try {
const response = await fetch(this.apiUrl, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify(this.invoiceData),
});

const data = await response.json();

if (data.ok) {
console.log('Invoice sent successfully:', data);
const botUsername = ''; // 替换为你的机器人用户名
window.location.href = `https://t.me/${botUsername}`;
} else {
console.error('Failed to send invoice:', data);
}
} catch (error) {
console.error('Error sending invoice:', error);
}
}
}

代码写好后我们就可以来运行程序了,我这里是使用的浏览器预览。点击按钮后会跳转到打开telegram聊天的界面:
跳转界面
这里点击打开Telegram Desktop,如果你安装了telegram就会跳转到和Bot对话框,如下:
如下:
支付机器人
这里可以看见机器人正确的给你发送了一个发票,发票信息由你自己设置,我们现在就可以去测试支付啦。

+