Beispiel #1
0
        /// <summary>
        /// 查询订单
        /// </summary>
        public ActionResult Query()
        {
            DefaultAopClient client = new DefaultAopClient(Help.gatewayUrl, Help.app_id, Help.private_key, "json", "1.0", Help.sign_type, Help.alipay_public_key, Help.charset, false);

            // 商户订单号,和交易号不能同时为空
            string out_trade_no = "22222";

            // 支付宝交易号,和商户订单号不能同时为空
            string trade_no = "222222";

            AlipayTradeQueryModel model = new AlipayTradeQueryModel();

            model.OutTradeNo = out_trade_no;
            model.TradeNo    = trade_no;

            AlipayTradeQueryRequest request = new AlipayTradeQueryRequest();

            request.SetBizModel(model);

            AlipayTradeQueryResponse response = null;

            try
            {
                response = client.Execute(request);
                return(Content(response.Body));
            }
            catch (Exception exp)
            {
                throw exp;
            }
        }
        public static AlipayMobilePublicMenuGetResponse MenuGet()
        {
            IAopClient client = new DefaultAopClient(AlipayFuwuConfig.serverUrl, AlipayFuwuConfig.appId, AlipayFuwuConfig.merchant_private_key);
            AlipayMobilePublicMenuGetRequest request = new AlipayMobilePublicMenuGetRequest();

            return(client.Execute <AlipayMobilePublicMenuGetResponse>(request));
        }
Beispiel #3
0
        private IAopClient GetClient()
        {
            IAopClient client = new DefaultAopClient(serverUrl, appId, private_key, "json", "utf-8", "RSA", public_key);

            client = new DefaultAopClient(serverUrl, appId, private_key, "json", "utf-8");
            return(client);
        }
Beispiel #4
0
        /// <summary>
        /// 单笔转账到支付宝账户接口
        /// </summary>
        /// <param name="payeeAccount">收款方账户</param>
        /// <param name="realName">真实姓名</param>
        /// <param name="amount">转账金额</param>
        /// <param name="outBizNo">订单号</param>
        /// <returns></returns>
        public static string FundTrans(string payeeAccount, string realName, string amount, string outBizNo)
        {
            //https://docs.open.alipay.com/api_28/alipay.fund.trans.toaccount.transfer
            IAopClient client = new DefaultAopClient(ServerUrl, AppId, AppPrivateKey, "json", "1.0", SignType, AlipayPublicKey, Charset, false);
            AlipayFundTransToaccountTransferRequest request = new AlipayFundTransToaccountTransferRequest();

            request.BizContent = "{" +
                                 "\"out_biz_no\":\"" + outBizNo + "\"," +
                                 "\"payee_type\":\"ALIPAY_LOGONID\"," +          //收款方账户类型。
                                 "\"payee_account\":\"" + payeeAccount + "\"," + //收款方账户。与payee_type配合使用。付款方和收款方不能是同一个账户。
                                 "\"amount\":\"" + amount + "\"," +              //转账金额,金额必须大于等于0.1元
                                 "\"payer_show_name\":\"上海晶歌文化传播有限公司\"," +       //付款方姓名
                                 "\"payee_real_name\":\"" + realName + "\"," +   //收款方真实姓名(最长支持100个英文/50个汉字)。 如果本参数不为空,则会校验该账户在支付宝登记的实名是否与收款方真实姓名一致。
                                 "\"remark\":\"退还押金\"" +                         //转账备注
                                 "  }";

            AlipayFundTransToaccountTransferResponse response = client.Execute(request);

            if (response.Code == "10000")
            {
                return("10000");
            }
            else
            {
                return(response.Body);
            }
        }
Beispiel #5
0
        public static string TradeRefund(string outTradeNo, string refundAmount)
        {
            //https://docs.open.alipay.com/api_1/alipay.trade.refund
            IAopClient client = new DefaultAopClient(ServerUrl, AppId, AppPrivateKey, "json", "1.0", SignType, AlipayPublicKey, Charset, false);
            AlipayTradeRefundRequest request = new AlipayTradeRefundRequest();

            request.BizContent = "{" +
                                 "\"out_trade_no\":\"" + outTradeNo + "\"," +
                                 "\"trade_no\":\"\"," +
                                 "\"refund_amount\":" + refundAmount + "," +
                                 "\"refund_reason\":\"正常退款\"," +
                                 "\"out_request_no\":\"HZ01RF001\"," +
                                 "\"operator_id\":\"OP001\"," +
                                 "\"store_id\":\"NJ_S_001\"," +
                                 "\"terminal_id\":\"NJ_T_001\"" +
                                 "  }";
            AlipayTradeRefundResponse response = client.Execute(request);

            if (response.Code == "10000")
            {
                return("10000");
            }
            else
            {
                return(response.Body);
            }
        }
