Payment
、.NETPayment.Fuiou
提供する 3 者間決済を使用して、プロジェクトPayment.Unspay
ニーズに応じて、Payment
に基づいて基本的な支払い機能を提供します。ユーザーは、支払いに基づいて他の支払いチャネルを拡張することもできます。
支払いをしたことのある学生が私と同じように感じるかどうかはわかりませんが、支払いに関しては次のような側面があると思います。
つまり、合理的な分割が次のステップでの作業に役立ちます。モジュール間の結合をどのように減らし、拡張性を高めるかが私たちの原則であり、物事を行うための原則はすでに明確になっていると思います。どうするか。
これが物事のやり方であり、私たちはそれを実現するために最善を尽くしていますが、その結果は次のとおりです。
いわゆるアジャイルとは、まず現状と過去を満たし、技術的負債を残さずにタイムリーに整理することを意味します。
ソース コードを読むと、ログがコメント化されていることがわかります。これは、このプログラムがカット バージョンであり、プラットフォーム ログに強く依存しているためです。もちろん、これは自分で追加できます。通信メソッドは http ではありません。現時点では、ICommunicate の別の層について説明します。
原则是一样的,但是富有很强的灵活性,使我们所需掌握的
。
変数パラメータを例に挙げます。
/// <summary>
/// 支付基础参数
/// </summary>
public abstract class BaseParemetor : AbsAccount
{
#region Abstract Method
/// <summary>
/// 获取格式数据
/// </summary>
/// <returns></returns>
public abstract IDictionary < string , string > GetFormatData ( ) ;
/// <summary>
/// 获取访问的路径
/// </summary>
/// <returns></returns>
public abstract string GetRequestUrl ( ) ;
#endregion
}
public class FuiouParemetor : BaseParemetor
{
.. . .. .
/// <summary>
/// 获取签名数据
/// </summary>
/// <returns></returns>
public virtual string GetSignature ( )
{
.. . .. .
}
/// <summary>
/// 获取富有格式数据
/// </summary>
/// <returns></returns>
public override IDictionary < string , string > GetFormatData ( )
{
.. . .. .
}
public override string GetRequestUrl ( )
{
.. . .. .
}
.. . .. .
}
/// <summary>
/// 参数:42 商户P2P网站免登录用户更换银行卡接口
/// </summary>
public class ChangeCardParemetor : FuiouParemetor
{
/// <summary>
/// 个人用户
/// </summary>
[ Paremetor ( "login_id" ) ]
public string User { get ; set ; }
/// <summary>
/// 商户返回地址
/// </summary>
[ Paremetor ( "page_notify_url" ) ]
public string NotifyUrl { get ; set ; }
/// <summary>
/// 字段
/// </summary>
/// <returns></returns>
protected override string [ ] GetDataFields ( )
{
return new string [ ] { "login_id" , "mchnt_cd" , "mchnt_txn_ssn" , "page_notify_url" , "signature" } ;
}
/// <summary>
/// 获取访问的路径
/// </summary>
/// <returns></returns>
public override string GetRequestUrl ( )
{
return FuiouConfig . ApiAddress [ "Fuyou.ChangeCard.Action" ] ;
}
/// <summary>
/// 设置验证字段
/// </summary>
/// <returns></returns>
protected override IEnumerable < VALIDATE > SetValiDateFields ( )
{
yield return VALIDATE . NOTNULLANDLIMITLENGTH ( this . User , 11 , "用户登录ID" ) ;
yield return VALIDATE . NOTNULLANDLIMITLENGTH ( this . NotifyUrl , 200 , "商户前端接收交易结果地址" ) ;
}
}
/// <summary>
/// 银生宝基础接口
/// </summary>
public class UnspayParemetor : BaseParemetor
{
.. . .. .
/// <summary>
/// 获取签名数据
/// </summary>
/// <returns></returns>
public virtual string GetSignature ( )
{
.. . .. .
}
public override IDictionary < string , string > GetFormatData ( )
{
.. . .. .
}
.. . .. .
}
var response = new Provider ( ) . Process ( new Payment . Fuiou . Paremetors . ChangeCardParemetor ( ) ) ;
シンプルで便利ですか?しかし、このアカウントを yingshengbao に変更したらどうすればよいでしょうか?または、別の支払い方法に変更する場合はどうすればよいですか?
この問題が見つかったら、結局のところ、パラメータは
AbsAccount
型なので、この問題は難しくありません。どう思いますか?