更新:---提供的代码修复了图表上的一个问题,该问题阻止了API允许我创建。
public class CustomerPaymentMethodMaint_Extension:PXGraphExtension<CustomerPaymentMethodMaint>
{
#region Event Handlers
protected virtual void CustomerPaymentMethodDetail_RowSelected(PXCache cache, PXRowSelectedEventArgs e, PXRowSelected del)
{
if (del != null)
{
del(cache, e);
}
if (Base.IsContractBasedAPI)
{
CustomerPaymentMethodDetail row = (CustomerPaymentMethodDetail)e.Row;
PXDefaultAttribute.SetPersistingCheck<CustomerPaymentMethodDetail.value>(cache, row, PXPersistingCheck.Nothing);
}
}
#endregion
}
对于我的生活,我无法弄清楚Acumatica希望我发送给它以使用Rest API检索或创建客户付款方式。如果你能指出我正确的方向,我将不胜感激。我们给出的示例非常基础,似乎不包括任何这样的场景。
我认为可以使用标准的“按关键字段检索记录”来检索它,如帮助部分所述。
我尝试过使用以下所有url结构,它或者给我一个“操作不是由于对象的当前状态而导致的valud”错误,或者“多个实体满足条件”。
/entity/Default/6.00.001/CustomerPaymentMethod/{BAccountID}/{PMInstanceID}
/entity/Default/6.00.001/CustomerPaymentMethod/{AcctCD}/{PMInstanceID}
/entity/Default/6.00.001/CustomerPaymentMethod/{BAccountID}
/entity/Default/6.00.001/CustomerPaymentMethod/{PMInstanceID}
/entity/Default/6.00.001/CustomerPaymentMethod/{AcctCD}
在尝试创建付款方式时,我尝试使用以下json Body对CustomerPaymentMethod端点使用“PUT”(我也尝试使用这些字段的soap友好名称而不是UI“CCDNUM”中的标签, “CVV”, “EXPDATE”, “NAMEONCC”)。我收到的错误是“价值”不能为空。
{
"CustomerID" : { value: "0000467" },
"PaymentMethod" : { value: "CC" },
"CustomerPaymentMethodDetail" : [
{
"Description" : { value : "Card Number" },
"Value" : { value : "4111111111111111" },
},
{
"Description" : { value : "Expiration Date" },
"Value" : { value : "102020" },
},
{
"Description" : { value : "Name on the Card" },
"Value" : { value : "Test API" },
}
]
}
答案 0 :(得分:0)
以下是我使用APS(美国支付解决方案)作为处理中心的项目。
使用GET
为特定客户检索一组客户付款方式:
/entity/Default/6.00.001/CustomerPaymentMethod/?$filter=CustomerID+eq+'000000'
使用GET
按ID返回单个客户付款方式:(您可以从上述调用返回的记录中找到ID。)
/entity/Default/6.00.001/CustomerPaymentMethod/guid-from-record?$expand=Details
我认为使用Acumatica API的全新卡片无法创建客户付款方式。我认为您首先必须使用您的处理中心的API创建付款记录。 (在我的情况下,APS,但我认为Authorize.net以类似的方式工作。)然后,一旦处理器上存在付款记录,您就可以使用PUT
在Acumatica中添加客户付款记录以填充付款配置文件ID,是对令牌卡的引用。从那里,您可以使用上面的GET调用返回您需要的内容,以便授权/捕获销售订单。
我现在正在研究这个问题,一旦我了解了更多信息,我就会更新我的评论。
答案 1 :(得分:0)
对我来说以下有效
/entity/Default/{version}/CustomerPaymentMethod/{customerID}/{customerPaymentMethodId}
现在要获取 customerPaymentMethodId
,这可以在扩展 PaymentInstructions
时通过客户端点完成。
但是很遗憾,PaymentInstructions
只返回客户的默认付款方式。