Beispiel #6
0
        protected void DataList2_ItemCommand(object source, DataListCommandEventArgs e)
        {
            if (e.CommandName == "receive")
            {
                int    orderid = int.Parse(e.CommandArgument.ToString());
                string sql     = "update [Order] set [State]='已成交' where OrderID=" + orderid;
                if (db.exsql(sql))
                {
                    Response.Write("<script>alert('收货成功')</script>");

                    Bind();
                }
            }
            if (e.CommandName == "pay")
            {
                int    orderid    = int.Parse(e.CommandArgument.ToString());
                string totalprice = ((Label)e.Item.FindControl("totalprice")).Text;

                DefaultAopClient client = new DefaultAopClient(config.gatewayUrl, config.app_id, config.private_key, "json", "1.0", config.sign_type, config.alipay_public_key, config.charset, false);

                // 外部订单号,商户网站订单系统中唯一的订单号
                string out_trade_no = orderid.ToString();

                // 订单名称
                string subject = "安徽大学校园物品交易系统结算中心";

                // 付款金额
                string total_amout = totalprice;

                // 商品描述
                string body = "test";

                // 组装业务参数model
                AlipayTradePagePayModel model = new AlipayTradePagePayModel();
                model.Body        = body;
                model.Subject     = subject;
                model.TotalAmount = total_amout;
                model.OutTradeNo  = out_trade_no;
                model.ProductCode = "FAST_INSTANT_TRADE_PAY";

                AlipayTradePagePayRequest request = new AlipayTradePagePayRequest();
                // 设置同步回调地址
                request.SetReturnUrl(config.nataddress + "/Return_url.aspx");
                // 设置异步通知接收地址
                request.SetNotifyUrl(config.nataddress + "/Notify_url.aspx");
                // 将业务model载入到request
                request.SetBizModel(model);

                AlipayTradePagePayResponse response = null;
                try
                {
                    response = client.pageExecute(request, null, "post");
                    Response.Write(response.Body);
                }
                catch (Exception exp)
                {
                    throw exp;
                }
            }
        }
Beispiel #7
0
        /// <summary>
        /// 阿里手机网页支付
        /// </summary>
        /// <param name="totalAmount">支付金额</param>
        /// <param name="outTradeNo">系统订单号码</param>
        /// <param name="notifyUrl">订单成功返回路径</param>
        /// <param name="body">内容</param>
        /// <param name="subject">订单名称</param>
        /// <returns></returns>
        public string CreateAlipayWapOrder(string totalAmount, string outTradeNo, string notifyUrl, string body, string subject)
        {
            DefaultAopClient client = new DefaultAopClient(gatewayUrl, app_id, private_key, "json", "1.0", sign_type, alipay_public_key, charset, false);
            //实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称如:alipay.trade.app.pay

            AlipayTradeWapPayModel model = new AlipayTradeWapPayModel();

            model.Body        = body;
            model.Subject     = subject;
            model.TotalAmount = totalAmount;
            model.OutTradeNo  = outTradeNo;
            model.ProductCode = "QUICK_WAP_WAY";
            //订单号
            model.TimeoutExpress = "30m";
            AlipayTradeWapPayRequest request = new AlipayTradeWapPayRequest();

            request.SetBizModel(model);
            request.SetNotifyUrl(notifyUrl);
            // 设置同步回调地址
            request.SetReturnUrl(notifyUrl);
            //这里和普通的接口调用不同,使用的是sdkExecute
            AlipayTradeWapPayResponse response = null;

            try
            {
                response = client.pageExecute(request, null, "post");
                return(response.Body);
            }
            catch (Exception exp)
            {
                throw exp;
            }
        }
Beispiel #8
0
        public JsonResult OrderCloseInfo(string tradeno, string alipayTradeNo)
        {
            DefaultAopClient client = new DefaultAopClient(Config.gatewayUrl, Config.app_id, Config.private_key, "json", "1.0", Config.sign_type, Config.alipay_public_key, Config.charset, false);

            AlipayTradeCloseModel model = new AlipayTradeCloseModel();

            // 商户订单号,和交易号不能同时为空
            model.OutTradeNo = tradeno;
            // 支付宝交易号,和商户订单号不能同时为空
            model.TradeNo = alipayTradeNo;

            AlipayTradeCloseRequest request = new AlipayTradeCloseRequest();

            request.SetBizModel(model);

            AlipayTradeCloseResponse response = null;

            try
            {
                response = client.Execute(request);
                return(Json(response.Body));
            }
            catch (Exception exp)
            {
                throw exp;
            }
        }
        protected void BtnAlipay_Click(object sender, EventArgs e)
        {
            DefaultAopClient client = new DefaultAopClient(config.gatewayUrl, config.app_id, config.private_key, "json", "1.0", config.sign_type, config.alipay_public_key, config.charset, false);

            // 商户订单号,和交易号不能同时为空
            string out_trade_no = WIDout_trade_no.Text.Trim();

            // 支付宝交易号,和商户订单号不能同时为空
            string trade_no = WIDtrade_no.Text.Trim();

            // 请求退款接口时,传入的退款号,如果在退款时未传入该值,则该值为创建交易时的商户订单号,必填。
            string out_request_no = WIDout_request_no.Text.Trim();

            AlipayTradeFastpayRefundQueryModel model = new AlipayTradeFastpayRefundQueryModel();

            model.OutTradeNo   = out_trade_no;
            model.TradeNo      = trade_no;
            model.OutRequestNo = out_request_no;

            AlipayTradeFastpayRefundQueryRequest request = new AlipayTradeFastpayRefundQueryRequest();

            request.SetBizModel(model);

            AlipayTradeFastpayRefundQueryResponse response = null;

            try
            {
                response       = client.Execute(request);
                WIDresule.Text = response.Body;
            }
            catch (Exception exp)
            {
                throw exp;
            }
        }
