h5嵌入鸿蒙,h5跳到支付宝沙箱版本支付页面时,JSON.parse又报错了,此处有2种解决方式:

方法一:JSON.parse之前将字符串特殊字符处理下

const responseString = responseStr.indexOf("payUrl") == -1 ? responseStr.replace(/\n/g, "\\n") :
    responseStr.replace(/([{,]\s*"payUrl"\s*:\s*")(.*?)("\s*[,}])/gs, (match, prefix, content, suffix) => {
      const escaped = content
          .replace(/\\/g, '\\\\')
          .replace(/"/g, '\\"')
          .replace(/\n/g, '\\n')
          .replace(/\r/g, '\\r')
          .replace(/\t/g, '\\t');
      return `${prefix}${escaped}${suffix}`;
    });

方法二:后台base64处理支付宝返回的payUrl字符串,前端再decode处理

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