>  기사  >  위챗 애플릿  >  .net WeChat 공개 계정 개발 - 기본 인터페이스

.net WeChat 공개 계정 개발 - 기본 인터페이스

高洛峰
高洛峰원래의
2017-02-22 15:45:381693검색

이 문서에서는 다음을 포함하여 WeChat 공개 계정 개발 시 기본 인터페이스 사용에 대해 설명합니다.
(1) 권한 토큰(AccessToken)을 얻습니다.
(2) WeChat 서버 주소를 얻습니다. 🎜> (3) 멀티미디어 파일 업로드 및 다운로드
(4) QR 코드 생성 및 표시
(5) 긴 링크를 짧은 링크로 변환합니다.
오픈소스 프로젝트 주소: http://git.oschina.net/xrwang2/xrwang.weixin.PublicAccount
이 글의 소스코드 주소: http://git.oschina.net/xrwang2/xrwang.weixin .PublicAccount /blob/master/xrwang.net/Example/BasicInterface.aspx.cs
이 글의 데모 주소: http://xrwang.net/Example/BasicInterface.aspx
데모 효과는 다음과 같습니다. :

.net WeChat 공개 계정 개발 - 기본 인터페이스

1 권한 토큰 얻기

AccessToken 클래스는 권한 토큰의 관련 속성과 메서드를 캡슐화합니다.
(참고: OAuthAccessToken은 웹 페이지 인증 토큰의 관련 메소드를 캡슐화합니다.)
속성은 다음과 같습니다.
access_token - 토큰 문자열
만료_in - 유효 시간(단위: 초)
정적 메소드는 다음과 같습니다.
가져오기——권한 토큰 가져오기

/// <summary>
    /// 获取许可令牌
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void btnGetAccessToken_Click(object sender,EventArgs e)
    {
        string userName = lbPublicAccount.SelectedValue;
        AccessToken token = AccessToken.Get(userName);
        txtAccessToken.Text = token != null ? token.access_token : "获取许可令牌失败。";
    }

2 WeChat 서버 주소 가져오기

ServerAddresses 클래스는 서버 주소를 가져오기 위한 속성과 메서드를 캡슐화합니다.
속성은 다음과 같습니다:
ip_list - 서버 주소 배열
정적 메서드는 다음과 같습니다:
Get - 서버 주소 가져오기

/// <summary>
    /// 获取微信服务器地址
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void btnGetServerAddress_Click(object sender, EventArgs e)
    {
        ErrorMessage errorMessage;
        ServerAddresses addresses = ServerAddresses.Get(out errorMessage);
        if (errorMessage.IsSuccess && addresses.ip_list != null)
        {
            StringBuilder sb = new StringBuilder();
            foreach (string ip in addresses.ip_list)
                sb.AppendFormat("{0},", ip);
            txtServerAddress.Text = sb.ToString();
        }
        else
            txtServerAddress.Text = string.Format("获取微信服务器地址失败。{0}", errorMessage);
    }

3 멀티미디어 파일 업로드 및 다운로드

MultiMediaHelper 클래스 캡슐화 관련 메서드 멀티미디어 파일에.
정적 방법은 다음과 같습니다.
업로드 - 멀티미디어 파일 업로드
다운로드 - 멀티미디어 파일 다운로드
GetDownloadUrl - 멀티미디어 파일 주소 가져오기
GetVideoMediaId - 그룹 메시지에서 비디오 미디어 ID 가져오기

/// <summary>
    /// 上传多媒体文件
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void btnUpload_Click(object sender, EventArgs e)
    {
        string userName = lbPublicAccount.SelectedValue;
        MultiMediaTypeEnum type = (MultiMediaTypeEnum)Enum.Parse(typeof(MultiMediaTypeEnum), lbMultiMediaType.SelectedValue);
        string filename = fileUpload.FileName;
        byte[] bytes = fileUpload.FileBytes;
        ErrorMessage errorMessage;
        MultiMediaUploadResult result = MultiMediaHelper.Upload(userName, type, filename, bytes, out errorMessage);
        if (errorMessage.IsSuccess && result != null)
            hlShowMultiMedia.NavigateUrl = MultiMediaHelper.GetDownloadUrl(AccessToken.Get(userName).access_token, result.MediaId);
        else
            hlShowMultiMedia.NavigateUrl = string.Format("javascript:alert(&#39;上传多媒体文件失败。\r\n{0}&#39;);", errorMessage);
    }

上传多媒体文件,并生成下载链接的示例

4 QR 코드 생성 및 표시

QrCode 클래스는 QR 코드와 관련된 속성과 메서드를 캡슐화합니다.
속성은 다음과 같습니다.
ticket - QR 코드의 티켓
만료_초 - QR 코드의 유효 시간(단위: 초)
url - QR 코드 이미지를 파싱한 후의 주소
정적 방법은 다음과 같습니다.
생성——QR 코드 생성. 다양한 오버로드 방식으로 다양한 유형의 QR 코드를 생성할 수 있습니다.
GetUrl——QR 코드 이미지의 주소 가져오기

/// <summary>
    /// 创建二维码
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void btnCreateQrCode_Click(object sender, EventArgs e)
    {
        string userName = lbPublicAccount.SelectedValue;
        string strSceneId = txtSceneId.Text;
        QrCode qrcode=null;
        ErrorMessage errorMessage;
        if( cbIsTemple.Checked)
        {
            int expireSeconds = int.Parse(txtExpireSeconds.Text);
            int sceneId;
            if (int.TryParse(strSceneId, out sceneId))
                qrcode = QrCode.Create(userName, expireSeconds, sceneId, out errorMessage);
            else
                errorMessage = new ErrorMessage(ErrorMessage.ExceptionCode, "场景值id必须为整数。");
        }
        else
        {
            int sceneId;
            if (int.TryParse(strSceneId, out sceneId))
                qrcode = QrCode.Create(userName, sceneId, out errorMessage);
            else
                qrcode = QrCode.Create(userName, strSceneId, out errorMessage);
        }
        if (errorMessage.IsSuccess && qrcode != null)
            imgQrCode.ImageUrl = QrCode.GetUrl(qrcode.ticket);
        else
            imgQrCode.ImageUrl = "";
    }

5 긴 링크 변환 짧은 링크로

ShortUrl은 긴 링크를 짧은 링크로 변환하는 방법을 요약합니다.

정적 방법은 다음과 같습니다.
Get - 긴 링크를 짧은 링크로 변환

/// <summary>
    /// 获取短链接
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void btnGetShortUrl_Click(object sender, EventArgs e)
    {
        string userName = lbPublicAccount.SelectedValue;
        ErrorMessage errorMessage;
        string shortUrl = ShortUrl.Get(userName, txtLongUrl.Text, out errorMessage);
        if (errorMessage.IsSuccess && string.IsNullOrWhiteSpace(shortUrl))
            txtShortUrl.Text = shortUrl;
        else
            txtShortUrl.Text = string.Format("获取短链接失败。{0}", errorMessage);
    }

이 기사를 읽어주셔서 감사합니다. 도움이 되기를 바랍니다.

더 많은 .net WeChat 공개 계정 개발 - 기본 인터페이스 관련 기사를 보려면 PHP 중국어 웹사이트를 주목하세요!


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.