2017-09-15 11 views
1

更新:APIが私の作成を許可していなかったグラフの問題を修正するコードを提供しました。私の人生のためにAcumatica Rest 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は私が残りのAPIを使用して、顧客の支払い方法を取得または作成するか、それを送信するために期待しているかを把握することはできません。あなたが正しい方向に私を向けることができれば、非常に感謝しています。私たちが与えた例は非常に基本的なものであり、このようなシナリオをカバーしていないようです。

ヘルプセクションに記載されている標準の「キーフィールドによるレコードの取得」を使用して検索されると仮定します。

私は以下のURL構造体をすべて使用しようとしましたが、「オブジェクトの現在の状態によって操作が重大ではありません」というエラーまたは「複数のエンティティが条件を満たしています」というエラーが表示されます。私は次のようなJSONボディとCustomerPaymentMethodエンドポイントに「PUT」を使用してみました支払い方法を作成しようとしますが

/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} 

は(私も石鹸を使用してみましたUIでこれらのフィールドの代わりに、ラベルのthatsのフレンドリ名「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

私は、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で顧客支払い記録を追加し、トークン化されたカードへの参照です。そこから、上記のGETコールを使用して、販売注文を認証/取得するために必要なものを返すことができます。

私はこれを今作業しています。私がもっと学んだら、私は私のコメントを更新します。

+0

ご返信ありがとうございます。統合処理がオンになっていないため、実際にクレジットカードがシステムに保存されているため、サードパーティAPIを使用して外出することは当てはまりません。私はAcumaticaでチケットを開き、問題を解決するための "修正"を提供しました。 - 元の質問に追加しました – Chris

関連する問題