本文档展示了如何改进支付宝收款信息提取和处理的代码。改进后的代码增加了对“成功收款”状态的判断,确保只有在成功收款的情况下才提取金额并进行后续操作。
首先,代码在原有“通过扫码向你付款”的判断条件下,添加了对“成功收款”字符串的判断。 这通过indexOf()方法实现,如果找不到“成功收款”字符串,则跳转到cond_fd。
<code class="java">if-ne v8, v11, :cond_d3
const-string v8, "成功收款"
invoke-virtual {v0, v8}, Ljava/lang/string;->indexof(ljava/lang/string;)i
move-result v8
if-eq v8, v11, :cond_fd</code>接下来,代码调用getMoney(Ljava/lang/String;)Ljava/lang/String;方法从输入字符串v0中提取金额,并将其存储在v3中。如果v3为空,则跳转到cond_fe。
<code class="java">:cond_d3
invoke-static {v0}, Lcom/vone/vmq/NeNotificationService2;->getMoney(Ljava/lang/String;)Ljava/lang/String;
move-result-object v3
if-eqz v3, :cond_fe</code>如果提取到金额,代码会打印日志信息,显示“支付宝到账”以及具体的金额。然后,代码将金额转换为double类型,并调用appPush(ID)方法,将金额和类型代码2传递给后续处理模块。
<code class="java">iget-object v8, p0, Lcom/vone/vmq/NeNotificationService2;->TAG:Ljava/lang/String;
new-instance v9, Ljava/lang/StringBuilder;
invoke-direct {v9}, Ljava/lang/StringBuilder;-><init>()V
const-string v10, "onAccessibilityEvent: 匹配成功: 支付宝 到账 "
invoke-virtual {v9, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v9
invoke-virtual {v9, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v9
invoke-virtual {v9}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v9
invoke-static {v8, v9}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
const/4 v8, 0x2
invoke-static {v3}, Ljava/lang/Double;->valueOf(Ljava/lang/String;)Ljava/lang/Double;
move-result-object v9
invoke-virtual {v9}, Ljava/lang/Double;->doubleValue()D
move-result-wide v10
invoke-virtual {p0, v8, v10, v11}, Lcom/vone/vmq/NeNotificationService2;->appPush(ID)V</code>
这段代码增强了支付宝收款信息处理的可靠性,只在确认“成功收款”后才处理金额信息,避免了误判和错误处理。 需要注意的是,getMoney方法的具体实现未在此提供,其正确性直接影响整个代码的准确性。
以上就是支付宝收款信息如何才能准确提取并处理?的详细内容,更多请关注php中文网其它相关文章!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号