Beispiel #1
0
        protected virtual string SetPayHelperBase(Utils.WxPayHelper wxPayHelper)
        {
            NameValueCollection postData = LoadPostData();

            if (postData == null)
            {
                return(string.Empty);
            }

            if (string.IsNullOrWhiteSpace(postData["openid"]) ||
                string.IsNullOrWhiteSpace(parameters["transaction_id"]) ||
                string.IsNullOrWhiteSpace(parameters["out_trade_no"]))
            {
                return(string.Empty);
            }

            System.Collections.Generic.Dictionary <string, string> bizObj = new System.Collections.Generic.Dictionary <string, string>();

            bizObj.Add("openid", postData["openid"]);
            bizObj.Add("transid", parameters["transaction_id"]);
            bizObj.Add("out_trade_no", parameters["out_trade_no"]);

            bizObj.Add("deliver_status", "1");
            bizObj.Add("deliver_msg", "OK");

            //先设置基本信息
            wxPayHelper.SetAppId(postData["appid"]);
            wxPayHelper.SetAppKey(this.key2);
            wxPayHelper.SetSignType("SHA1");

            string tmp = wxPayHelper.CreateDeliverNotifyXml(bizObj);

            //Core.Globals.WriteText(new System.Text.StringBuilder(tmp));
            return(tmp);
        }
Beispiel #2
0
        public override void SendRequest()
        {
            string action = HttpContext.Current.Request.QueryString["action"];

            if (string.IsNullOrWhiteSpace(action))
            {
                action = "show";
                //HttpContext.Current.Response.Write("NO ACTION");
                //HttpContext.Current.Response.End();
                //return;
            }
            action = action.ToLower();

            Utils.WxPayHelper wxPayHelper = new Utils.WxPayHelper();
            //先设置基本信息
            wxPayHelper.SetAppId(this.appid);
            wxPayHelper.SetAppKey(this.key2);
            wxPayHelper.SetPartnerKey(this.key);
            wxPayHelper.SetSignType("SHA1");
            //设置请求package信息
            wxPayHelper.SetParameter("bank_type", bank_type);
            wxPayHelper.SetParameter("body", body);                         //商品描述
            wxPayHelper.SetParameter("partner", partner);                   //partner 商户号
            wxPayHelper.SetParameter("out_trade_no", out_trade_no);         //商家订单号
            wxPayHelper.SetParameter("total_fee", total_fee);               //商品金额,以分为单位
            wxPayHelper.SetParameter("fee_type", fee_type);                 //币种,1人民币
            wxPayHelper.SetParameter("notify_url", notify_url);
            wxPayHelper.SetParameter("spbill_create_ip", spbill_create_ip); //用户的公网ip,不是商户服务器IP
            wxPayHelper.SetParameter("input_charset", input_charset);

            //System.Console.Out.WriteLine("生成app支付package:");
            //System.Console.Out.WriteLine(wxPayHelper.CreateAppPackage("test"));
            //System.Console.Out.WriteLine("生成jsapi支付package:");
            //string jsApiPackage = wxPayHelper.CreateBizPackage();
            //System.Console.Out.WriteLine(jsApiPackage);
            //System.Console.Out.WriteLine("生成原生支付url:");
            //System.Console.Out.WriteLine(wxPayHelper.CreateNativeUrl("abc"));
            //System.Console.Out.WriteLine("生成原生支付package:");
            //System.Console.Out.WriteLine(wxPayHelper.CreateNativePackage("0", "ok"));

            //DONE: 输出JS进行网关交互
            string result;

            switch (action)
            {
            case "show":
                Configuration.GatewayProvider provider = Configuration.PayConfiguration.GetConfig().Providers["wechat"] as Configuration.GatewayProvider;
                if (provider != null)
                {
                    this.RedirectToGateway(string.Format(CultureInfo.InvariantCulture,
                                                         HttpContext.Current.Server.HtmlDecode(provider.Attributes["urlFormat"]),
                                                         this.out_trade_no, this.getGateway.Data));
                    return;
                }
                result = "{\"STATUS\":\"ERROR\",\"DATA\":\"GATEWAY PROVIDER NOT FOND\"}";
                break;

            case "bizpackage":
                result = "{\"STATUS\":\"SUCCESS\",\"DATA\":" + wxPayHelper.CreateBizPackage() + "}";
                break;

            default:
                result = "{\"STATUS\":\"ERROR\",\"DATA\":\"NotImplemented\"}";
                break;
            }

            HttpContext.Current.Response.Clear();
            HttpContext.Current.Response.Write(result);
        }