加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

微信移动支付V3开发详细教程服务端采用.net mvc webapi(C#)

发布时间:2020-12-14 22:55:16 所属栏目:大数据 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 /// summary /// 生成微信支付签名,生成结果直接在可以端提交即可 /// /summary /// returns/returns public static string partnerid = ""; //Partn

以下代码由PHP站长网 52php.cn收集自互联网

现在PHP站长网小编把它分享给大家,仅供参考

/// <summary>
        /// 生成微信支付签名,生成结果直接在可以端提交即可
        /// </summary>
        /// <returns></returns>
        public static string partnerid = ""; //PartnerID
        public static string partnerkey = ""; //PartnerKey
        public static string mchid = ""; //mchid
        public static string appId = ""; //appid
        public static string appsecret = ""; //appsecret
        public static string appkey = ""; //paysignkey(非appkey 在微信商户平台设置 (md5)222222222211) 
        public static string timeStamp = ""; //时间戳
        public static string nonceStr = ""; //随机字符串
        public static string notify_url = "http://api.kwstu.com/Pay/WxNotifyUrl"; //支付完成后的回调处理页面,*替换成notify_url.asp所在路径
        public static string prepayId = ""; //预支付ID
        public static string sign = "";     //为了获取预支付ID的签名
        public static string paySign = "";  //进行支付需要的签名
        public static string package = "";  //进行支付需要的包
        public HttpResponseMessage PostWxConfirmPay()
        {
                    //生成订单业务逻辑代码
 
 
 
 
 
 
                    //创建支付应答对象
                    var packageReqHandler = new RequestHandler();
                    //初始化
                    packageReqHandler.init();
                    timeStamp = TenpayUtil.getTimestamp();
                    nonceStr = TenpayUtil.getNoncestr();
                    //设置package订单参数
                    packageReqHandler.setParameter("appid",appId);
                    packageReqHandler.setParameter("body",unitBase.NAME + "于" + DateTime.Now.ToString("yyyy-MM-dd") + "在线预订“" + zphBase.ZPHNAME + "”的" + zphZwService.ZWID + "号展位,缴费" + price + "元。"); //商品信息 127字符
                    packageReqHandler.setParameter("mch_id",mchid);
                    packageReqHandler.setParameter("nonce_str",nonceStr.ToLower());
                    packageReqHandler.setParameter("notify_url",notify_url);
                    packageReqHandler.setParameter("out_trade_no",checkId); //商家订单号
                    packageReqHandler.setParameter("spbill_create_ip",HttpContext.Current.Request.UserHostAddress); //用户的公网ip,不是商户服务器IPHttpContext.Current.Request.UserHostAddress
                    packageReqHandler.setParameter("total_fee",(int.Parse(price)*100).ToString()); //商品金额,以分为单位(money * 100).ToString()
                    packageReqHandler.setParameter("trade_type","APP");
                    //获取package包
                    sign = packageReqHandler.CreateMd5Sign("key",appkey);
                    packageReqHandler.setParameter("sign",sign);
                    string data = packageReqHandler.parseXML();
                    string prepayXml = HttpUtil.Send(data,"https://api.mch.weixin.qq.com/pay/unifiedorder");
                    //获取预支付ID
                    var xdoc = new XmlDocument();
                    xdoc.LoadXml(prepayXml);
                    XmlNode xn = xdoc.SelectSingleNode("xml");
                    XmlNodeList xnl = xn.ChildNodes;
                    if (xnl.Count > 7)
                    {
                        prepayId = xnl[7].InnerText;
                        package = string.Format("prepay_id={0}",prepayId);
                    }
                    //设置支付参数
                    var paySignReqHandler = new RequestHandler();
                    paySignReqHandler.setParameter("appid",appId);
                    paySignReqHandler.setParameter("noncestr",nonceStr.ToLower());
                    paySignReqHandler.setParameter("package","Sign=WXPay");
                    paySignReqHandler.setParameter("partnerid",partnerid);
                    paySignReqHandler.setParameter("prepayid",prepayId);
                    paySignReqHandler.setParameter("timestamp",timeStamp);
                    paySign = paySignReqHandler.CreateMd5Sign("key",appkey);
                    var reList = new List<WxPayListModel>();
                    var reModel = new WxPayListModel();
                    reModel.appid = appId;
                    reModel.noncestr = nonceStr.ToLower();
                    reModel.package = "Sign=WXPay";
                    reModel.partnerid = partnerid;
                    reModel.prepayid = prepayId;
                    reModel.timestamp = timeStamp;
                    reModel.sign = paySign;
                    reList.Add(reModel);
 
        }

相关资料获取地址:https://item.taobao.com/item.htm?spm=686.1000925.0.0.AlZkml&id=524281028471
原文地址:http://www.kwstu.com/ArticleView/netmvc_201511132050268716

以上内容由PHP站长网【52php.cn】收集整理供大家参考研究

如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读