首页 > 解决方案 > 元素 transactionRequest 具有无效的子元素 lineItems

问题描述

我正在尝试使用 Accept.js 向 Authorize.Net 发送付款请求,
他们要求“lineItems”看起来像这样:

"lineItems": {
    {
        "lineItem": {
            "itemId": "item1",
            "name": "item1",
            "description": "item1",
            "quantity": "1",
            "unitPrice": "10"
        }
    },
    {
        "lineItem": {
            "itemId": "item2",
            "name": "item2",
            "description": "item2",
            "quantity": "1",
            "unitPrice": "10"
        }
    }
},

问题是我将每个 lineitem 设置为一个数组,
并且从一个数组构建 json 会产生一个带有方括号的 json:

"lineItems": [
    {
        "lineItem": {
            "itemId": "item1",
            "name": "item1",
            "description": "item1",
            "quantity": "1",
            "unitPrice": "10"
        }
    },
    {
        "lineItem": {
            "itemId": "item2",
            "name": "item2",
            "description": "item2",
            "quantity": "1",
            "unitPrice": "10"
        }
    }
],

得到以下错误:

元素 transactionRequest 具有无效的子元素 lineItems,

知道如何解决这个问题吗?

标签: javascriptjsonauthorize.netaccept.js

解决方案


改变:

"lineItems": [
    {
        "lineItem": {
            "itemId": "item1",
            "name": "item1",
            "description": "item1",
            "quantity": "1",
            "unitPrice": "10"
        }
    },
    {
        "lineItem": {
            "itemId": "item2",
            "name": "item2",
            "description": "item2",
            "quantity": "1",
            "unitPrice": "10"
        }
    }
],

至:

"lineItems":
 {
    "lineItem": [
        {
            "itemId": "item1",
            "name": "item1",
            "description": "item1",
            "quantity": "1",
            "unitPrice": "10"
        },
        {
            "itemId": "item2",
            "name": "item2",
            "description": "item2",
            "quantity": "1",
            "unitPrice": "10"
        }
    ]
},

推荐阅读