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

PHP支付回调:如何从merchant_data嵌套数组提取字段保存到TXT

如何从支付平台回调的嵌套JSON中提取指定字段并保存到TXT文件?

我来帮你搞定这个问题!你已经成功获取到支付平台的回调数据并能保存全部内容了,接下来只需要对merchant_data这个嵌套的JSON字符串做额外解析,就能提取出你需要的first name和phone值啦。

具体步骤说明:

  1. 解析嵌套的merchant_data字符串:因为merchant_data本身是JSON格式的字符串,所以需要用json_decode()再次解析成数组,才能遍历提取里面的字段。
  2. 遍历数组找到目标字段:可以通过label(比如first_name、phone)或者name来匹配对应的条目,取出value值。
  3. 将提取的值写入TXT文件:把拿到的first name和phone整理成合适的格式,用file_put_contents()写入文件即可。

完整代码示例:

// 获取回调数据
$json = file_get_contents('php://input');
$obj = json_decode($json, true);

// 解析merchant_data这个嵌套的JSON字符串
if (!empty($obj['merchant_data'])) {
    $merchantData = json_decode($obj['merchant_data'], true);
    
    // 初始化要提取的变量
    $firstName = '';
    $phone = '';
    
    // 遍历数组,匹配目标字段
    foreach ($merchantData as $item) {
        // 注意你提供的示例里label是"fist_name"(少了个r),如果是拼写错误记得改成"first_name"
        if ($item['label'] === 'fist_name') { 
            $firstName = $item['value'];
        } elseif ($item['label'] === 'phone') {
            $phone = $item['value'];
        }
    }
    
    // 整理要保存的内容,格式可自定义
    $saveContent = "First Name: {$firstName}\r\nPhone: {$phone}\r\n\r\n";
    
    // 写入TXT文件,文件名可按需修改
    file_put_contents('user_info.txt', $saveContent, FILE_APPEND | LOCK_EX);
}

小提醒:

  • 检查你提供的示例数据里label的拼写:"label":"fist_name"可能是first_name的笔误,要是实际回调数据里是正确拼写,记得把代码里的匹配值改成first_name,不然会匹配不到哦。
  • 加了!empty($obj['merchant_data'])的判断,避免merchant_data为空时触发解析报错。
  • 保存的内容格式和文件名都可以根据你的实际需求调整,比如改成逗号分隔的CSV格式也很方便。

内容的提问来源于stack exchange,提问作者Yrtymd

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:18:50