Beispiel #10
0
    protected void BtnAlipay_Click(object sender, EventArgs e)
    {
        DefaultAopClient client = new DefaultAopClient(Config.gatewayUrl, Config.app_id, Config.merchant_private_key, "json", "1.0", Config.sign_type, Config.alipay_public_key, Config.charset, true);

        // 商户订单号,和交易号不能同时为空
        string out_trade_no = WIDout_trade_no.Text.Trim();

        // 支付宝交易号,和商户订单号不能同时为空
        string trade_no = WIDtrade_no.Text.Trim();

        AlipayTradeQueryModel model = new AlipayTradeQueryModel();

        model.OutTradeNo = out_trade_no;
        model.TradeNo    = trade_no;

        AlipayTradeQueryRequest request = new AlipayTradeQueryRequest();

        request.SetBizModel(model);

        AlipayTradeQueryResponse response = null;

        try
        {
            response       = client.Execute(request);
            WIDresule.Text = response.Body;
        }
        catch (Exception exp)
        {
            throw exp;
        }
    }
 public async Task <IActionResult> Detail(DetailModel detailModel)
 {
     if (detailModel.OrginDate != null)
     {
         detailModel.NoSearch = false;
         string     reportdate = DateTimeToDateClass.DateStrToDateStr(detailModel.OrginDate);
         IAopClient client     = new DefaultAopClient("https://openapi.alipay.com/gateway.do", Program.Websiteconfig.AliPayAppID, Program.Websiteconfig.AliPayPrivateKey, "json", "1.0", "RSA2", Program.Websiteconfig.AliPayPublicKey, "utf-8", false);
         var        pageindex  = 1;
         while (true)
         {
             AlipayUserInviteOfflinedetailQueryRequest request = new AlipayUserInviteOfflinedetailQueryRequest();
             request.BizContent = "{" +
                                  "\"pid\":\"" + Program.Websiteconfig.Pid + "\"," +
                                  "\"report_date\":\"" + reportdate + "\"," +
                                  //"\"partner_id\":\"" + partner_id + "\"," +
                                  "\"page\":" + pageindex + "," +
                                  "\"page_size\":" + 500 +
                                  "  }";
             AlipayUserInviteOfflinedetailQueryResponse response = client.Execute(request);
             if (response.OfflineDetailInfoList != null)
             {
                 detailModel.DataModelList.AddRange(response.OfflineDetailInfoList);
                 detailModel.NoData = false;
                 pageindex++;
             }
             else
             {
                 break;
             }
         }
     }
     return(View(detailModel));
 }
Beispiel #12
0
        /// <summary>
        /// 生成APP支付订单信息
        /// </summary>
        /// <returns></returns>
        public static string GetAlipayOrderInfo(decimal amount, string orderNumber)
        {
            IAopClient client = new DefaultAopClient("https://openapi.alipay.com/gateway.do",
                                                     Config.APPID,
                                                     Config.APP_PRIVATE_KEY,
                                                     "json", "1.0", "RSA2",
                                                     Config.ALIPAY_PUBLIC_KEY,
                                                     Config.CHARSET, false);

            //实例化具体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}".FormatWith(orderNumber);
            model.Subject        = "五福天下商城订单付款";
            model.TotalAmount    = amount.ToString();
            model.ProductCode    = "QUICK_MSECURITY_PAY";
            model.OutTradeNo     = orderNumber;
            model.TimeoutExpress = "30m";
            request.SetBizModel(model);
            request.SetNotifyUrl("http://m.wftx666.com");
            //这里和普通的接口调用不同,使用的是sdkExecute
            AlipayTradeAppPayResponse response = client.SdkExecute(request);

            //HttpUtility.HtmlEncode是为了输出到页面时防止被浏览器将关键参数html转义,实际打印到日志以及http传输不会有这个问题
            //return HttpUtility.HtmlEncode(response.Body);
            return(response.Body);
            //页面输出的response.Body就是orderString 可以直接给客户端请求,无需再做处理。
        }
Beispiel #13
0
        public AlipayTradePrecreateResponse BuildNew(EAliPayApplication app, EStoreInfo store, EUserInfo AgentUI, string TotalAmt, bool needNotifyUrl = true, bool needControl = true)
        {
            string NotifyUrl = ConfigurationManager.AppSettings["Main_SiteUrl"] + "AliPay/PayNotify";

            _OrderNo = StringHelper.GenerateOrderNo();

            IAopClient aliyapClient = new DefaultAopClient("https://openapi.alipay.com/gateway.do", app.AppId,
                                                           app.Merchant_Private_Key, "json", "1.0", "RSA2", app.Merchant_Public_key, "GBK", false);

            AlipayTradePrecreateRequest request = new AlipayTradePrecreateRequest();
            AlipayTradePrecreateModel   model   = new AlipayTradePrecreateModel();

            model.SellerId = store.AliPayAccount;
            NLogHelper.InfoTxt("当面付OrderNo:" + _OrderNo);
            model.OutTradeNo   = _OrderNo;
            model.TotalAmount  = TotalAmt;
            model.Subject      = "#" + AgentUI.Name + " 收银台";
            model.Body         = app.AppName + "-商品";
            model.ExtendParams = new Aop.Api.Domain.ExtendParams();
            model.ExtendParams.SysServiceProviderId = app.AppId;
            if (needControl)
            {
                model.DisablePayChannels = "balance,moneyFund,creditCard,creditCardExpress,creditCardCartoon,debitCardExpress,point,bankPay";
            }

            request.SetBizModel(model);
            if (needNotifyUrl)
            {
                request.SetNotifyUrl(NotifyUrl);
            }

            AlipayTradePrecreateResponse response = aliyapClient.Execute(request, null, store.AliPayAuthToke);

            return(response);
        }
