【发布时间】:2014-10-31 00:09:12
【问题描述】:
我正在尝试使用 Acumatica Web 服务 API 创建销售订单。我已经能够通过除付款设置之外的所有必填字段。我们的安装使用 Authorize.NET (PX.CCProcessing.AuthorizeNetTokenizedProcessing) 插件。是否可以通过 API 与 Authorize.NET 加载项进行交互,方法是创建新的付款方式并授权付款,以便员工可以在 Acumatica 内处理订单并在那里获取付款。
下面是我用来创建销售订单的代码。我不确定用于通过 API 本身激活“创建新付款配置文件 ID”操作的结构。通过 GUI,它会打开一个弹出窗口,将卡复制到 Authorize.Net 并在 Acumatica 中保存支付配置文件 ID 记录。
SO301000Content SO301000 = context.SO301000GetSchema();
context.SO301000Clear();
SO301000Content[] SO30100content = context.SO301000Submit
(
new Command[]
{
//add header info
new Value { Value = "SO", LinkedCommand = SO301000.OrderSummary.OrderType },
new Value { Value = "<NEW>", LinkedCommand = SO301000.OrderSummary.OrderNbr },
new Value { Value = "999999", LinkedCommand = SO301000.OrderSummary.Customer },
//add line items
SO301000.DocumentDetails.ServiceCommands.NewRow,
new Value { Value = "SS1121", LinkedCommand = SO301000.DocumentDetails.InventoryID },
new Value { Value = "2", LinkedCommand = SO301000.DocumentDetails.Quantity },
SO301000.DocumentDetails.ServiceCommands.NewRow,
new Value { Value = "SS1122", LinkedCommand = SO301000.DocumentDetails.InventoryID },
new Value { Value = "2", LinkedCommand = SO301000.DocumentDetails.Quantity },
SO301000.DocumentDetails.ServiceCommands.NewRow,
new Value { Value = "SS1123", LinkedCommand = SO301000.DocumentDetails.InventoryID },
new Value { Value = "2", LinkedCommand = SO301000.DocumentDetails.Quantity },
//add shipping information
new Value { Value = "True", LinkedCommand = SO301000.ShippingSettingsShipToInfoOverrideContact.OverrideContact },
new Value { Value = "DEMO CHURCH SHIP", LinkedCommand = SO301000.ShippingSettingsShipToInfoOverrideContact.BusinessName },
new Value { Value = "True", LinkedCommand = SO301000.ShippingSettingsShipToInfo.OverrideAddress },
new Value { Value = "123 TEST STREET", LinkedCommand = SO301000.ShippingSettingsShipToInfo.AddressLine1 },
new Value { Value = "BUFORD", LinkedCommand = SO301000.ShippingSettingsShipToInfo.City },
new Value { Value = "GA", LinkedCommand = SO301000.ShippingSettingsShipToInfo.State },
new Value { Value = "30519", LinkedCommand = SO301000.ShippingSettingsShipToInfo.PostalCode },
new Value { Value = "FREESHIP", LinkedCommand = SO301000.ShippingSettingsShippingInformation.ShipVia },
//add totals
new Value { Value = "10.00", LinkedCommand = SO301000.Totals.PremiumFreight },
new Value { Value = "94.0000", LinkedCommand = SO301000.Totals.PackageWeight },
//add payment
SO301000.Actions.Save,
SO301000.OrderSummary.OrderNbr
}
);
新代码错误 - 我现在可以插入客户付款记录,但在尝试将该卡插入现有销售订单时收到错误消息。
这是我的代码:
SO301000Content SO301000 = context.SO301000GetSchema();
context.SO301000Clear();
SO301000Content[] SO30100content = context.SO301000Submit
(
new Command[]
{
//add header info
new Value { Value = "SO", LinkedCommand = SO301000.OrderSummary.OrderType },
new Value { Value = "000129", LinkedCommand = SO301000.OrderSummary.OrderNbr },
//add payment
new Value { Value = "VISA", LinkedCommand = SO301000.PaymentSettings.PaymentMethod },
new Value { Value = "VISA:****-****-****-7261", LinkedCommand = SO301000.PaymentSettings.CardAccountNo },
SO301000.Actions.Save
}
);
如果有人有任何想法,我将不胜感激。谢谢。
【问题讨论】:
-
您能否提供示例源代码来说明您在做什么,并详细说明您遇到的错误?
-
我已编辑我的帖子以包含我当前用于创建新销售订单的代码。我还没有真正收到错误,因为我不确定添加卡和通过 Authorize.NET 插件连接它的步骤。
-
谢谢,我正在努力:)
-
Josh:我遇到了类似的问题。在你的案子中你最终做了什么?
标签: acumatica