Mithilfe der von .NET bereitgestellten Drei-Parteien-Zahlung bietet
Payment
aufgrund der Anforderungen des ProjektsPayment
eine erweiterte Unterstützung für Fuyou (Payment.Fuiou
) und Yinshengbao (Payment.Unspay
). Benutzer können auch andere Zahlungskanäle basierend auf der Zahlung erweitern;
Ich weiß nicht, ob es Studenten, die bezahlt haben, genauso geht wie mir. Ich denke, die Aspekte im Zusammenhang mit der Zahlung sind wie folgt:
Kurz gesagt, eine vernünftige Aufteilung wird uns im nächsten Schritt helfen, die Kopplung zwischen Modulen zu reduzieren und die Skalierbarkeit zu erhöhen. Ich denke, wir haben bereits herausgefunden, wie wir die Dinge tun herauszufinden, was zu tun ist.
Das ist die Art und Weise, wie wir vorgehen, und wir geben unser Bestes, um dies zu erreichen. Schließlich ist der Effekt unerwartet.
Die sogenannte Agilität bedeutet, zunächst die aktuelle Situation und die Vergangenheit zu befriedigen und sie zeitnah zu klären, ohne technische Schulden zu hinterlassen.
Schüler, die den Quellcode lesen, werden feststellen, dass das Protokoll auskommentiert ist. Dies liegt daran, dass dieses Programm eine starke Abhängigkeit vom Plattformprotokoll hat. Dies ist natürlich sehr einfach und wir können es selbst hinzufügen Die Kommunikationsmethode ist nicht http. Zu diesem Zeitpunkt können wir eine andere Ebene von ICommunicate erwähnen.
原则是一样的,但是富有很强的灵活性,使我们所需掌握的
!
Nehmen Sie als Beispiel die variablen Parameter:
/// <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 ( ) ) ;
Ist es einfach und bequem? Aber...? Was soll ich tun, wenn ich dieses Konto zu Yinshengbao ändere? Oder was soll ich tun, wenn ich zu einer anderen Zahlungsmethode wechsle?
Wenn Sie dieses Problem finden, können wir Ihnen mitteilen, dass dieses Problem nicht schwierig ist, da der Parameter schließlich vom Typ
AbsAccount
ist. Was denken Sie?