Magicodes.Payは、ボックスのライブラリを統一賃金を作成するために、提供さABPモジュールパッケージ

Magicodes.Payは、ボックスのライブラリを統一賃金を作成するために、提供さABPモジュールパッケージ

簡単な紹介

Magicodes.Payは、ライブラリは、関連するライブラリは、.NETの標準ライブラリを使用して記述され、統一された支払心レビン技術チームで、.NET Frameworkおよび.NETのコアをサポートしています。ABP利用可能になりましパッケージモジュールボックスのサポート。

ナゲット

新的包

 

 

非推奨パッケージ、退職

 

 

主な機能

Magicodes.Payは、ライブラリは、関連するライブラリは、.NETの標準ライブラリを使用して記述され、統一された支払心レビン技術チームで、.NET Frameworkおよび.NETのコアをサポートしています。ABP利用可能になりましパッケージモジュールボックスのサポート。現在、以下の支払方法や機能をサポートしています。

  • アリペイ

    • APP有料

    • WAP有料

  • アリペイ国際支払い

    • サポートスプリット

  • マイクロチャネルの有料

    • アプレット有料

    • APP有料

    • オーダートラッキング

    • コーポレート・ペイメント(引き出し)

    • 払い戻しのリクエスト

    • 普通の赤い封筒

  • コミュニケーション支払い

    • アプレット有料

  • コールバック統一決済処理

  • サポートログ機能注入(ライブラリの支払いに依存しません)

  • 支払配置機能は、異なるシナリオに適用されるカスタム構成取得ロジックをサポートするために、注入をサポートするために、(コンフィギュレーションファイルから、たとえば、ユーザ設定は、コンフィギュレーション、またはマルチテナントサポートを得るために)

  • 以下のために提供ABPモジュールパッケージは、依存モジュールを追加し、すぐに使用することができます。含みます:

    • 有料チャンネル登録(IPaymentRegister)

    • ペイコールバックロジック処理(IPaymentCallbackAction)

    • ユニファイド決済サービスの実装(IToPayService)

    • ユニファイド決済サービスパッケージ(IPayAppServiceを参照してください)

    • 支払マネージャパッケージ(IPaymentManager)であって、

    • トランザクションログを包装、クライアント情報を自動的に記録し、自動記録と例外処理

    • ただ、複数の決済チャネルをサポートできるコールバック・ロジックを書きます

    • ビジネスサポートより大きな長パラメータ(500)

開始

あなたは、使用するシンプルなABP関連モジュールを使用する場合は、特にユニットテストの準備に関連し参照することができます。主に以下の手順で:

  1. ABPを、対応するNugetパッケージ参照は、支払いの支払いのみのパッケージを参照する場合にのみ支払われます。賃金への通信の下には、例えば、我々はこのプロジェクトでは、このパッケージを参照する必要があります。

  2. ABP工学(AbpModule)「AbpAllinpayModule」に加え依存などのモジュールの依存関係に対応するモジュールを追加します。

[DEPENDSON(typeof演算(AbpAllinpayModule))]
  1. DbContextでDbSetは、(成功または異常のためかどうか)の支払いプロセスを通じて名「TransactionLogs」を追加し、トランザクション・ログに記録されます。トランザクションログは、クライアント情報、トランザクションパラメータ、カスタムパラメータ、および例外情報として、トランザクション処理の情報を記録します。だから我々は、EFのためTRANSACTIONLOGのサポートを追加する必要があります。次のように完全なコード必要がDbContextに追加します:

公共 DbSet <TRANSACTIONLOG> TransactionLogs { 取得しますセット ; }
  1. サインコールバックロジック我々は、書き込みカスタムコールバック・ロジックに「IPaymentCallbackAction」インタフェースを実装する必要があります。次の例に示すように:

パブリック クラスTestPaymentCallbackAction:IPaymentCallbackAction
    {
        ///  <要約> 
        /// ビジネスキー
         ///  </要約> 
        公共の 文字列のキー{ GETSET ;} = " 料金の支払い" 

        ///  <要約> 
        /// 执行回调
         ///  </要約> 
        ///  <戻る> </戻り> 
        パブリック 非同期タスク処理(IUnitOfWorkManagerたUnitOfWork、TRANSACTIONLOG TRANSACTIONLOG)
        {
            VARデータtransactionLog.CustomData.FromJsonString = <a JObject> ();
             // サービス処理

            await Task.FromResult(0 )。
        }
    }

キーノート繰り返しません。

  1. 血管登録したコールバック・ロジック

私たちは公共のアセンブリでコールバックのロジックを記述して、登録するには、次のコードを使用することができます。

IocManager.IocContainer.Register(
                 // カスタム支払いコールバックロジック登録 
                Classes.FromAssembly(typeof演算(ApplicationCoreModule).GetAssemblyを())
                    .BasedOn <IPaymentCallbackAction> ()
                    .LifestyleTransient()
                    .Configure(成分 => component.Named(component.Implementation.FullName))
                    .WithServiceFromInterface()
            );

上記方法に加えて、我々はまた、IPaymentManagerがRegisterCallbackAction法により登録されたコールバックカスタムロジックにオブジェクトを注入することができます。

  1. 支払いを開始

IPayAppServiceは、コンテナを介して取得した後、支払い方法が可能呼び出します。パッケージングは​​、それ自体が:

公共の 非同期タスク< オブジェクト > お支払い(PaymentInput入力)
        {
            リターン のawait _payAppService.Pay(PayInputBase()
            {
                ボディ = $ " {input.Name} {} input.ChargeProjectName " 
                CustomData = input.ToJsonString()、
                キー = 料金賃金へ
                OpenIDを = input.OpenId、
                件名 = input.ChargeProjectName、
                TotalAmount = input.Amount、
                PayChannel = input.PayChannel
            });
        }

IPayAppServiceで統一支払いには、以下のような利点があります。

  • 統一された支払い(Alipayのかを様々なエンドマイクロチャネル支払い、統一することができます)

  • トランザクションログを自動的に記録し、関連する処理ロジック

  • カスタムデータ依存のトランザクションログ保管、決済チャネルの独立したので、ご入金チャネルサポートサービスパラメータ、および、より多くのカスタム・データ・ストレージをサポートしています

ABP非統合

封入または関連モジュールABP履歴コードを参照します。

公式の加入数

ウォッチ「ジミーバックルチャット技術」サブスクリプション数の無料アクセス:

  • 最新の記事、チュートリアル、ドキュメント

  • ビデオチュートリアル

  • 基本無料ライセンス

  • テンプレート

  • ソリューション

  • プログラミングのアイデアやコンセプト

公式ブログ/文書ステーション

他のオープンソースのライブラリアドレス

 

おすすめ

転載: www.cnblogs.com/codelove/p/11870743.html