Beispiel #14
0
        public string appid = ConfigurationManager.AppSettings["aliAppId"];//应用2.0签约2017120190774565


        #endregion

        /// <summary>
        /// .NET服务端SDK生成APP支付订单信息示例
        /// </summary>
        ///
        //.NET服务端SDK生成APP支付订单信息示例(https://docs.open.alipay.com/54/106370/)根据文档上的说法,这样就行了。
        /// <summary>
        /// 这个行了
        /// </summary>
        /// <param name="totalAmount"></param>
        /// <param name="outTradeNo"></param>
        /// <param name="notifyUrl"></param>
        /// <returns></returns>
        public string CreateAlipayOrder(string totalAmount, string outTradeNo, string notifyUrl)
        {
            IAopClient client = new DefaultAopClient(gateway, appid, app_private_key, "json", "1.0", "RSA2", alipay_public_key, charset, false);
            //实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称如:alipay.trade.app.pay
            AlipayTradeAppPayRequest request = new AlipayTradeAppPayRequest();

            //SDK已经封装掉了公共参数,这里只需要传入业务参数。以下方法为sdk的model入参方式(model和biz_content同时存在的情况下取biz_content)。
            request.SetApiVersion("1.0");
            AlipayTradeAppPayModel model = new AlipayTradeAppPayModel();

            model.Body        = "body";
            model.Subject     = "App支付";
            model.TotalAmount = totalAmount;
            model.ProductCode = "QUICK_MSECURITY_PAY";
            //订单号

            model.OutTradeNo     = outTradeNo;
            model.TimeoutExpress = "30m";
            request.SetBizModel(model);
            request.SetNotifyUrl(notifyUrl);
            //这里和普通的接口调用不同,使用的是sdkExecute
            AlipayTradeAppPayResponse response = client.SdkExecute(request);
            //HttpUtility.HtmlEncode是为了输出到页面时防止被浏览器将关键参数html转义,实际打印到日志以及http传输不会有这个问题
            var a = response.Body;

            return(response.Body);
            //return HttpUtility.HtmlEncode(response.Body).Replace("&amp;","&");

            //Response.Write(HttpUtility.HtmlEncode(response.Body));
            //页面输出的response.Body就是orderString 可以直接给客户端请求,无需再做处理。
        }
Beispiel #15
0
        public static int AlipayAPPOrderQuery(string out_trade_no)
        {
            DefaultAopClient      client = new DefaultAopClient(AlipayConfig.mobile_gatewayUrl, AlipayConfig.mobile_app_id, AlipayConfig.mobile_private_key_value, "json", "1.0", AlipayConfig.sign_type, AlipayConfig.mobile_public_key_value, AlipayConfig.charset, false);
            AlipayTradeQueryModel model  = new AlipayTradeQueryModel();

            model.OutTradeNo = out_trade_no;

            AlipayTradeQueryRequest request = new AlipayTradeQueryRequest();

            request.BizContent = "{\"out_trade_no\":\"" + out_trade_no + "\"}";
            request.SetBizModel(model);
            AlipayTradeQueryResponse response = new AlipayTradeQueryResponse();

            try
            {
                response = client.Execute(request);
                if (response.TradeStatus.Equals(AliPayTradeStatus.WAIT_BUYER_PAY.ToString()))
                {
                    return(1);
                }
                if (response.TradeStatus.Equals(AliPayTradeStatus.TRADE_SUCCESS.ToString()))
                {
                    Web.APPCode.PaymentHelper.SaveRoomFee(out_trade_no, "APP支付宝支付", "支付宝");
                    return(2);
                }
                return(3);
            }
            catch (Exception exp)
            {
                LogHelper.WriteError("PaymentHelper", "AlipayAPPOrderQuery", exp);
                return(3);
            }
        }
        public AlipayUserUserinfoShareResponse GetAliUserInfo(string accessToken)
        {
            AlipayUserUserinfoShareRequest request = new AlipayUserUserinfoShareRequest();
            IAopClient client = new DefaultAopClient(this.serverUrl, this.appId, this.privateKey);

            return(client.Execute <AlipayUserUserinfoShareResponse>(request, accessToken));
        }
Beispiel #17
0
        /// <summary>
        /// 订单退款
        /// </summary>
        /// <param name="tradeno">商户订单号</param>
        /// <param name="alipayTradeNo">支付宝交易号</param>
        /// <param name="refundAmount">退款金额</param>
        /// <param name="refundReason">退款原因</param>
        /// <param name="refundNo">退款单号</param>
        public ActionResult RefundInfo(string tradeno, string alipayTradeNo, string refundAmount, string refundReason, string refundNo)
        {
            DefaultAopClient client = new DefaultAopClient(Config.gatewayUrl, Config.app_id, Config.private_key, "json", "1.0", Config.sign_type, Config.alipay_public_key, Config.charset, false);

            AlipayTradeRefundModel model = new AlipayTradeRefundModel();

            // 商户订单号,和交易号不能同时为空
            model.OutTradeNo = tradeno;
            // 支付宝交易号,和商户订单号不能同时为空
            model.TradeNo = alipayTradeNo;
            // 退款金额,不能大于订单总金额
            model.RefundAmount = refundAmount;
            // 退款原因
            model.RefundReason = refundReason;
            // 退款单号,同一笔多次退款需要保证唯一,部分退款该参数必填。
            model.OutRequestNo = refundNo;

            AlipayTradeRefundRequest request = new AlipayTradeRefundRequest();

            request.SetBizModel(model);

            AlipayTradeRefundResponse response = null;

            try
            {
                response = client.Execute(request);
                return(Json(response.Body));
            }
            catch (Exception exp)
            {
                throw exp;
            }
        }
