业务封装在 CRL.OnlinePay
创建表 CRL.OnlinePay.IPayHistory
配置账号参数
修改网站根目录/config/CustomSetting.config 填入账号等信息
支付宝USER=21212 支付宝KEY=4234234 支付宝EMAIL=234234 支付宝NotifyUrl=/charge/AlipayNotify 支付宝ReturnUrl=/charge/AlipayReturn 财富通KEY=sdfsdfsfd 财富通USER=asdfasdf 财富通NotifyUrl=/charge/TenpayNotify 财富通ReturnUrl=/charge/TenpayReturn 财富通CertFile=1313213 财富通PayPass=1313213
实现提交入口
string userId="001";//用户编号decimal amount=100;//金额 CRL.OnlinePay.CompanyType companyType=CRL.OnlinePay.CompanyType CompanyType.支付宝;//调用接口类型 string orderId = DateTime.Now.ToString("yyMMddhhmmssff");//外部订单号 CRL.OnlinePay.ChargeService.Submit(userId, amount, "", CRL.OnlinePay.OrderType.充值, companyType, orderId, "");//提交支付请求,产生跳转
实现通知和跳转入口,以支付宝为例
//支付宝通知接收 public ActionResult AlipayNotify() { string result = CRL.OnlinePay.ChargeService.GetNotify(CRL.OnlinePay.CompanyType.支付宝, HttpContext.ApplicationInstance.Context); return Content(result); } //支付宝返回跳转 public ActionResult AlipayReturn() { string orderId = Request["out_trade_no"]; var order = Aika.Core.Business.PayHistory.PayHistoryManage.Instance.GetOrder(orderId, CRL.OnlinePay.CompanyType.支付宝); if (order.OrderType == CRL.OnlinePay.OrderType.充值) { return RedirectToAction("ChargeSuccess", new { amount = order.Amount }); } else { return Content("暂未实现"); } }
在GLOBAL中实现支付订单确认回调
//在线支付回调 在上面通知收接时会触发此回调 CRL.SettingConfig.OnlinePayConfirmOrder = (o) => { //在这里实现确认订单,充值或支付过程,根据CRL.OnlinePay.IPayHistory对象进行判断 //o.ProductOrderId 传入订单编号 //o.OrderId 支付订单编号//o.OrderType 支付类型 var charge = Core.Business.Merchant.ManualChargeManage.Instance.QueryItem(b => b.OrderId == o.ProductOrderId);//找到业务对象 Core.Business.Merchant.ManualChargeManage.Instance.ConfirmManual(charge, out error)//确认操作,进行充值或确认订单 };
是不是很简单
CRL中只封装了支付宝和财付通接口,如需要其它类型,可按定义结构,实现CRL.OnlinePay.Company.CompanyBase
时间: 2024-10-09 09:23:59