[英]Need Identical keys in Angular object for payment gateway
我正在AngularJS中構建一個應用程序。 我需要通過Authorize.net網關發送交易數據:
API文檔: http : //developer.authorize.net/api/reference/
我無法發送的交易的唯一部分是lineItems,其中列出了購買中的各個項目。 看起來像這樣:
"lineItems": {
"lineItem": {
"itemId": "1",
"name": "Plates",
"description": "Red Dinnetware Plates",
"quantity": "18",
"unitPrice": "45.00"
},
"lineItem": {
"itemId": "2",
"name": "Cup",
"description": "Plastic Cups",
"quantity": "3",
"unitPrice": "5.00"
}
},
據我所知,除非在對象內部,否則無法在對象中具有多個相同的鍵。 不幸的是,如果Authorize.net網關看到一個數組[],它將踢回一個錯誤。 我嘗試將lineItems編碼為JSON字符串(angular.toJson),但是當放置在對象中時,它將在$ http()發布期間再次將對象重新編碼為Json並插入引號,而不是使用格式正確的Json 。
有任何想法嗎?
示例代碼非常清楚:
var lineItem_id1 = new ApiContracts.LineItemType();
lineItem_id1.setItemId('1');
lineItem_id1.setName('vase');
lineItem_id1.setDescription('cannes logo');
lineItem_id1.setQuantity('18');
lineItem_id1.setUnitPrice(45.00);
var lineItem_id2 = new ApiContracts.LineItemType();
lineItem_id2.setItemId('2');
lineItem_id2.setName('vase2');
lineItem_id2.setDescription('cannes logo2');
lineItem_id2.setQuantity('28');
lineItem_id2.setUnitPrice('25.00');
var lineItemList = [];
lineItemList.push(lineItem_id1);
lineItemList.push(lineItem_id2);
lineItemList
是lineItem
對象的數組。
對於試圖找出Authorize.Net的lineItems的正確JSON格式的其他人,這里就是。 我花了幾個小時試圖在網上沒有運氣的例子。 我終於通過反復試驗使它起作用。
首先,名稱元素是必需的,但描述不是必需的。 項目名稱限制為31個字符。 我所做的工作使用了通用名稱(例如“訂單商品”),然后將實際說明放在description元素中。 lineItem元素是實際數組。 現在是格式示例:
"lineItems": {
"lineItem": [
{
"itemId": "1",
"name": "Plates",
"description": "Red Dinnetware Plates",
"quantity": "18",
"unitPrice": "45.00"
},
{
"itemId": "2",
"name": "Cup",
"description": "Plastic Cups",
"quantity": "3",
"unitPrice": "5.00"
}
]
},
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.