public void TestMethod1() { IAopClient client = GetAlipayClient(); AlipayMobilePublicMultiMediaDownloadRequest req = new AlipayMobilePublicMultiMediaDownloadRequest(); string path = "c:/1.jpg"; if (File.Exists(path)) { File.Delete(path); } FileStream fs = new FileStream(path, FileMode.CreateNew); req.stream = fs; string mediaId = "L21pZnMvVDFQV3hYWGJKWFhYYUNucHJYP3Q9YW13ZiZ4c2lnPTU0MzRhYjg1ZTZjNWJmZTMxZGJiNjIzNDdjMzFkNzkw575"; req.BizContent = "{\"mediaId\":\"" + mediaId + "\"}"; AlipayMobilePublicMultiMediaDownloadResponse res = client.Execute(req); System.Console.WriteLine("-------------公众号菜单查询-------------"); System.Console.WriteLine("Body:" + res.Body); System.Console.ReadLine(); }
public Refund BuildRefundQuery(Refund refund) { IAopClient alipayClient = GetAopClient(); AlipayTradeFastpayRefundQueryRequest request = new AlipayTradeFastpayRefundQueryRequest(); AlipayTradeFastpayRefundQueryModel model = new AlipayTradeFastpayRefundQueryModel(); model.OutTradeNo = refund.OrderNo; if (!string.IsNullOrEmpty(refund.TradeNo)) { model.TradeNo = refund.TradeNo; } model.OutRequestNo = refund.OutRefundNo; request.SetBizModel(model); AlipayTradeFastpayRefundQueryResponse response = alipayClient.Execute(request); if (response.Code == "10000" && !string.IsNullOrEmpty(response.RefundAmount)) { double refundAmount; if (double.TryParse(response.RefundAmount, out refundAmount)) { if (refundAmount > 0.0) { refund.TradeNo = response.TradeNo; refund.RefundAmount = refundAmount; refund.RefundStatus = true; } } } return(refund); }
public AlipayService(IOptions <AlipayOptions> alipayOptions) { Options = alipayOptions.Value; //_context = contextAccessor.HttpContext; ,IHttpContextAccessor contextAccessor _aopClient = new DefaultAopClient(Options.Gatewayurl, Options.AppId, Options.PrivateKey, "json", "1.0", Options.SignType, Options.AlipayPublicKey, Options.CharSet, Options.IsKeyFromFile); }
/// <summary> /// 支付宝处理类型构造 /// </summary> /// <param name="appsetting">配置对象</param> /// <param name="log">日志对象</param> internal AlipayHandle(AppSetting appsetting, Logger log) { _log = log; _setting = appsetting; client = new DefaultAopClient(AlipayConfig.serverUrl, _setting.AlipayAppid, AlipayConfig.merchant_private_key, "json", AlipayConfig.version, AlipayConfig.sign_type, AlipayConfig.alipay_public_key, AlipayConfig.charset, true); }
private static void MenuGet() { IAopClient client = GetAlipayClient(); //AlipayMobilePublicMenuGetRequest req = new AlipayMobilePublicMenuGetRequest(); //AlipayMobilePublicMenuGetResponse res = client.Execute(req); System.Console.Write("-------------公众号菜单查询-------------" + "\n\r"); // System.Console.Write("Body:" + res.Body + "\n\r"); }
public static IAopClient CreateInstance() { if (client == null) { var config = AlipayConfig.CreateInstance(); client = new DefaultAopClient(config.ServerUrl, config.AppId, config.RsaPrivateKey, "json", config.Version, config.SignType, config.AlipayRsaPublicKey, config.Charset); } return(client); }
public AlipayService(IOptions <AlipayOptions> alipayOptions, IApplicationSettingService applicationSettingService) { Options = applicationSettingService.Get <AlipayOptions>(); if (Options.AppId.IsNullOrWhiteSpace()) { Options = alipayOptions.Value; } _aopClient = new DefaultAopClient(Options.Gatewayurl, Options.AppId, Options.PrivateKey, "json", "1.0", Options.SignType, Options.AlipayPublicKey, Options.CharSet, Options.IsKeyFromFile); }
static AliPayInfo() { AliPayNotifyUrl = ConfigHelper.GetValue("AliPayNotifyUrl"); AliPayReturnUrl = ConfigHelper.GetValue("AliPayReturnUrl"); AliPayAppId = ConfigHelper.GetValue("AliPayAppId"); AliPayServerUrl = ConfigHelper.GetValue("AliPayServerUrl"); AliPayPublicKey = ConfigHelper.GetFileContent("ApliPayPublicKey_Path"); AliPayOuerKey = ConfigHelper.GetFileContent("ApliPayOuerKey_Path"); AopClient = new DefaultAopClient(AliPayServerUrl, AliPayAppId, AliPayOuerKey, "json", "1.0", "RSA2", AliPayPublicKey, "utf-8", false); }
public void Query() { IAopClient client = GetClient(); AlipayTradeQueryRequest request = new AlipayTradeQueryRequest(); request.BizContent = "{" + " \"out_trade_no\":\"20150320010101001\"," + " \"trade_no\":\"2014112611001073956707\"" + " }"; AlipayTradeQueryResponse response = client.Execute(request); }
/// <summary> /// 订单编号 /// </summary> /// <param name="oidStr"></param> /// <returns></returns> public ActionResult AliPay(string oidStr) { #region 验证订单有效 if (string.IsNullOrEmpty(oidStr)) { return(Json(false, "OrderError")); } //int[] oIds = Serialize.JsonTo<int[]>(oidStr); decimal payPrice = 0.01M; ///订单验证,统计订单总金额 #endregion #region 统一下单 try { var notify_url = WeixinConfig.notify_url; var return_url = WeixinConfig.return_url; IAopClient client = Utility.AliPay.AliPay.GetAlipayClient(); AlipayTradeAppPayRequest request = new AlipayTradeAppPayRequest(); //SDK已经封装掉了公共参数,这里只需要传入业务参数。以下方法为sdk的model入参方式(model和biz_content同时存在的情况下取biz_content)。 AlipayTradeAppPayModel model = new AlipayTradeAppPayModel(); model.Subject = "商品购买"; model.TotalAmount = payPrice.ToString("F2"); model.ProductCode = "QUICK_MSECURITY_PAY"; Random rd = new Random(); var payNum = DateTime.Now.ToString("yyyyMMddHHmmss") + rd.Next(0, 1000).ToString().PadLeft(3, '0'); model.OutTradeNo = payNum; model.TimeoutExpress = "30m"; request.SetBizModel(model); request.SetNotifyUrl(notify_url); //request.SetReturnUrl(return_url); //这里和普通的接口调用不同,使用的是sdkExecute AlipayTradeAppPayResponse response = client.SdkExecute(request); //统一下单 //OrderBll.Value.UpdateOrderApp(oIds, payNum); //return Json(true, new {response.Body}, "OK"); return(null); } catch (Exception ex) { return(Json(new { Result = false, msg = "缺少参数" })); } #endregion }
public AliPayAppService() { try { //client = new DefaultAopClient("https://openapi.alipaydev.com/gateway.do", APPID, GetCurrentPath() + "rsa_private_key_pkcs8.pem", "json", "1.0", "RSA2", GetCurrentPath() + "rsa_public_key_pkcs8.pem", CHARSET, true); client = new DefaultAopClient("https://openapi.alipaydev.com/gateway.do", APPID, APP_PRIVATE_KEY, "json", "1.0", "RSA2", ALIPAY_PUBLIC_KEY, CHARSET, false); Logger.Info("初始化成功"); } catch (Exception ex) { throw new Exception("初始化支付宝支付对象失败!", ex); } }
public string BuildPaymentForm() { IAopClient alipayClient = GetAopClient(); AlipayTradePagePayRequest alipayRequest = new AlipayTradePagePayRequest();// 创建API对应的request alipayRequest.SetReturnUrl(Merchant.ReturnUrl.ToString()); alipayRequest.SetNotifyUrl(Merchant.NotifyUrl.ToString()); AlipayTradePagePayModel model = new AlipayTradePagePayModel(); model.Subject = Order.Subject; model.OutTradeNo = Order.OrderNo; model.TimeoutExpress = "30m"; model.TotalAmount = Order.OrderAmount.ToString(); model.ProductCode = "FAST_INSTANT_TRADE_PAY"; alipayRequest.SetBizModel(model); return(alipayClient.pageExecute(alipayRequest).Body); // 调用SDK生成表单 }
public string BuildWapPaymentUrl(Dictionary <string, string> map) { IAopClient alipayClient = GetAopClient(); AlipayTradeWapPayRequest alipayRequest = new AlipayTradeWapPayRequest(); alipayRequest.SetReturnUrl(Merchant.ReturnUrl.ToString()); alipayRequest.SetNotifyUrl(Merchant.NotifyUrl.ToString()); AlipayTradeWapPayModel model = new AlipayTradeWapPayModel(); model.Subject = Order.Subject; model.OutTradeNo = Order.OrderNo; model.TimeoutExpress = "30m"; model.TotalAmount = Order.OrderAmount.ToString(); model.ProductCode = "QUICK_WAP_PAY"; alipayRequest.SetBizModel(model); return(alipayClient.pageExecute(alipayRequest).Body); }
private void btnOrderStatus_Press(object sender, EventArgs e) { IAopClient client = GetAPOClient(); //实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称如:alipay.trade.app.pay AlipayTradeQueryRequest request = new AlipayTradeQueryRequest(); //SDK已经封装掉了公共参数,这里只需要传入业务参数。以下方法为sdk的model入参方式(model和biz_content同时存在的情况下取biz_content)。 AlipayTradeQueryModel model = new AlipayTradeQueryModel(); model.OutTradeNo = tradeNo; request.SetBizModel(model); //这是普通的接口使用Execute AlipayTradeQueryResponse response = client.Execute(request); //页面输出的response.Body就是orderString 可以直接给客户端请求,无需再做处理。 System.Diagnostics.Debug.WriteLine(response.Body); MessageBox.Show(response.Body); }
private void btnCreateOrder_Press(object sender, EventArgs e) { if (string.IsNullOrEmpty(tradeNo) == true) { btnOutOrder_Press(null, null); } IAopClient client = GetAPOClient(); //实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称如:alipay.trade.app.pay AlipayTradeAppPayRequest request = new AlipayTradeAppPayRequest(); //SDK已经封装掉了公共参数,这里只需要传入业务参数。以下方法为sdk的model入参方式(model和biz_content同时存在的情况下取biz_content)。 AlipayTradeAppPayModel model = new AlipayTradeAppPayModel(); model.Body = "请支持0.01元"; //支付描述 model.Subject = "支付"; //支付标题 model.TotalAmount = "0.01"; //支付金额 model.ProductCode = "QUICK_MSECURITY_PAY"; //产品码 model.OutTradeNo = tradeNo; //外部编号,外部编号在支付成功时,只能使用一次 model.TimeoutExpress = "30m"; //超时时间 request.SetBizModel(model); //有条件可设置回调地址,支付宝在支付完成后会POST此地址。或通过查询的方式。 //request.SetNotifyUrl(""); //这里和普通的接口调用不同,使用的是sdkExecute AlipayTradeAppPayResponse response = client.SdkExecute(request); //页面输出的response.Body就是orderString 可以直接给客户端请求,无需再做处理。 System.Diagnostics.Debug.WriteLine(response.Body); //注意,第一个参数是苹果支付需要的格式为ap应用编号,android可设置为空 this.aliPay1.AppPay("ap" + appid, response.Body, (obj, args) => { if (args.isError == true) { MessageBox.Show(args.error); } else { string result = ""; foreach (KeyValuePair <string, object> item in args.result) { result += string.Format("{0}/{1}" + Environment.NewLine, item.Key, item.Value); } MessageBox.Show(result); } }); }
public bool QueryNow() { IAopClient alipayClient = GetAopClient(); AlipayTradeQueryRequest alipayRequest = new AlipayTradeQueryRequest(); AlipayTradeQueryModel model = new AlipayTradeQueryModel(); model.OutTradeNo = Order.OrderNo; alipayRequest.SetBizModel(model); AlipayTradeQueryResponse response = alipayClient.Execute(alipayRequest); if (((string.Compare(response.TradeStatus, "TRADE_FINISHED") == 0 || string.Compare(response.TradeStatus, "TRADE_SUCCESS") == 0))) { var orderAmount = double.Parse(response.TotalAmount); if (Order.OrderAmount == orderAmount && string.Compare(Order.OrderNo, response.OutTradeNo) == 0) { return(true); } } return(false); }
public Dictionary <string, string> BuildPayParams() { IAopClient alipayClient = GetAopClient(); AlipayTradeAppPayRequest alipayRequest = new AlipayTradeAppPayRequest(); alipayRequest.SetReturnUrl(Merchant.ReturnUrl.ToString()); alipayRequest.SetNotifyUrl(Merchant.NotifyUrl.ToString()); AlipayTradeAppPayModel model = new AlipayTradeAppPayModel(); model.Subject = Order.Subject; model.OutTradeNo = Order.OrderNo; model.TimeoutExpress = "30m"; model.TotalAmount = Order.OrderAmount.ToString(); model.ProductCode = "QUICK_MSECURITY_PAY"; alipayRequest.SetBizModel(model); Dictionary <string, string> resParam = new Dictionary <string, string>(); resParam.Add("body", alipayClient.pageExecute(alipayRequest).Body); return(resParam); }
public void Precreate() { IAopClient client = GetClient(); AlipayTradePrecreateRequest request = new AlipayTradePrecreateRequest(); //TODO:此处替换官方文档 request.BizContent = "{" + " \"out_trade_no\":\"20160320010101001\"," + " \"total_amount\":88.88," + " \"discountable_amount\":8.88," + " \"undiscountable_amount\":80," + " \"buyer_logon_id\":\"15901825620\"," + " \"subject\":\"Iphone6 16G\"," + " \"body\":\"Iphone6 16G\"," + " \"timeout_express\":\"90m\"," + " \"sub_merchant\":{" + " \"merchant_id\":\"19023454\"" + " }" + " }"; request.BizContent = JsonConvert.SerializeObject(new Entities.Precreate() { out_trade_no = "20160320010101001", subject = "Iphone6 16G", total_amount = 88.88 }); AlipayTradePrecreateResponse response = client.Execute(request); if (!response.IsError) { Console.WriteLine("调用成功"); } else { Console.WriteLine("调用失败"); } Assert.IsFalse(response.IsError); }
/// <summary> /// 请求支付参数:https://docs.open.alipay.com/204/105465/ /// </summary> /// <returns>客户端向安卓层(支付宝客户端SDK)请求的字符串</returns> public string GetAliPayParameter(AlipayTradeAppPayModel alipaymode) { if (client == null) { client = new DefaultAopClient("https://openapi.alipay.com/gateway.do", appid, APP_Private_Key, "JSON", "1.0", "RSA2", AliPay_Public_Key, "UTF-8", false); } //参数对照: https://docs.open.alipay.com/204/105465/ //用于请求的对象 request = new AlipayTradeAppPayRequest(); request.SetBizModel(alipaymode); //请求的数据模型 request.SetNotifyUrl(aliPayResultListenerUrl); //设置支付结果通知的地址 //这里和普通的接口调用不同,使用的是sdkExecute AlipayTradeAppPayResponse response = client.SdkExecute(request); //(不用理这句注释)HttpUtility.HtmlEncode是为了输出到页面时防止被浏览器将关键参数html转义,实际打印到日志以及http传输不会有这个问题 //通过Body获取到返回的参数 return(response.Body); }
public Refund BuildRefund(Refund refund) { IAopClient alipayClient = GetAopClient(); AlipayTradeRefundRequest alipayRequest = new AlipayTradeRefundRequest(); AlipayTradeRefundModel model = new AlipayTradeRefundModel(); model.OutTradeNo = refund.OrderNo; if (!string.IsNullOrEmpty(refund.TradeNo)) { model.TradeNo = refund.TradeNo; } model.OutRequestNo = refund.OutRefundNo; model.RefundAmount = refund.RefundAmount.ToString(); model.RefundReason = refund.RefundDesc; alipayRequest.SetBizModel(model); AlipayTradeRefundResponse response = alipayClient.Execute(alipayRequest); if (response.Code == "10000") { refund.TradeNo = response.TradeNo; refund.RefundStatus = true; } return(refund); }
public void Setup() { m_Client = new DefaultAopClient(serverUrl, appId, merchant_private_key, "", version, sign_type, alipay_public_key, charset); }
public AlipayRequest() { _aopClient = new DefaultAopClient(AliPayConfig.SERVER_URL, AliPayConfig.APPID, AliPayConfig.APP_PRIVATE_KEY, AliPayConfig.FORMAT, AliPayConfig.CHARSET, AliPayConfig.SIGN_TYPE, AliPayConfig.ALIPAY_PUBLIC_KEY); }
public AppAlipayService() { _client = new DefaultAopClient(Url, AppId, AppPrivateKey, Format, "1.0", SignType, AlipayPublicKey, Charset); Logger = NullLogger.Instance; }
public ActionResult MicroPay(int?CompanyId, string storeId, string autoCode, string paySN, decimal totalPrice) { var op = new OpResult(); AlipayTradePayResponse payResponse = null; try { var setting = paySetBLL.GetPaymentSettingBystoreId(1, storeId, CompanyId); client = new DefaultAopClient(qrcode._2.Config.serverUrl, setting.AppId, qrcode._2.Config.merchant_private_key, "", qrcode._2.Config.version, qrcode._2.Config.sign_type, qrcode._2.Config.alipay_public_key, qrcode._2.Config.charset); var orderno = qrcode.wx.WxPayApi.GenerateOutTradeNo(setting.AppId); StringBuilder sb = new StringBuilder(); sb.Append("{\"out_trade_no\":\"" + orderno + "\","); sb.Append("\"scene\":\"bar_code\","); sb.Append("\"auth_code\":\"" + autoCode + "\","); sb.Append("\"total_amount\":\"" + totalPrice + "\",\"discountable_amount\":\"0.00\","); sb.Append("\"subject\":\"订单编号 " + paySN + "\",\"body\":\"\","); string expire_time = System.DateTime.Now.AddHours(1).ToString("yyyy-MM-dd HH:mm:ss"); sb.Append("\"time_expire\":\"" + expire_time + "\"}"); AlipayTradePayRequest payRequst = new AlipayTradePayRequest(); payRequst.BizContent = sb.ToString(); Dictionary <string, string> paramsDict = (Dictionary <string, string>)payRequst.GetParameters(); payResponse = client.Execute(payRequst); switch (payResponse.Code) { case qrcode._2.ResultCode.SUCCESS: op.Message = payResponse.TradeNo; op.Successed = true; break; case qrcode._2.ResultCode.INRROCESS: StringBuilder sb1 = new StringBuilder(); sb1.Append("{\"out_trade_no\":\"" + orderno + "\"}"); //返回支付处理中,需要进行轮询 AlipayTradeQueryResponse queryResponse = LoopQuery(sb1.ToString()); if (queryResponse != null) { op.Message = queryResponse.TradeNo; op.Successed = true; } else { var cancel1 = Cancel(sb1.ToString()); op.Message = cancel1.Code == qrcode._2.ResultCode.SUCCESS ? "订单支付失败,已撤销!" : (cancel1.SubMsg ?? cancel1.Msg); } break; case qrcode._2.ResultCode.FAIL: StringBuilder sb2 = new StringBuilder(); sb2.Append("{\"out_trade_no\":\"" + orderno + "\"}"); Cancel(sb2.ToString()); //不撤销防止同订单号时产生退款 op.Message = payResponse.SubMsg ?? payResponse.Msg; break; default: op.Message = payResponse.SubMsg ?? payResponse.Msg; break; } } catch (Exception ex) { op.Message = ex.Message; new Sys.LogEngine().WriteError("支付宝当面付失败!" + payResponse.Body, ex); } Pharos.Component.qrcode.Log.Debug(this.GetType().Name, "支付宝当面付,返回结果:" + payResponse.Body); return(new JsonNetResult(op)); }
public void Create() { IAopClient client = GetClient(); AlipayTradeCreateRequest request = new AlipayTradeCreateRequest(); request.BizContent = "{" + " \"out_trade_no\":\"20150320010101001\"," + " \"seller_id\":\"2088102172273210\"," + " \"total_amount\":88.88," + " \"discountable_amount\":8.88," + " \"undiscountable_amount\":80.00," + " \"buyer_logon_id\":\"15901825620\"," + " \"subject\":\"Iphone6 16G\"," + " \"body\":\"Iphone6 16G\"," + " \"buyer_id\":\"2088102146225135\"," + " \"goods_detail\":[{" + " \"goods_id\":\"apple-01\"," + " \"alipay_goods_id\":\"20010001\"," + " \"goods_name\":\"ipad\"," + " \"quantity\":1," + " \"price\":2000," + " \"goods_category\":\"34543238\"," + " \"body\":\"特价手机\"," + " \"show_url\":\"http://www.alipay.com/xxx.jpg\"" + " }]," + " \"operator_id\":\"Yx_001\"," + " \"store_id\":\"NJ_001\"," + " \"terminal_id\":\"NJ_T_001\"," + " \"extend_params\":{" + " \"sys_service_provider_id\":\"2088511833207846\"," + " \"hb_fq_num\":\"3\"," + " \"hb_fq_seller_percent\":\"100\"" + " }," + " \"timeout_express\":\"90m\"," + " \"royalty_info\":{" + " \"royalty_type\":\"ROYALTY\"," + " \"royalty_detail_infos\":[{" + " \"serial_no\":1," + " \"trans_in_type\":\"userId\"," + " \"batch_no\":\"123\"," + " \"out_relation_id\":\"20131124001\"," + " \"trans_out_type\":\"userId\"," + " \"trans_out\":\"2088101126765726\"," + " \"trans_in\":\"2088101126708402\"," + " \"amount\":0.1," + " \"desc\":\"分账测试1\"," + " \"amount_percentage\":\"100\"" + " }]" + " }," + " \"alipay_store_id\":\"2016041400077000000003314986\"," + " \"sub_merchant\":{" + " \"merchant_id\":\"19023454\"" + " }" + " }"; request.BizContent = JsonConvert.SerializeObject(new Entities.Create() { out_trade_no = "20120320010101001", subject = "Iphone 100", total_amount = 8888.88, buyer_logon_id = "*****@*****.**", }); AlipayTradeCreateResponse response = client.Execute(request); if (!response.IsError) { Console.WriteLine("调用成功"); } else { Console.WriteLine("调用失败"); } Assert.IsFalse(response.IsError); }
/// <summary> /// 预创建交易 /// </summary> /// <param name="request"></param> /// <param name="sceneryDomain"></param> /// <returns></returns> public PrecreateResponse Precreate(PrecreateRequest request, SceneryDomain sceneryDomain) { AlipayQRCodeDomain qrCode = new AlipayQRCodeDomain(); qrCode.BatchNumber = request.out_trade_no; qrCode.SceneryName = sceneryDomain.SceneryName; qrCode.Creater = request.terminal_id; qrCode.Updater = request.terminal_id; qrCode.Phone = request.Phone; request.extend_params.sys_service_provid = sceneryDomain.Apipay.PID; PrecreateResponse responseAlipay = new PrecreateResponse(); try { //创建淘宝支付信息 client = new DefaultAopClient(serverUrl, sceneryDomain.Apipay.APP_ID, sceneryDomain.Apipay.APP_PRIVATE_KEY, "", version, sign_type, sceneryDomain.Apipay.ALIPAY_PUBLIC_KEY, charset); //生成商户订单号 request.out_trade_no = GenerateSerialIdService.Get(FixedPrefix.Alipay, CustomPrefix.A, sceneryDomain.SceneryTCId.ToString()).SerialId; string content = JsonConvert.SerializeObject(request); qrCode.RequestJson = content; qrCode.Out_trade_no = request.out_trade_no; LogHelper.AlipayLog(string.Format("商户订单号:{0} 请求josn:{1}", request.out_trade_no, content)); string QrCode = ""; AlipayTradePrecreateResponse payResponse = Prepay(content); //payResponse.QrCode即二维码对于的链接 //将链接用二维码工具生成二维码打印出来,顾客可以用支付宝钱包扫码支付。 if (payResponse != null) { string result = payResponse.Body; if (payResponse.Code != ResultCode.SUCCESS) { qrCode.Remark = result; } else { qrCode.Remark = payResponse.Code; } switch (payResponse.Code) { case ResultCode.SUCCESS: //预下单成功 QrCode = payResponse.QrCode; qrCode.QrCode = QrCode; LogHelper.AlipayLog(string.Format("请求成功,二维码地址:{0}", QrCode)); break; case ResultCode.FAIL: StringBuilder sb2 = new StringBuilder(); sb2.Append("{\"out_trade_no\":\"" + request.out_trade_no + "\"}"); LogHelper.AlipayLog(string.Format("请求失败,保存信息:{0}", result)); Cancel(sb2.ToString()); break; } } responseAlipay.QRCode = QrCode; responseAlipay.Out_trade_no = request.out_trade_no; qrCode.AppId = sceneryDomain.Apipay.APP_ID; } catch (Exception ex) { LogHelper.AlipayLog(string.Format("获取支付宝URL:请求失败,保存信息:{0}", ex.Message)); } finally { try { new AlipayQRCodeDao().Add(qrCode); } catch (Exception ex) { LogHelper.AlipayLog(string.Format("获取支付宝URL:新增操作日志失败:{0}", ex.Message)); } } return(responseAlipay); }
public AlipayService(IOptions <AlipayOptions> alipayOptions) { Options = alipayOptions.Value; _aopClient = new DefaultAopClient(Options.Gatewayurl, Options.AppId, Options.PrivateKey, "json", "1.0", Options.SignType, Options.AlipayPublicKey, Options.CharSet, Options.IsKeyFromFile); }
public AlipayMpAuthRequest(ClientConfig config, IAuthStateCache authStateCache) : base(config, new AlipayMPAuthSource(), authStateCache) { aopClient = new DefaultAopClient(source.accessToken(), config.clientId, config.clientSecret, "json", "1.0", "RSA2", config.alipayPublicKey, "GBK", false); }
public AlipayMonitorImpl(string monitorUrl, string appId, string merchant_private_key, string format, string version, string sign_type, string alipay_public_key, string charset) { client = new DefaultAopClient(monitorUrl, appId, merchant_private_key, format, version, sign_type, alipay_public_key, charset); }
/// <summary> /// 查询订单状态 /// </summary> /// <param name="request"></param> /// <param name="sceneryDomain"></param> /// <returns></returns> public QueryResponse Query(QueryRequest request, SceneryDomain sceneryDomain) { var result = false; //创建淘宝支付信息 client = new DefaultAopClient(serverUrl, sceneryDomain.Apipay.APP_ID, sceneryDomain.Apipay.APP_PRIVATE_KEY, "", version, sign_type, sceneryDomain.Apipay.ALIPAY_PUBLIC_KEY, charset); QueryResponse queryResponse = new QueryResponse(); StringBuilder biz_content = new StringBuilder(); biz_content.Append("{\"out_trade_no\":\"" + request.Out_trade_no + "\"}"); AlipayTradeQueryRequest payRequst = new AlipayTradeQueryRequest(); payRequst.BizContent = biz_content.ToString(); Dictionary <string, string> paramsDict = (Dictionary <string, string>)payRequst.GetParameters(); AlipayTradeQueryResponse payResponse = null; LogHelper.AlipayLog(string.Format("论寻-请求josn:{0}", biz_content)); payResponse = client.Execute(payRequst); LogHelper.AlipayLog(string.Format("论寻-结果:{0}-{1}-{2}", payResponse.Code, payResponse.TradeStatus, payResponse.Body)); if (string.Compare(payResponse.Code, ResultCode.SUCCESS, false) == 0) { if (payResponse.TradeStatus == "TRADE_FINISHED" || payResponse.TradeStatus == "TRADE_SUCCESS" || payResponse.TradeStatus == "TRADE_CLOSED") { if (payResponse.TradeStatus == "TRADE_SUCCESS") { var detailDao = new AlipayDetailDao(); var qrCodeDao = new AlipayQRCodeDao(); Alipay_trade_query_response alipayDetail = JsonConvert.DeserializeObject <Alipay_trade_query_response>(payResponse.Body); //需要检查数据库中是否有改数据 有的话 直接返回 var QRCodeDetail = qrCodeDao.IsExistOut_trade_no(alipayDetail.alipay_trade_query_response.Out_trade_no, alipayDetail.alipay_trade_query_response.Total_amount , sceneryDomain.Apipay.APP_ID); if (result == null || QRCodeDetail.SceneryName == "-1") { LogHelper.AlipayLog("论寻:无通知参数"); } //论寻:数据已经存在,不需要插入 if (QRCodeDetail.SceneryName != "-2") { //保存支付宝信息 string body = payResponse.Body; alipayDetail.alipay_trade_query_response.SceneryName = sceneryDomain.SceneryName; alipayDetail.alipay_trade_query_response.Creater = sceneryDomain.Apipay.APP_ID; alipayDetail.alipay_trade_query_response.Updater = ""; alipayDetail.alipay_trade_query_response.AppId = sceneryDomain.Apipay.APP_ID; alipayDetail.alipay_trade_query_response.BatchNumber = QRCodeDetail.BatchNumber; alipayDetail.alipay_trade_query_response.SceneryRate = sceneryDomain.Rate; alipayDetail.alipay_trade_query_response.AlipayPlayDate = Convert.ToDateTime(alipayDetail.alipay_trade_query_response.Send_pay_date.ToString("yyyy-MM-dd")); detailDao.Add(alipayDetail.alipay_trade_query_response); } else { LogHelper.AlipayLog("论寻:数据已经存在,不需要插入"); } queryResponse.buyer_logon_id = alipayDetail.alipay_trade_query_response.Buyer_logon_id; queryResponse.gmt_payment = alipayDetail.alipay_trade_query_response.Send_pay_date; queryResponse.trade_no = alipayDetail.alipay_trade_query_response.Trade_no; result = true; } } } if (result == false && request.IsLastRequest == 1) { var content = new StringBuilder(); content.Append("{\"out_trade_no\":\"" + payResponse.OutTradeNo + "\"}"); biz_content = content; Cancel(content.ToString()); } return(queryResponse); }