การใช้การชำระเงินแบบสามฝ่ายที่จัดทำโดย .NET ทำให้
Payment
มีความสามารถในการชำระเงินขั้นพื้นฐาน เนื่องจากความต้องการของโครงการ โดยอิงจากPayment
จึงมีการขยายการสนับสนุน Fuyou (Payment.Fuiou
) และ Yinshengbao (Payment.Unspay
) ผู้ใช้ยังสามารถขยายช่องทางการชำระเงินอื่นๆ ตามการชำระเงิน
ฉันไม่รู้ว่านักเรียนที่ชำระเงินแล้วรู้สึกเหมือนกับฉันหรือไม่ ฉันคิดว่าแง่มุมที่เกี่ยวข้องกับการชำระเงินมีดังนี้:
ในระยะสั้นการแบ่งส่วนที่เหมาะสมจะช่วยให้เราทำงานในขั้นตอนถัดไป วิธีลดการเชื่อมต่อระหว่างโมดูลและวิธีเพิ่มความสามารถในการปรับขนาดเป็นหลักการของเรา โมดูลถูกแบ่งออก และหลักการในการทำสิ่งต่าง ๆ ก็ชัดเจนแล้ว ออกไปทำอะไร
นี่คือวิธีการทำสิ่งต่าง ๆ และเราพยายามอย่างดีที่สุดเพื่อให้มันเกิดขึ้น อย่างไรก็ตาม เรามาพูดถึงโครงการนี้กันด้านล่าง
สิ่งที่เรียกว่าความคล่องตัวหมายถึงการตอบสนองสถานการณ์ปัจจุบันและอดีตก่อน และจัดการให้ทันท่วงทีโดยไม่ทิ้งภาระทางเทคนิคใดๆ
นักเรียนที่อ่านซอร์สโค้ดจะพบว่าบันทึกนั้นถูกใส่ความคิดเห็น นี่เป็นเพราะว่าโปรแกรมนี้เป็นเวอร์ชันที่ถูกตัดและมีการพึ่งพาบันทึกของแพลตฟอร์มเป็นอย่างมาก ซึ่งแน่นอนว่าเราสามารถเพิ่มมันเข้าไปเองได้ วิธีการสื่อสารไม่ใช่ 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 ( ) ) ;
ง่ายและสะดวกไหม? แต่... ฉันควรทำอย่างไรหากเปลี่ยนบัญชีนี้เป็น Yinshengbao? หรือควรทำอย่างไรหากเปลี่ยนวิธีการชำระเงินแบบอื่น?
หากคุณพบปัญหานี้เราสามารถสื่อสารได้ ท้ายที่สุดปัญหานี้ก็ไม่ใช่เรื่องยากเพราะว่าพารามิเตอร์นั้นเป็นประเภท
AbsAccount
คุณคิดอย่างไร?