外部支払のAPIサポート

25D以降、OCCは、承認または決済を処理するためにOCCを必要とせずに、外部で承認および決済された支払をサポートします。 新しいpaymentGroupType - ExternalPaymentが導入されました。 複数の支払タイプ(カード、ACH、銀行振替、PayPal)を処理でき、カスタム・プロパティをダウンストリーム・アプリケーションにシームレスに渡すことができます。

機能ハイライト

  • 外部承認または決済済支払をサポートします(OCC側の承認は必要ありません)。
  • サブスクリプションのユース・ケース用にトークン化されたカードを受け入れます。
  • 前払入金(AR入金のある販売トランザクション)をサポートします。
  • カード、ACH、銀行振込、PayPalなど、複数の支払タイプをサポートします。
  • 請求先住所、トランザクション日、外部ID、支払ステータスなどの支払詳細を取得して永続化します。
  • CPQなどのダウンストリーム・システムのカスタム・プロパティおよび拡張をサポートします。

この機能により、小売業者はOCCの承認ワークフローをバイパスしながら、OCCを外部支払システムと統合できます。 すでに外部で支払を処理している小売業者に柔軟性を提供し、スムーズな注文発行を実現し、ダウンストリーム・システムが完全な支払コンテキストを受信できるようにします。 承認後の失敗を無視し、カスタム拡張をサポートすることで、業務上の摩擦を軽減し、外部の財務プロセスとの互換性を高めます。

有効化のステップ

  1. 外部Payment Gateway拡張(ExternalPayment.zipなど)を作成して構成します。 支払ゲートウェイ拡張の書式については、「クレジット・カード支払ゲートウェイの作成」の統合の章を参照してください。 ゲートウェイ拡張ディレクトリ構造内の次のJSONファイルを使用して、拡張の動作を構成する様々なプロパティを設定します。 jsonファイルの内容は次のとおりです。
    gateway.json:
    {
      "provider": "External Payment Provider",
      "paymentMethodTypes": [
        "external"
      ],
      "transactionTypes": {
        "external": [
          "authorize"
        ]
      }
    }

    config/config.json:
    {
      "configType": "payment",
      "titleResourceId": "titleLabel",
      "descriptionResourceId": "descriptionLabel",
      "instances": [
        {
          "id": "agent",
          "instanceName": "agent",
          "labelResourceId": "agentInstanceLabel"
        },
        {
          "id": "preview",
          "instanceName": "preview",
          "labelResourceId": "previewInstanceLabel"
        },
        {
          "id": "storefront",
          "instanceName": "storefront",
          "labelResourceId": "storefrontInstanceLabel"
        }
      ],
      "properties": [
        {
          "id": "supportedCustomProperties",
          "type": "stringType",
          "name": "supportedCustomProperties",
          "helpTextResourceId": "supportedCustomPropertiesHelpText",
          "labelResourceId": "supportedCustomPropertiesLabel",
          "defaultValue": "all",
          "required": true
        },
        {
          "id": "paymentMethodTypes",
          "type": "multiSelectOptionType",
          "name": "paymentMethodTypes",
          "required": true,
          "helpTextResourceId": "paymentMethodsHelpText",
          "labelResourceId": "paymentMethodsLabel",
          "defaultValue": "external",
          "displayAsCheckboxes": true,
          "options": [
            {
              "id": "external",
              "value": "external",
              "labelResourceId": "externalLabel"
            }
          ]
        }
      ]
    }

    config/locales/en.json
    {
      "resources": {
        "titleLabel": "External Payment Gateway Config",
        "descriptionLabel": "External Payment Gateway configuration.",
        "paymentMethodsLabel": "Payment Methods",
        "paymentMethodsHelpText": "Select the payment methods.",
        "externalLabel": "External Payment",
        "agentInstanceLabel": "Agent Configuration",
        "previewInstanceLabel": "Preview Configuration",
        "storefrontInstanceLabel": "Storefront Configuration",
        "supportedCustomPropertiesHelpText": "Comma separated Custom Properties to be saved. Use 'all' to indicate all. Ensure not to include sensitive properties.",
        "supportedCustomPropertiesLabel": "Supported Custom Properties"
      }
    }
  2. 拡張子を管理インタフェースにアップロードします。
  3. ゲートウェイを必要とするサイトに対して有効にします。
  4. オーダー・ペイロードに含める必要がある支払配列のサンプル・ペイロードは、次のとおりです。
    {
      "payments": [
        {
          "type": "external",
          "externalSourceId": "xx4736",
          "status": "AUTHORIZED",
          "externalId": "{{externalId}}",
          "externalType": "card",
          "externalSubType": "visa",
          "billTo": {
            "partyId": "1006",
            "customerAccountId": "1006",
            "siteUseId": "1025"
          },
          "customProperties": {
            "nameOnCard": "John",
            "expiryMonth": "12",
            "expiryYear": "2044",
            "cardTokenNumber": "656857436556876",
            "testProperty": "testVal",
            "originalSystemPaymentReference": "ExternalPayment",
            "externalSubType": "visa"
          },
          "billingAddress": {
            "firstName": "Sage",
            "lastName": "Wieser",
            "country": "US",
            "address3": "null",
            "address2": "null",
            "city": "CHATTANOOGA",
            "address1": "301 Summit Hill Drive",
            "postalCode": "37401",
            "companyName": "Computer Service and Rentals",
            "county": "Hamilton",
            "siteId": "1034",
            "setId": "204",
            "state": "TN",
            "id": "110018"
          },
          "seqNum": 0
        }
      ]
    }

ヒントと考慮事項

  • この機能はRest APIでのみ使用できます。 小売業者は、この機能をストアフロントに実装するために、OSFでカスタム・ウィジェットを構築する必要があります。
  • この機能は、マーチャントがOracle CPQとのネイティブ・オーダー統合を使用している場合にのみ使用できます。
  • OCCでは、外部で処理された支払に対して無効または払戻は実行されません。これらはソース・システムで管理する必要があります。
  • 外部システムが正しい支払ステータス(承認済/決済済)をペイロードに送信していることを確認します。
  • カスタム・プロパティを使用して、ダウンストリーム統合(CPQなど)の支払データを拡張します。