Beispiel #18
0
        /// <summary>
        /// 退款查询
        /// </summary>
        /// <param name="tradeno">商户订单号</param>
        /// <param name="alipayTradeNo">支付宝交易号</param>
        /// <param name="refundNo">退款单号</param>
        /// <returns></returns>
        public ActionResult RefundQueryInfo(string tradeno, string alipayTradeNo, string refundNo)
        {
            DefaultAopClient client = new DefaultAopClient(Config.gatewayUrl, Config.app_id, Config.private_key, "json", "1.0", Config.sign_type, Config.alipay_public_key, Config.charset, false);

            if (string.IsNullOrEmpty(refundNo))
            {
                refundNo = tradeno;
            }
            AlipayTradeFastpayRefundQueryModel model = new AlipayTradeFastpayRefundQueryModel();

            model.OutTradeNo   = tradeno;
            model.TradeNo      = alipayTradeNo;
            model.OutRequestNo = refundNo;

            AlipayTradeFastpayRefundQueryRequest request = new AlipayTradeFastpayRefundQueryRequest();

            request.SetBizModel(model);

            AlipayTradeFastpayRefundQueryResponse response = null;

            try
            {
                response = client.Execute(request);
                return(Json(response.Body));
            }
            catch (Exception exp)
            {
                throw exp;
            }
        }
Beispiel #19
0
        public static IAopClient GetAlipayClient()
        {
            string serviceUrl = WeixinConfig.serviceUrl;

            string appId = WeixinConfig.aliAppId;

            string privateKey = WeixinConfig.privateKey;

            string publivKey = WeixinConfig.publicKey;

            string format = WeixinConfig.format;

            string version = WeixinConfig.version;

            string signType = WeixinConfig.signType;

            string charset = WeixinConfig.charset;

            bool keyFromFile = WeixinConfig.keyFromFile;


            IAopClient client = new DefaultAopClient(serviceUrl, appId, privateKey, format, version, signType, publivKey, charset, keyFromFile);

            return(client);
        }
Beispiel #20
0
        public static string ProcessRequest(OrderListModel orderList, long orderId, string wapSpId)
        {
            DefaultAopClient       client = new DefaultAopClient(wapConfig.gatewayUrl, wapConfig.app_id, wapConfig.private_key, "json", "1.0", wapConfig.sign_type, wapConfig.alipay_public_key, wapConfig.charset, false);
            AlipayTradeWapPayModel model  = ConvertToModel(orderList, orderId);

            AlipayTradeWapPayRequest request = new AlipayTradeWapPayRequest();
            // 设置同步回调地址
            string retunUrl = string.Format(wapConfig.RETURN_URL, wapSpId, orderId);

            request.SetReturnUrl(retunUrl);
            // 设置异步通知接收地址
            request.SetNotifyUrl(wapConfig.NOTIFY_URL);
            // 将业务model载入到request
            request.SetBizModel(model);

            AlipayTradeWapPayResponse response = null;

            try
            {
                //因为是页面跳转类服务,使用pageExecute方法得到form表单后输出给前端跳转
                response = client.pageExecute(request, null, "post");
                if (response != null && !response.IsError)
                {
                    return(response.Body);
                }
            }
            catch (Exception exp)
            {
                LogUtil.Error(exp.Message);
            }
            return(string.Empty);
        }
Beispiel #21
0
 public static m_Alipay_Server_Token askTokenByOldFromServer(string app_id, string refresh_token)
 {
     try
     {
         IAopClient client = new DefaultAopClient("https://openapi.alipay.com/gateway.do", app_id, "\\RSA\\merchant_private_key_2048.txt", "json", "1.0", "RSA2", "\\RSA\\alipay_public_key_sha256.txt", "GBK", true);
         AlipaySystemOauthTokenRequest request = new AlipaySystemOauthTokenRequest();
         request.GrantType = "refresh_token";
         //request.Code = "4b203fe6c11548bcabd8da5bb087a83b";
         request.RefreshToken = refresh_token;//"201208134b203fe6c11548bcabd8da5bb087a83b";
         AlipaySystemOauthTokenResponse response = client.Execute(request);
         var token = JsonConvert.DeserializeObject <m_Alipay_Server_Token>(response.Body);
         if (null == token)
         {
             return(null);
         }
         else
         {
             return(token);
         }
     }
     catch (Exception ex)
     {
         //记录日志
     }
     return(null);
 }
Beispiel #22
0
        /// <summary>
        /// 生成RSA签名后的订单字符串,给客户端用的
        /// </summary>
        /// <param name="body"></param>
        /// <param name="subject"></param>
        /// <param name="out_trade_no"></param>
        /// <param name="timeout_express"></param>
        /// <param name="total_amount"></param>
        /// <param name="product_code"></param>
        /// <param name="notify_url"></param>
        /// <returns></returns>
        public static string CreateRSASignedOrderString(string body, string subject, string out_trade_no, string timeout_express, string total_amount)
        {
            //从pem文件中读取
            APP_PRIVATE_KEY   = GetCurrentPathByAbs() + "rsa_private_key.pem";
            ALIPAY_PUBLIC_KEY = GetCurrentPathByAbs() + "rsa_alipay_public_key.pem";


            //最后一个参数为false直接将私钥内容写入代码,true从pem文件中读取
            IAopClient client = new DefaultAopClient(gateway, APPID, APP_PRIVATE_KEY, format, version, sign_type, ALIPAY_PUBLIC_KEY, CHARSET, true);
            //实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称如:alipay.trade.app.pay
            AlipayTradeAppPayRequest request = new AlipayTradeAppPayRequest();
            //SDK已经封装掉了公共参数,这里只需要传入业务参数。以下方法为sdk的model入参方式(model和biz_content同时存在的情况下取biz_content)。
            AlipayTradeAppPayModel model = new AlipayTradeAppPayModel();

            model.Body           = body;
            model.Subject        = subject;
            model.TotalAmount    = total_amount;
            model.ProductCode    = product_code;
            model.OutTradeNo     = out_trade_no;
            model.TimeoutExpress = timeout_express;
            request.SetBizModel(model);
            request.SetNotifyUrl(notify_url);
            //这里和普通的接口调用不同,使用的是sdkExecute
            AlipayTradeAppPayResponse response = client.SdkExecute(request);

            string resp = response.Body;

            return(resp);
        }
