谈谈transactionId和out_trade_no每个第三方在线支付系统中都会有至少两类订单号,其一为支付系统的订单号,我们称为transactionId,其二为商户平台的订单号,我们通常称为out_trade_no,这两个号一般用来对账,在第三方支付平台你可以通过这两个订 ...
谈谈transactionId和out_trade_no
每个第三方在线支付系统中都会有至少两类订单号,其一为支付系统的订单号,我们称为transactionId,其二为商户平台的订单号,我们通常称为out_trade_no,这两个号一般用来对账,在第三方支付平台你可以通过这两个订单号来查询订单的状态,而在商户自己的网站后台,也可以查询它的状态,一般地,transactionId由支付系统生成,并在回调时转回给商户;而out_trade_no一般在商户平台生成,自己可以设计自己的规则,然后把这个ID转到第三方支付平台,在支付成功后,第三方同样把这个号转回来,我们通过这个号进行商户系统的其它操作。
看一下第三方支付的流程图
对第三方支付的封装
封装要求通用,对任何一个项目都可以灵活的使用它,这是最重要的,要想实现松耦合,需要记住委托的概念,我们在订单回调时,定义一个订单所要数据的实体,然后以这个实体做为参数,定义一个委托,当然你完全可以使用.net为我们提供的Action,Func等通用的委托对象,这在大叔框架里通常被看到,也是大叔的常客!
下面是微信支付的封装,可以看到业务代码只写自己业务,而不处理任务微信API相关的东西
/// <summary> /// 返回链接串 /// </summary> /// <returns></returns> public get='_blank'>string Get() { int money = 10; string orderID = "Lind0001"; Logger.LoggerFactory.Instance.Logger_Info("发送订单号" + orderID); return JsApiImplement.Send(money, orderID); } //微信回调 public void Notify() { JsApiImplement.Notify((model) => { Logger.LoggerFactory.Instance.Logger_Info("回调订单号" + model.Out_Trade_No); //更新领域订单状态,用户账户数据,流水等 }); }
原标题:微信JSApi支付~订单号和微信交易号
关键词:JS
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。