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

VBA调用支付二维码API遇400错误:请求头或JSON格式排查

邮件合并调用支付API生成二维码的400错误排查与解决

我需要为社区成员生成新年缴费提醒的邮件合并信函,计划调用支持HTTP POST请求的服务器API,生成可被手机支付APP识别的预填支付信息二维码。现有基于Excel(搭配Word邮件合并)的VBA代码如下,传入payee参数时可正常获取二维码:

Sub DownloadQRCode(ByVal myURL As String, ByVal LocalFileName As String)
     
Dim msXML As New MSXML2.ServerXMLHTTP60
Dim myStream As New ADODB.Stream

    msXML.Open "POST", myURL, False
    msXML.setRequestHeader "Content-Type", "application/json"
    msXML.setRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64)"
    msXML.send "{""payee"":""987654321""}"
    If msXML.Status = 200 Then
        myStream.Open
        myStream.Type = adTypeBinary
        myStream.Write (msXML.responseBody)
        myStream.SaveToFile LocalFileName, adSaveCreateOverWrite
        myStream.Close
    End If
    Set msXML = Nothing
    Set myStream = Nothing
End Sub

但将msXML.send语句改为msXML.send "{""message"":{""value"":""Sven_Svensson"",""editable"":""false""}}"时,返回400(Bad Request)错误。经排查,问题并非Content-Type请求头设置错误,而是JSON格式及参数有效性存在问题,已解决的错误点包括:

  • 传入的手机号/账号必须是平台认可的有效账号
  • JSON中的布尔值不能加引号,正确写法应为"editable":false
  • 数字类型的参数不能加引号,需以纯数字格式传递
  • 定义JSON数组时必须使用方括号[]包裹,不能误用其他括号

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 02:40:32