Beispiel #23
0
        public AlipayTradePrecreateResponse BuildPartyPay(EAliPayApplication app, EStoreInfo store, EUserInfo AgentUI, string TotalAmt, bool needNotifyUrl = true)
        {
            string NotifyUrl = ConfigurationManager.AppSettings["Main_SiteUrl"] + "AliPay/PayNotify";

            _OrderNo = StringHelper.GenerateOrderNo();

            IAopClient aliyapClient = new DefaultAopClient("https://openapi.alipay.com/gateway.do", app.AppId,
                                                           app.Merchant_Private_Key, "json", "1.0", "RSA2", app.Merchant_Public_key, "GBK", false);

            AlipayTradePrecreateRequest request = new AlipayTradePrecreateRequest();
            AlipayTradePrecreateModel   model   = new AlipayTradePrecreateModel();

            model.SellerId                       = store.AliPayAccount;
            model.OutTradeNo                     = _OrderNo;
            model.TotalAmount                    = TotalAmt;
            model.Subject                        = "#" + AgentUI.Name + " 收银台";
            model.Body                           = app.AppName + "-商品";
            model.ExtendParams.HbFqNum           = "3";
            model.ExtendParams.HbFqSellerPercent = "0";


            request.SetBizModel(model);
            if (needNotifyUrl)
            {
                request.SetNotifyUrl(NotifyUrl);
            }

            AlipayTradePrecreateResponse response = aliyapClient.Execute(request, null, store.AliPayAuthToke);

            return(response);
        }
Beispiel #24
0
        public void PayRequest(string tradeno, string subject, string totalAmout, string itemBody)
        {
            DefaultAopClient client = new DefaultAopClient(Config.Gatewayurl, Config.AppId, Config.PrivateKey, "json", "2.0",
                                                           Config.SignType, Config.AlipayPublicKey, Config.CharSet, false);

            // 组装业务参数model
            AlipayTradePagePayModel model = new AlipayTradePagePayModel();

            model.Body        = itemBody;
            model.Subject     = subject;
            model.TotalAmount = totalAmout;
            model.OutTradeNo  = tradeno;
            model.ProductCode = "FAST_INSTANT_TRADE_PAY";

            AlipayTradePagePayRequest request = new AlipayTradePagePayRequest();

            // 设置同步回调地址
            request.SetReturnUrl("http://localhost:5003/Pay/Callback");
            // 设置异步通知接收地址
            request.SetNotifyUrl("");
            // 将业务model载入到request
            request.SetBizModel(model);

            var response = client.SdkExecute(request);

            Console.WriteLine($"订单支付发起成功,订单号:{tradeno}");
            //跳转支付宝支付
            Response.Redirect(Config.Gatewayurl + "?" + response.Body);
        }
Beispiel #25
0
        public ApiMessage <string> Alipay(PayModel pm)
        {
            var                    api    = new ApiMessage <string>();
            IAopClient             client = new DefaultAopClient(URL, APPID, APP_PRIVATE_KEY, "json", "1.0", RSA2, ALIPAY_PUBLIC_KEY, CHARSET, false);
            AlipayTradeAppPayModel model  = new AlipayTradeAppPayModel();
            var                    res    = bll.CkeckData(pm, UserInfo);

            if (!res.Success)
            {
                api.Success = false;
                api.Msg     = res.Msg;
                return(api);
            }
            var oData = res.Data;

            model.Body        = oData.Body;
            model.Subject     = oData.Subject;
            model.TotalAmount = oData.TotalAmount.ToString();
            model.ProductCode = "QUICK_MSECURITY_PAY";
            model.OutTradeNo  = oData.OutTradeNo;


            AlipayTradeAppPayRequest request = new AlipayTradeAppPayRequest();

            request.SetBizModel(model);
            request.SetNotifyUrl(ConfigHelper.WebSiteUrl + "/api/payment/updateorder/alipay");
            AlipayTradeAppPayResponse response = client.SdkExecute(request);

            api.Data = response.Body;
            return(api);
        }
Beispiel #26
0
        private static string GetOrderInfo(string amount)
        {
            //EnvUtils.setEnv(EnvUtils.EnvEnum.SANDBOX);
            IAopClient client = new DefaultAopClient("https://openapi.alipaydev.com/gateway.do", APPID, APP_PRIVATE_KEY, "json", "1.0", "RSA2", ALIPAY_PUBLIC_KEY, CHARSET, false);
            AlipayTradeWapPayRequest request = new AlipayTradeWapPayRequest();
            AlipayTradeWapPayModel   model   = new AlipayTradeWapPayModel
            {
                Body        = HttpUtility.UrlEncode("门诊挂号"),   //"我是测试数据",
                Subject     = HttpUtility.UrlEncode("门诊挂号缴费"), // "App支付测试DoNet",
                TotalAmount = amount,                          //"0.01",
                ProductCode = "QUICK_WAP_WAY",
                OutTradeNo  = "2020060111510",
                //TimeoutExpress = "120m",
                TimeExpire = DateTime.Now.AddMinutes(60).ToString("yyyy-MM-dd HH:mm"),
                QuitUrl    = "http://www.taobao.com/product/113714.html",
            };

            request.SetBizModel(model);
            //request.SetNotifyUrl("外网商户可以访问的异步地址");
            request.SetReturnUrl("https://wwww.baidu.com");
            AlipayTradeWapPayResponse response = client.pageExecute(request);

            return(response.Body);
            //HttpUtility.HtmlEncode是为了输出到页面时防止被浏览器将关键参数html转义,实际打印到日志以及http传输不会有这个问题
            //Response.Write(HttpUtility.HtmlEncode(response.Body));
        }
