mt 发表于 2019-1-12 21:18:06

Discuz! X3.* 转账积分交易税由转出方支付的实现方式

默认情况下,Discuz! 积分转账时交易税由转入方(接受方)支付,例如积分交易税为10%时,转出100积分,实际到账90积分。如果要使接受方获得100积分,需要提前考虑交易税因素准确计算出转出数量:100÷(1-10%)=111.1111...向上取整112。

为了避免这种不便,我们可以通过以下方式自动计算出转出数量,实现交易税由转出方支付。

1、打开 source/include/spacecp/spacecp_credit_base.php 文件,查找:

        $taxpercent = sprintf('%1.2f', $_G['setting']['creditstax']
在该行后增加一行:

        $taxrate = $_G['setting']['creditstax'] * 1;

2、打开当前模板目录下 home/spacecp_credit_base.htm 文件,查找:

                                                        <input type="text" name="transferamount" id="transferamount" class="px" size="5" style="width: 60px;" value="0" />
将其中的 text 替换为 hidden ;

在该行下方新增一行:

                                                        <input type="text" name="daozhangjine" id="daozhangjine" class="px" size="5" style="width: 60px;" value="0" onkeyup="this.value=this.value.replace(/\D/g,'')" onafterpaste="this.value=this.value.replace(/\D/g,'')" onblur="document.transferform.transferamount.value = Math.ceil(this.value / (1 - $taxrate)); if(this.value > 0){document.getElementById('shijizhifu').innerHTML = '实际支付 ' + document.transferform.transferamount.value + ' {$credit}(含手续费 ' + (document.transferform.transferamount.value - this.value) + ' {$credit})。<br>';}else{document.getElementById('shijizhifu').innerHTML = '';} if(document.transferform.transferamount.value > {echo getuserprofile(extcredits8);} - $_G){document.getElementById('yuebuzu').innerHTML = '<br><font color=red>您的余额不足,请先 <a href=home.php?mod=spacecp&ac=credit&op=buy>充值</a> 后再试。</font>';}else{document.getElementById('yuebuzu').innerHTML = '';}" />
查找:

                                                        <input type="text" name="to" id="to" class="px" size="15" style="width: auto;" />
在其下方新增一行:

                                                        <div style="margin-top:10px;"><font id="shijizhifu"></font>当前余额 <!--{echo getuserprofile(extcredits8);}--> {$credit},<font title="{lang memcp_credits_transfer_min_balance} $_G {$credit}">可用转账余额 {eval $keyongyue = getuserprofile(extcredits8) - $_G; $keyongyue = $keyongyue > 0 ? $keyongyue:'0'; echo $keyongyue;} {$credit}</font>。<font id="yuebuzu"></font></div>
注意:请将第2步中所有 extcredits8 替换为您实际的交易积分编号。
页: [1]
查看完整版本: Discuz! X3.* 转账积分交易税由转出方支付的实现方式