Menggunakan pembayaran tiga pihak yang disediakan oleh .NET,
Paymentmenyediakan kemampuan pembayaran dasar. Karena kebutuhan proyek, berdasarkanPayment, dukungan untuk Fuyou (Payment.Fuiou) dan Yinshengbao (Payment.Unspay) diperluas. pengguna juga dapat Memperluas saluran pembayaran lain berdasarkan Pembayaran;
Entahlah apakah mahasiswa yang sudah melakukan pembayaran merasakan hal yang sama dengan saya, menurut saya aspek-aspek terkait pembayaran adalah sebagai berikut:

Singkatnya, pembagian yang masuk akal akan membantu kita bekerja pada langkah berikutnya. Bagaimana mengurangi hubungan antar modul dan bagaimana meningkatkan skalabilitas adalah prinsip kami; modul-modul tersebut dibagi, dan prinsip-prinsip dalam melakukan sesuatu sudah jelas tahu apa yang harus dilakukan.
Ini adalah cara melakukan sesuatu, dan kami mencoba yang terbaik untuk mewujudkannya. Bagaimanapun, efeknya tidak terduga, mari kita bahas proyek ini di bawah;

Yang disebut agile berarti terlebih dahulu memuaskan situasi saat ini dan masa lalu, dan menyelesaikannya tepat waktu tanpa meninggalkan hutang teknis.
Siswa yang membaca kode sumber akan menemukan bahwa log tersebut dikomentari. Hal ini karena program ini adalah versi potongan dan memiliki ketergantungan yang kuat pada log platform metode komunikasinya bukan http, kali ini kita bisa menyebutkan lapisan lain dari ICommunicate,
原则是一样的,但是富有很强的灵活性,使我们所需掌握的!
Ambil parameter variabel sebagai contoh:
/// <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 ( ) ) ;Apakah sederhana dan nyaman? Tapi...? Apa yang harus saya lakukan jika saya mengubah akun ini menjadi Yinshengbao? Atau apa yang harus saya lakukan jika saya mengubah ke metode pembayaran lain?
Kalau ketemu masalah ini kita bisa komunikasikan, lagipula masalah ini tidak sulit, karena parameternya bertipe
AbsAccount, bagaimana menurut anda?