• 大小: 6KB
    文件类型: .rar
    金币: 2
    下载: 0 次
    发布日期: 2024-02-01
  • 语言: C#
  • 标签: 小程序  卡券  

资源简介

在做小程序领券开发时,遇到了很多坑,微信的文档你们懂的,有点反人类。其中相信做小程序卡券遇到最多的应该是“签名错误”。完全按照文档来还是签名错误!生成的签名与签名校验工具一致还是签名错误。。。各种各样的坑搞到焦头烂额,所以我弄好后,写了一个可正常执行的demo,你们可以对照着看,看自己哪里写错了。(包含了小程序代码,以及c#的后台代码。代码50多行,不多)

资源截图

代码片段和文件信息

using System;
using System.Collections.Generic;
using System.IO;
using System.Net;
using System.Net.Security;
using System.Security.Cryptography.X509Certificates;
using System.Text;
using System.Web;


namespace CySoft.Utility
{

    public sealed class WebUtils
    {
        private int _timeout = 150000;
        private string _charset = “utf-8“;
        private string _format = “hash“;

        public WebUtils()
        {

        }

        public WebUtils(string charset int timeout)
        {
            this._charset = charset;
            this._timeout = timeout;
        }

        /// 
        /// 执行HTTP GET请求。
        /// 

        /// 请求地址
        /// 请求参数
        /// 编码字符集
        /// HTTP响应
        public string DoGet(string url IDictionary parameters)
        {
            if (parameters != null && parameters.Count > 0)
            {
                url = url.Contains(“?“) ? string.Format(“{0}&{1}“ url BuildGetQuery(parameters)) :
                    string.Format(“{0}?{1}“ url BuildGetQuery(parameters));
            }

            HttpWebRequest req = GetWebRequest(url “GET“);
            req.ContentType = “application/x-www-form-urlencoded;charset=utf-8“;

            HttpWebResponse rsp = (HttpWebResponse)req.GetResponse();
            //Encoding encoding = Encoding.GetEncoding(rsp.CharacterSet);
            //return GetResponseAsString(rsp encoding);
            string ret = GetRequestStream(rsp);
            return ret;
        }

        /// 
        /// 组装普通文本请求参数。(不排序)
        /// 

        /// Key-Value形式请求参数字典
        /// URL编码后的请求数据
        public static string BuildGetQuery(IDictionary parameters)
        {
            IEnumerator> sortedParams = parameters.GetEnumerator();
            StringBuilder builder = new StringBuilder();
            while (sortedParams.MoveNext())
            {
                string key = sortedParams.Current.Key;
                string value = sortedParams.Current.Value;
                // 忽略参数名或参数值为空的参数
                if (!string.IsNullOrWhiteSpace(key) && !string.IsNullOrWhiteSpace(value))
                    builder.AppendFormat(“{0}={1}&“ key HttpUtility.UrlEncode(value Encoding.GetEncoding(“utf-8“)));
            }

            string content = builder.Remove(builder.Length - 1 1).ToString();
            return content;
        }

        public string GetRequestStream(HttpWebResponse rsp)
        {
            StringBuilder builder = new StringBuilder();
            Stream stream = null;
            try
            {
                stream = rsp.GetResponseStream();
                int count = 0;
                byte[] buffer = new byte[102

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       3237  2019-01-28 15:50  NET(C#)小程序卡券demo.txt

     文件      25390  2019-01-28 15:58  WebUtils.cs

----------- ---------  ---------- -----  ----

                28627                    2


评论

共有 条评论