如何解决如何在wso2中设置十六进制类型并从十六进制转换为字符串
我有这样的源代码
<api context="/EtheriumTransaction" name="EtheriumTransaction" xmlns="http://ws.apache.org/ns/synapse">
<resource methods="POST">
<inSequence>
<log>
<property expression="json-eval($)" name="payload"/>
</log>
<!--
<log>
<property expression="json-eval($.id)" name="idusr"/>
</log>
-->
<!-- Get Value of Json -->
<property expression="json-eval($.id)" name="idusr" scope="default" type="STRING"/>
<property expression="json-eval($.type)" name="types" scope="default" type="STRING"/>
<property expression="json-eval($.from_address)" name="address_from" scope="default" type="STRING"/>
<property expression="json-eval($.to_address)" name="address_to" scope="default" type="STRING"/>
<property expression="json-eval($.amount)" name="amount" scope="default" type="STRING"/>
<!-- Convert Amount will send and fee become hex -->
<script language="js">
var log = mc.getServiceLog();
var amountString = mc.getProperty("amount");
var amountFloat = parseFloat(amountString);
var feeString = "0.1";
var feeFloat = parseFloat(feeString);
var newAmount = amountFloat - feeFloat;
log.info("New Amount : " + newAmount );
var feeHex = ("0x" + feeFloat.toString(16));
var newAmountHex = ("0x"+ newAmount.toString(16));
log.info("New AmountHex : " + newAmountHex + "feeHex" + feeHex );
mc.setProperty("newAmountHexs",newAmountHex);
</script>
<log>
<property name="newAmount_hex" scope="default" type="String" expression="$ctx:newAmountHexs" />
</log>
</inSequence>
<outSequence/>
<faultSequence/>
</resource>
</api>
从脚本中我可以获得十六进制值。但是当我想使用wso2属性登录时,我无法获取我的十六进制值。我尝试使用type =“ STRING”时无法获取该值。我的问题是如何在wso2中获取十六进制值?
在我检查问题后,wso2无法为十六进制添加属性..所以我需要转换我的 var newAmountHex =(“ 0x” + newAmount.toString(16));成为字符串值
我已经使用了
var newAmountHexString = hex_to_ascii(newAmountHex);
函数hex_to_ascii(str1)
{
var hex = str1.toString();
var str ='';
for(var n = 0; n 但是我在(var n = 0; n [2020-09-03 04:11:16,006] [EI-Core] INFO - CommonScriptMessageContext New Amount : 9.9
[2020-09-03 04:11:16,008] [EI-Core] INFO - CommonScriptMessageContext New AmountHex : 0x9.e666666666668feeHex0x0.1999999999999a
[2020-09-03 04:11:16,009] [EI-Core] INFO - LogMediator To: /EtheriumTransaction,MessageID: urn:uuid:ccc5bd5d-99d4-4d82-9ae3-87252d5c2af8,Direction: request,newAmount_hex =
解决方法
wso2有时表现得很怪异,但是要在属性中获取值,您需要在要设置为属性的值的末尾添加 .toString()。
mc.setProperty("newAmountHexs",newAmountHex.toString());
对我有用:)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。