Beispiel #27
0
        public IActionResult Test()
        {
            DefaultAopClient client = new DefaultAopClient("https://openapi.alipaydev.com/gateway.do", "2016090800466366", "MIIEogIBAAKCAQEAuCcfh+EJHfMwzXC6b8HfzjYDcH7y79dKAdh5Y5rXOO/4y9stKke+F4Pdp7BOzu6N8/jse7xxCiVLdyUO0L/ck5hOWna//fdQPcSbEyYBUQn+CQy7+uDbsZRniXeeaHJBnK5fot3oHzpHe4dScnvG5NKRJAYsaQW5vD8cVc/m31yuocbyPgqUllblK3h8Lg/nh64bKl8e0Hck1EgGm7+W0+IojM9rcMY1BrdIlUiuP25u8I3zPFH5Tjk4otCvm+xDsukeJiftmDrhtmW3cGtTpNFtr6DK+acfNVccyiaGeCidvLcT3ziO8V7Cy1oQVk+8j5qg83xzCslvF0kZwwrQXwIDAQABAoIBAErfbUx7zI8mz5LX4JWLyAk5oNBebTvi1q5Fa6V50UPPHeMUrBpirQE2liqV3pT4HTMy5EOy7GrpmvNIV+u79lz0MfdKDOmfYjqa80ony6U9YNIhIVTxk6Fx617TCc8BlXe01iGMA9KeiW3KKVVuygFDM8vnzqqsr0XAiy7ApuftP4ujFCJhDZ/PSaKB1/YNJQjz/2GRjqbYT5irre3Mjz7FgyN19CJmSnjshdixp0ItOTQ7QsHYE537gGZhEXs+RDFopF+w4y45kfUUh1IpBxD7jlD1zO3OHXJxBqSiJxz4iO8FS/OYdQUMoGpTtJc6bMnmZcLSwnfV9RTIB381BoECgYEA7+AcpfIpKWgc1zOJRKTjBdKe77LTjto30UlyeskpUofKVRqEYTgALL7POlH16L9gA2R8HvsSEmAPGw7P4ptYO+Kfi3TeiG6RwT5K+JSB8g0xqwvDEVOD3May+nfnaz5sMktWNirSFHbbymfh99mj+4E1drv3cOuDJR6v2qicTyECgYEAxIgcUkcG6CpHagxYfaboyvmglbq/9ZD+ruZSvqG877NT0NLqEPZ6ZOd6AS9m/GsC6pUABtFfXK256oZ7H8bqsfIFTfoUbjiy3fXNuniuvqtLTGL+2kyCazhV15kLtX24wCV6M32Yc1DvGPywAI40UG9D6D2MTCuu7KgO715or38CgYA9p8AVU0oLL4yCL+fvceY8X+ekOrWv+RzxuUwojT4GzYpPF5LBHlDFL4I6PkjTuyTlmlVg7S229WPMk6ERYNZsBhL2GGL+dFUYc3d3r0w7N/L1QP+xm2LAQ35LbLhZ02CiCMUvBRCcW/SgcNUfDJzej1Z7n1K5fn9l8h5HOKF8oQKBgBP7Hp4C2KHsAny2qpyDxrE0Ne5jITcPOcWAZzM4cGQSYFgfyWpWFNWDbzUFo7vQCWjeIzWOPdrHUtqUN5pgd+YFjCKEZWVbYFwOrI7jzChYc/xdKDn7g1rxTFDyH22hTZJDfSwU/dXjiZuJvT8hNhJjbY0EDOqFmnA3GeWePJhzAoGAXioZrM79oG/iN59XuAA5Arl5UjkCsKPa1rfALCSfEoJfvH1UAQ1SbuM0MMIAOGJc/yPdDjyv8Kdy7z867gxo6m0vuLdyJ6qL/KI//mNLJpW30I6/pYsWO1LIIxusxTkv459mvGufn1WH0LHpAf4b84/uq2EDszVat7MEt48NlSI=", "json", "2.0",
                                                           "RSA2", "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyWWqIIJ0KKDUPk6fgbxXLxCDqVWTvV4mplocxRsjFPvZC2e4uHs6hq3n8/bc/ZnLcavDTCx56L+TsTKN8w4984pqYPgkYXjWl26hMvVJ2GizjRGw+FeM+1uqiWzrDflX3Cp/o8HKSeFqjA+HXpX+nFg94XJfYIAf8vtHKCusdJE6YRmUZ7lCYH01M59b3KQBeX2q304GwC27xgZ1ZOuqGdngNeeTo0WgTpfKOzgQkUVDNLjVJhxk6i71vzfJ5QUUVIEff1UNlLK1C/kCGDaSY8DGPXni+BfdQekVxdqO1aV5JvaZVW9KrxnXfyAf0FYelBbqym4qzJu98+8eee/oyQIDAQAB", "UTF-8", false);

            var model = new AlipayOpenAuthTokenAppModel
            {
                //如果使用app_auth_code换取token,则为authorization_code,如果使用refresh_token换取新的token,则为refresh_token
                GrantType = "authorization_code",
                //与refresh_token二选一,用户对应用授权后得到,即第一步中开发者获取到的app_auth_code值
                Code = "ab64829e4d5b4e2aabd2ab6bae0dcB72",
                //与code二选一,可为空,刷新令牌时使用
                RefreshToken = ""
            };

            AlipayOpenAuthTokenAppRequest request = new AlipayOpenAuthTokenAppRequest();

            request.SetBizModel(model);

            request.SetReturnUrl("");

            var response = client.Execute(request);

            return(new JsonResult(new { data = response }));
        }
