Note
Dynamics 365 Commerce による Retail Interest Group は Yammer から Viva Engage に移行しました。 新しい Viva Engage コミュニティにアクセスできない場合は、このフォーム (https://aka.ms/JoinD365commerceVivaEngageCommunity) に入力して追加し、最新のディスカッションに参加してください。
この記事では、Dynamics 365 Commerceでの注文請求の一部としてのインクリメンタル キャプチャの既定のサポートについて説明します。 また、Dynamics 365 Payment Connector for Adyen の増分キャプチャを有効にする方法と、支払いソフトウェア開発キット (SDK) を使用してパートナーの支払いコネクタに増分キャプチャを追加する方法についても説明します。
増分キャプチャを有効にすると、複数の請求書で時間の経過と共に満たされる注文は、複数の請求書とキャプチャされた支払に対する元の承認を参照します。 このアプローチは、複数の請求書で注文を処理するための従来のサポートとは対照的です。これにより、注文の一部が満たされるたびに新しい承認が取得され、残高が変更されます。
Adyen の Dynamics 365 Payment Connector では、POSやコマース本社で注文を処理する際に、標準でインクリメンタルキャプチャがサポートされます。
多くの加盟店は、注文を複数の出荷で処理しています。 既定では、複数の出荷に履行される注文に対してクレジット カード支払を処理するための最初から用意されているプロセスは、出荷が請求されると支払を取得し、出荷が必要な残りの品目の残高に新しい支払認証を取得します。 この処理によって、支払取得が支払プロセッサ全体で一貫してサポートされることが保証されます。
ただし、いくつかの欠点もあります。 たとえば、承認を部分的にキャプチャし、未払い残高の新しい承認を作成すると、古い承認と新しい承認が重複する可能性があります。 この場合、顧客の支払カードに対して注文合計を超えるオープン承認が表示される可能性があります。 このような状況では、クレジット カードの未決済残高を超える承認が発生したり、カード発行者が不正使用の疑いによってカードの処理をブロックしたりする可能性があります。
これらの問題に対処するために、Adyen および payments SDK 用の Dynamics 365 Payment Connector に増分キャプチャ サポートが導入されました。 プロセッサが増分キャプチャをサポートしている場合は、注文フルフィルメントの過程で 1 回の承認に対して複数回キャプチャするように支払いコネクタを更新できます。
次の図は、1 つの承認に対して複数回の取得が行われる場合の、さまざまな支払取得フレームワークの違いを示しています。
本社請求 (つまり、本社での注文処理の一部として発生する請求) の増分取得のサポートは、Commerce バージョン 10.0.13 の支払 SDK に最初に追加されました。 Commerce バージョン 10.0.18 では、SDK を介した増分キャプチャのサポートが本社外のチャネルに拡張されました。 ネットショップ、ストア コマース、コール センターの場合、この延長サポートは、新しい注文に対して作成された承認を SupportsMultipleCaptures としてマークできることを意味します。 後でこれらの注文を本社または Store Commerce で請求する場合は、後続の請求書の支払いをキャプチャするときに、支払いをキャプチャし、参照用の元の承認を保持できます。
増分取得を有効にする
前提条件となる機能
増分キャプチャを有効にする前に、次の機能を有効にします。
| 機能名 | Description |
|---|---|
| コマースの統一支払転記仕訳帳の既定値 | この機能は、コールセンター、POS、または電子商取引チャネルを介して作成された注文に対して、ビジネス ロジックが顧客支払仕訳帳と顧客返金仕訳帳を作成する方法を変更します。 |
| オムニ チャネル支払 | この機能を使用すると、「オンラインで購入し、店舗で受け取る」 (BOPIS) などのオムニチャネルの決済シナリオを有効化できます。 詳細については、オムニチャネル決済の概要 を参照してください。 |
| 請求に対する支払保護の重複 | この機能は、請求書発行のシナリオで重複した決済の保護を可能にします。 コマースの支払い機能は、請求シナリオでのカスタマイズに影響を与える可能性があります。 組織に請求のカスタマイズがある場合は、運用環境でコマース支払い機能を有効にする前に、カスタマイズをリファクタリングしてください。 |
| 複数のキャプチャの払戻を有効にする | この機能を使用すると、注文に対して複数のリンクされた払戻を実行する機能が改善されます。 |
| 認証の有効期限が切れたクレジットカードの決済明細行を手動で無効化する | この機能により、決済明細行の期限が切れた場合に手動で削除することができ、承認を更新しません。 |
| オムニチャネル Commerce 注文支払。 | この機能により、チャネル間の支払を合理化し、コール センター内で店舗および POS の注文の支払を編集できます。 前述の機能はこの機能の前提条件なので、この機能を最後に有効にする必要があります。 詳細については、オムニチャネル Commerce 注文支払 を参照してください。 |
「クレジット カードの増分取得をサポートする機能拡張」機能を有効にする
この機能はもともと、payments SDK を介した本社請求の増分キャプチャのために導入されました。 また、Dynamics 365 Payment Connector for Adyen とすべてのチャネルを通じて増分キャプチャのサポートを有効にするように拡張されました。
Commerce 本社で "増分クレジット カードキャプチャをサポートする機能拡張" 機能を有効にするには、次の手順に従います。
- システム管理者 > ワークスペース > フィーチャー管理 の順に移動します。
- すべてタブを選択すると、使用可能なすべての機能が表示されます。
- クレジット カードの増分取得をサポートする機能拡張を検索します。
- 機能を選択し、今すぐ有効化を選択します。
クレジット カード認証パラメーターを設定する
本社でクレジット カード承認パラメーターを設定するには、次の手順に従います。
- 売掛金勘定 > 設定 > 売掛金勘定パラメーター に移動します。
- 左側のナビゲーション ウィンドウで、クレジット カード を選択します。
- 出荷配送情報を設定 FastTab の 設定 で、クレジット カード認証 オプションが はい に設定されていることを確認します。 [いいえ] に設定すると、増分キャプチャ機能が正しく機能しません。
Adyen 向け Dynamics 365 Payment Connector で増分取得を有効にする
"増分クレジット カード キャプチャをサポートする拡張性" 機能を有効にするだけでなく、コネクタが使用されるすべてのチャネルの Dynamics 365 Payment Connector for Adyen マーチャント プロパティで、[ 要求保護を有効にする] プロパティの値を True に設定します。 値を False に設定するか、空白のままにした場合、コネクタに対して増分キャプチャは有効になりません。 プロパティを True に設定すると、要求の重複を防ぐために、追跡 ID が支払いプロバイダーに要求に追加されます。 パートナー支払コネクタの追跡 ID のサポートについては、「パートナー支払いコネクタの 取り込み増分キャプチャ 」セクションで説明されています。
一部の支払方法では、増分取得がサポートされていません。 これらの支払い方法は、Dynamics 365 Payment Connector for Adyen マーチャント プロパティの [非増分キャプチャ支払い方法 ] フィールドで構成できます。 このフィールドで設定する値は、Adyen が承認応答でカードの種類を識別するために使用する "支払方法バリアント/カードの種類" 文字列と一致する必要があります。 支払い方法のバリアント文字列は、 Adyen の PaymentMethodVariant ページで確認できます。 増分キャプチャから除外するカードの種類が複数ある場合は、セミコロンで区切ります。
増分取得をサポートしない支払方法バリアントの例の 1 つが Interac です。 Adyen のドキュメントでは、Interac 支払方法バリアントに対して一覧表示される文字列は interac です。 Interac を受け入れるカナダのマーチャントの支払いサービスを構成する場合は、コネクタ マーチャント プロパティの "非増分キャプチャ支払い方法" の一覧にこの支払い方法のバリエーションを追加します。
Dynamics 365 Payment Connector for Adyen の増分キャプチャを有効にする販売者は、販売者アカウントで allowMultiplePartialCapture フラグが [はい ] に設定されていることを確認するために、Adyen に問い合わせる必要もあります。 このフラグがマーチャント アカウント レベルで有効になっていない場合、請求時のキャプチャ ロジックは、従来のサポートされているフローにフォールバックします。
パートナー支払いコネクタのインクリメンタルキャプチャ導入
パートナーの支払いコネクタに対する本社請求の一部としての増分キャプチャのサポートを受け入れ、すべてのチャネルで増分キャプチャをサポートするには、Commerce バージョン 10.0.18 で提供されている payments SDK にアップグレードします。
IPaymentReferenceProvider
このバージョンの支払 SDK は、IPaymentReferenceProvider インターフェイスを追加します。 このインターフェイスを使用すると、各要求と応答に PaymentTrackingID 値を 含めることができます。 支払い要求を追跡するには、 PaymentTrackingID 値を使用します。 また、バックオフィスの請求要求とプロセッサの間で、要求が再送信される前に重複する要求がキャッチされることが保証されます。 このようにして、重複する支払を防ぐことができます。
次に、支払 SDK の SampleConnector.cs ファイルのサンプル実装を示します。
#region ITrackingSupport
/// <summary>
/// Get the payment provider reference to safeguard against duplicate requests.
/// </summary>
/// <param name="command">The payment operation that will use the tracking ID.</param>
/// <param name="amount">The payment transaction amount.</param>
/// <returns>Returns the PaymentTransactionReferenceData.</returns>
/// <remarks>List of supported commands can be seen in the constants defined in <see cref="Microsoft.Dynamics.Retail.PaymentSDK.Portable.Constants.SupportedCorrelationCommands"/></remarks>
public PaymentTransactionReferenceData GetPaymentReferenceData(string command, decimal amount)
{
PaymentTransactionReferenceData paymentTransactionReferenceData = new PaymentTransactionReferenceData();
paymentTransactionReferenceData.Amount = amount;
paymentTransactionReferenceData.Command = command;
paymentTransactionReferenceData.IdFromConnector = Guid.NewGuid().ToString();
paymentTransactionReferenceData.InitiatedDate = DateTime.UtcNow;
return paymentTransactionReferenceData;
}
#endregion
支払 SDK の AuthorizeRequest.cs ファイルの次のサンプルでは、PaymentTrackingID 値を使用します。
authorizeRequest.PaymentTrackingId = PaymentUtilities.GetPropertyStringValue(
hashtable,
GenericNamespace.TransactionData,
TransactionDataProperties.PaymentTrackingId);
複数回の取得のサポート
支払いプロセッサが複数のキャプチャをサポートしている場合は、コネクタからの承認応答の SupportsMultipleCaptures プロパティを True に設定します。 プロパティを False に設定した場合、または指定しない場合、承認は増分キャプチャの対象になりません。 この場合、請求後に新しい残高が発生した場合は、新しい承認が取得されます。
次に、支払 SDK の AuthorizationResponseProperties.cs ファイルのサンプルを示します。
/// <summary>
/// Gets the SupportsMultipleCaptures property.
/// </summary>
public static string SupportsMultipleCaptures
{
get { return "SupportsMultipleCaptures"; }
}
バックオフィス請求プロセスが複数回の取得に対して有効な承認に対して取得すると、取得された合計金額が追跡されます。 取得要求は、完全に取得されるまで、元の承認を引き続き参照します。
売掛金勘定パラメータに従って期限切れになる承認は、増分取得の対象にはなりません。
SupportsMultipleCaptures プロパティはグローバルではありません。 これは承認に固有です。 環境には、増分取得をサポートするコネクタと、それをサポートしないコネクタの両方がある場合があります。
増分取得のユーザー エクスペリエンス
増分取得のユーザー エクスペリエンスは、増分取得が有効になっていない場合のユーザー エクスペリエンスと変わりません。 主な違いは、増分キャプチャが有効な場合、元の承認がまだ有効な場合、注文が部分的に請求された後に新しい承認が取得されないということです。 代わりに、既存の承認が保持され、後続の支払いキャプチャに使用されます。
本社またはプロセッサのポータルで支払いの問題を調査しているユーザーの場合、増分キャプチャ注文は、承認とキャプチャの比率が 1 対 1 の従来のフローとは対照的に、複数の支払いキャプチャがマップされた単一の承認を持っているように見えます。