Deeplink 调起 tp钱包 使用tron 钱包转账 usdt 和trx

读过tp的开发者文档,示例代码中 是evm的参数,我现在的 功能需求是 在第三方浏览器中 deeplink 唤醒tp钱包,并且调用trc20 的转账,不知道txData这个属性要传递哪些参数,希望官方能给一个demo,转trx和转usdt代币的

1 Like

txData 就是Tron签名的数据体,类似这样:

{
	"visible": false,
	"txID": "7d4a8868a806aaf2a3f5bf23f51667d83bf67bcaf17d3e176a4ce347a2450649",
	"raw_data": {
		"contract": [{
			"parameter": {
				"value": {
					"frozen_duration": 3,
					"frozen_balance": 4000000,
					"owner_address": "41593a115d4e04249a7e4c02a2150b596081b37f9f"
				},
				"type_url": "type.googleapis.com\/protocol.FreezeBalanceContract" *
			},
			"type": "FreezeBalanceContract"
		}],
		"ref_block_bytes": "ebec",
		"ref_block_hash": "83e6e13e48ce9f6c",
		"expiration": 1648893501000,
		"timestamp": 1648893443731
	},
	"raw_data_hex": "0a02ebec220883e6e13e48ce9f6c40c8bcd8cdfe2f5a58080b12540a32747970652e676f6f676c65617069732e636f6d2f70726f746f636f6c2e467265657a6542616c616e6365436f6e7472616374121e0a1541593a115d4e04249a7e4c02a2150b596081b37f9f108092f40118037093fdd4cdfe2f",
	"userTronHeader": true
}
1 Like

文档已经更新。
文档详情见:https://github.com/TP-Lab/tp-wallet-sdk/blob/master/README.md
txData参数见:https://github.com/TP-Lab/tp-wallet-sdk/blob/master/TxData%20Example.md

好多用户反馈点击以后跳转到一个乱码的页面,无法使用,请问一下从哪个版本才开始支持deeplink 拉起转账操作的,我好做个判断

好多用户反馈点击以后跳转到一个乱码的页面,无法使用,请问一下从哪个版本才开始支持deeplink 拉起转账操作的,我好做个判断

1.你说的是ios吗,Android非常早期就已经支持了的
2.乱码的页面长啥样,能否录屏看下,最好提供下复现的链接

TP钱包有没有历史版本可以下载,我 下载来调试一下,我统计了一下看到有好多用户还在使用1.3 1.4的钱包,1.7.0版本以下的用户有差不多200多个人

没有,让用户升级最新版本使用。

升级不了,直接安装会报错说什么签名失败,只能卸载旧版本的再安装最新的,他们有的怕钱包丢失,不敢卸载旧的,

1.6.5版本往下就开始出现这个乱码了

新版本不能覆盖?那么↓↓↓

1.他们现在用的是假的,2.他们新下的是假的。

下载钱包请认准官网:

  1. tokenpocket.pro

  2. tpwallet.io

让你那些覆盖不了的从我上边地址下载覆盖更新,如果更新不了,让他们抓紧转移资产吧,覆盖不了那么100%假钱包。所有假钱包上助记词/私钥都会被盗了。从我上边发的链接里,下载正版钱包,创建新钱包,把资产抓紧转移进去。

另外你尽量推荐那些用假钱包的人买一下硬件,省着以后再用了假钱包被盗资产。

硬件购买:point_right:t2:KeyPal金刚助记词密盒,钱包,周边购买: https://j.youzan.com/5mfCP1 (复制链接微信打开,顺丰快递,速度到家)

这个不去管他了,我遇到一个新的问题,我在使用这种方式调起支付的时候,如果用户点击取消支付,这个时候我的javascript代码要怎么获取他的这个取消操作,我现在是一直用循环去调用后端接口,看看是否有支付成功后的txhash,用户取消支付以后,因为我不知道,所以依然在循环获取结果,直到超时以后才判定他取消支付或者支付失败, 这种用户体验不太好,有没有较好的解决方式,

我们文档里有提到一个 callbackUrl:

callbackUrl string   // dapp server 用于接收操作结果,如果是deeplink或者扫二维码方式拉起钱包操作,想要接收到操作结果,该字段必须提供

你们提供一个https请求,在使用deeplink拉起的时候,callbackUrl的值就是这个https接口,钱包端最终就会把结果通过这个接口post回去

iOS 提示钱包未导入 这个是什么情况,需要怎么解决

const transactionData = {
visible: false,
txID: “0ff31369f276cd2a1f2d0f45274256cccee5095a0f4dc90a3b12af4d5fdded8b”,
raw_data: {
contract: [{
parameter: {
value: {
data: “a9059cbb000000000000000000000000593a115d4e04249a7e4c02a2150b596081b37f9f00000000000000000000000000000000000000000000000000000000000186a0”,
owner_address: “41f90a4115ca0859c0db8415d73b3a22626506cbbe”,
contract_address: “41a614f803b6fd780986a42c78ec9c7f77e6ded13c”
},
type_url: “com/protocol.TriggerSmartContract”
},
type: “TriggerSmartContract”
}],
ref_block_bytes: “865d”,
ref_block_hash: “97a350e4aa8501ef”,
expiration: 1695098259000,
fee_limit: 100000000,
timestamp: 1695098200128
},
raw_data_hex: “0a02865d220897a350e4aa8501ef40b88cebddaa315aae01081f12a9010a31747970652e676f6f676c65617069732e636f6d2f70726f746f636f6c2e54726967676572536d617274436f6e747261637412740a1541f90a4115ca0859c0db8415d73b3a22626506cbbe121541a614f803b6fd780986a42c78ec9c7f77e6ded13c2244a9059cbb000000000000000000000000593a115d4e04249a7e4c02a2150b596081b37f9f00000000000000000000000000000000000000000000000000000000000186a070c0c0e7ddaa31900180c2d72f”
};
const encodedTransactionData = JSON.stringify(transactionData);
console.log("encodedTransactionData = ",encodedTransactionData);
const param = {
callbackUrl: “taaInitData”,
txData: encodedTransactionData,
action: “pushTransaction”,
actionId: “web-db4c5466-1a03-438c-90c9-2172e8becea5”,
// blockchain: “tron”,
blockchains: [{
chainId: “728126428”,
network: “tron”
}],
dappIcon: “icon.png”,
contract:“TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t”,
from: ‘TJk1QkHMWmfYK1jgwFfTzxMcTgXkKk7avF’,
to: ‘TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t’,
dappName: “zs”,
protocol: “TokenPocket”,
version: “2.0”
};
const encodedParam = encodeURIComponent(JSON.stringify(param));
console.log("encodedParam = " + encodedParam);
const deeplinkUrl = tpoutside:\/\/pull.activity?param=${encodedParam}
window.location.href = deeplinkUrl;

你去自己开个帖子,不要在别人帖子下边一个劲留言啊。