
适用范围:商城订单与链上交易
讨论区块链商城交易涉及哪些技术概念,首先要明确底层网络。以下围绕以太坊交易机制和ERC-20代币展开,其他网络的账户、费用与确认规则可能不同,也不能据此断定某家商城采用了这些设计。
商城订单表达商品、金额与履约关系;链上交易表达账户发出的状态变更请求。两者需要建立对应关系,一笔链上付款成功,本身不能证明商品已经发出或交付。

账户、签名与交易字段
以太坊交易文档介绍了账户签名、收款地址、金额、nonce和输入数据等要素。签名用于验证授权;nonce用于区分同一账户按序发出的交易;输入数据可用于调用合约。

对应到商城,地址不一定是商户的普通收款账户,也可能是合约地址。理解支付含义,需要同时看接收地址、转移金额及调用内容。有效签名能证明相应密钥授权了交易,却不能单独证明商户身份或商品描述真实。
智能合约与ERC-20金额
智能合约交互可以表达比直接转账更复杂的处理规则,但商城是否具有托管、退款等功能,取决于具体合约实现,不能仅凭“使用区块链”推定。
OpenZeppelin的ERC-20文档说明,同质化代币由合约记录余额,并提供转移等功能。余额和运算使用整数,decimals用于把整数换算成人们看到的小数金额。
因此,商城展示金额与合约中的原始数量需要按同一精度解释。ERC-20转移还应区分交易调用的代币合约地址和代币实际接收地址;交易里的ETH金额不能直接当作代币支付金额。
Gas、执行与确认
Gas衡量交易执行消耗的计算资源,Gas上限与每单位Gas的费用上限是不同参数。交易经广播、区块收录后,还涉及执行结果和最终确定性。
商品价款与网络执行费属于不同概念。商城展示支付状态时,也需要区分已提交、已收录和执行成功:交易哈希只是定位交易的标识,不能单独作为付款完成的证明。
常见问题:查询与授权是否等于支付
查看余额是否必然产生链上费用?通过eth_call进行只读查询通常不需要支付链上Gas;如果相关读取发生在链上交易执行过程中,则会计入执行消耗。
钱包出现签名请求是否表示已经付款?签名只是授权环节,还需结合签名内容及后续执行判断。商城对付款的识别,应对应到正确网络、资产、接收方、金额和执行结果;退款与发货状态则需要各自的业务依据。