Beispiel #28
0
        public void PayRequest()
        {
            DefaultAopClient client = new DefaultAopClient(Gatewayurl, AppId, PrivateKey, "json", "2.0",
                                                           SignType, AlipayPublicKey, CharSet, false);

            string tradeno = "1"; // 外部订单号,商户网站订单系统中唯一的订单号
            // 组装业务参数model
            AlipayTradePagePayModel model = new AlipayTradePagePayModel();

            model.Body        = "商品描述";  // 商品描述
            model.Subject     = "订单名称";  // 订单名称
            model.TotalAmount = "0.01";  // 付款金额
            model.OutTradeNo  = tradeno; // 外部订单号,商户网站订单系统中唯一的订单号
            model.ProductCode = "FAST_INSTANT_TRADE_PAY";

            AlipayTradePagePayRequest request = new AlipayTradePagePayRequest();

            // 设置同步回调地址
            request.SetReturnUrl("http://localhost:58616/Home/Callback");
            // 设置异步通知接收地址
            request.SetNotifyUrl("http://localhost:58616/Home/Notify");
            // 将业务model载入到request
            request.SetBizModel(model);

            var response = client.SdkExecute(request);

            Console.WriteLine($"订单支付发起成功,订单号:{tradeno}");
            //跳转支付宝支付
            Response.Redirect(Gatewayurl + "?" + response.Body);
        }
Beispiel #29
0
        public ActionResult AlipayOrder(string orderNo)
        {
            IAopClient client = new DefaultAopClient(AlipayConfig.URL, AlipayConfig.APPID, AlipayConfig.APP_PRIVATE_KEY, "json", "1.0", "RSA", AlipayConfig.ALIPAY_PUBLIC_KEY, AlipayConfig.CHARSET, true);
            ////实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称如:alipay.trade.app.pay
            AlipayTradeAppPayRequest request = new AlipayTradeAppPayRequest();
            //SDK已经封装掉了公共参数,这里只需要传入业务参数。以下方法为sdk的model入参方式(model和biz_content同时存在的情况下取biz_content)。
            AlipayTradeAppPayModel model = new AlipayTradeAppPayModel();

            model.Body        = "我是测试数据";
            model.Subject     = "App支付测试DoNet";
            model.TotalAmount = "0.01";
            model.ProductCode = "QUICK_MSECURITY_PAY";
            model.OutTradeNo  = "sadfa" + DateTime.Now.ToString("yyyyMMddHHmmssfff");
            // model.TimeoutExpress = "30m";
            request.SetBizModel(model);
            request.SetNotifyUrl(AlipayConfig.NOTIFY_URL);
            //这里和普通的接口调用不同,使用的是sdkExecute

            AlipayTradeAppPayResponse response = client.SdkExecute(request);

            return(Json(new ResultMessage()
            {
                Code = 0, Msg = HttpUtility.HtmlEncode(response.Body)
            }));
            //HttpUtility.HtmlEncode是为了输出到页面时防止被浏览器将关键参数html转义,实际打印到日志以及http传输不会有这个问题
            // Response.Write(HttpUtility.HtmlEncode(response.Body));
            //log4netHelper.Info(string.Format("支付宝订单参数:{0}", HttpUtility.HtmlDecode(response.Body)));
            //bool flag = AlipaySignature.RSACheckV1(GetRequestPost(), AlipayConfig.APP_PUBLIC_KEY, AlipayConfig.CHARSET, "RSA", false);
            //log4netHelper.Info(string.Format("验签结果:{0}", flag));
            //return Json(new Result(0, HttpUtility.HtmlEncode(response.Body)));
            //页面输出的response.Body就是orderString 可以直接给客户端请求,无需再做处理。
        }
Beispiel #30
0
        /// <summary>
        /// 获取预交易二维码
        /// </summary>
        /// <param name="info"></param>
        public string GetPayQrCode(PayInfo info)
        {
            IAopClient client = new DefaultAopClient("https://openapi.alipay.com/gateway.do", Com.Alipay.Config.APP_ID, Com.Alipay.Config.Private_key);

            AlipayAcquirePrecreateRequest request = new AlipayAcquirePrecreateRequest();

            request.SellerId = info.AlipayId;
            request.SetNotifyUrl("https://www.gotopsports.com/service/NotifyAlipay.aspx");
            request.OutTradeNo = info.BillId;

            string subject;
            string body;

            PayHelper.GetSubjectAndBody(info, out subject, out body);

            request.Subject  = subject;
            request.Body     = body;
            request.TotalFee = info.PayAmount.ToString();

            request.ItBPay = "1d";
            var response = client.Execute <AlipayAcquirePrecreateResponse>(request);

            //调用成功,则处理业务逻辑
            if (response.IsSuccess == "T")
            {
                return(response.QrCode);
            }

            return(null);
        }
Beispiel #31
0
        private static IAopClient GetAlipayClient()
        {
            //֧�������ص�ַ
            // -----ɳ���ַ-----
            string serverUrl = "http://openapi.alipaydev.com/gateway.do";
            // -----���ϵ�ַ-----
            // string serverUrl = "https://openapi.alipay.com/gateway.do";
            //Ӧ��ID
            string appId = "2013092500031084";
            //�̻�˽Կ
            string privateKeyPem = GetCurrentPath() + "aop-sandbox-RSA-private-c#.pem";

            IAopClient client = new DefaultAopClient(serverUrl, appId, privateKeyPem);

            return client;
        }