You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PHP中延迟特定代码行解决USSD应用支付提示冲突

解决USSD支付提示与成功消息冲突的延迟方案

问题核心是支付提示的curl请求与成功消息发送过于频繁,导致手机优先接收了成功消息而忽略支付提示。你可以通过在输出成功消息后延迟几秒再发起支付请求来避免冲突。

具体实现步骤

在PHP中可以使用sleep()函数实现延迟,建议设置3-5秒的延迟(可根据实际测试调整最优时长),确保成功消息完全被手机接收后再发送支付提示。

修改后的代码示例

$transaction->updateTransactionDetails($transactionId, $reference, $request_id, SESSION_ID, MSISDN);                
echo $RESPONSE_DATA = show("A Payment Prompt of GHS " . $totalAmount . " has been sent to your phone.", "end");

// 延迟3秒,避免与成功消息冲突
sleep(3);

$push_payment = $payment->momoPrompt($totalAmount,'MTN_MONEY',MSISDN,$reference, $request_id, $transactionId);

注意事项

  • 调整延迟时长:建议测试2-5秒的不同时长,找到既不影响用户体验又能避免冲突的最优值
  • 服务器超时设置:确保PHP的max_execution_time配置足够覆盖延迟时间+请求处理时间,避免会话中途中断
  • USSD会话保持:确认你的USSD服务提供商允许会话短暂挂起,避免延迟期间会话被强制关闭

内容的提问来源于stack exchange,提问作者Solomon Addai-boakye

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 19:51:20