小程序開發之維護access_token


需求

汽車貸款進單系統,有個電子簽功能.電子簽功能分app和微信遠程簽署.

 

微信遠程簽署時,會分享小程序二維碼.

 

客戶拿到二維碼,掃碼進入自己的單據進行身份認證,(騰訊核身)電子簽~

 

需求點1:

攜帶單號以及其他參數,生成小程序碼~

 

實現V1

根據QRCoder生成二維碼

 

     /// <summary>
        /// 生成二維碼
        /// </summary>
        /// <param name="id">預授信表id</param>
        /// <returns>二維碼md5值,和失效時間</returns>
        [Routing(EHttpMethod.HttpGet, "app/code")]
        public CommonResult<MQCode> CreteCodes(string id)
        {
            var result = CreteCode(id, ECaCategory.PreCredit);
            if (result.WarnResult != null)
            {
                return result.WarnResult;
            }
            return result.Value;
        }


        public CommonResult<MQCode> CreteCode(string id, ECaCategory caCategory)
        {
            string qrcodeid = Tools.NewId();
            if (String.IsNullOrEmpty(id))
            {
                return new WarnResult("參數為空");
            }
            try
            {
                string strCode = "https://open.weixin.qq.com/sns/getexpappinfo?appid=" + _config["WXPrecreditAPPID"] + $"&path=pages/index/index.html?id={id}%26code={qrcodeid}%26time=6#wechat-redirect";
                //strCode = HttpUtility.UrlEncode(strCode);
                QRCodeGenerator qrGenerator = new QRCoder.QRCodeGenerator();
                QRCodeData qrCodeData = qrGenerator.CreateQrCode(strCode, QRCodeGenerator.ECCLevel.Q);
                QRCode qrcode = new QRCode(qrCodeData);
                #region basestring
                string baseICO = "這里是base64二維碼圖標";
                #endregion
                var imgICO = Tools.Base64StringToImage(baseICO);
                //調用生成二維碼
          System.Drawing.Bitmap qrCodeImage = qrcode.GetGraphic(5, System.Drawing.Color.Black, System.Drawing.Color.White, imgICO, 15, 6); var path = "UploadFileTemp\\" + _FileHelper.GetFileName(".jpeg"); //調用保存本地
          qrCodeImage.Save(path, System.Drawing.Imaging.ImageFormat.Jpeg);
          //調用上傳 var result = _FileHelper.UploadFile(path, Guid.NewGuid(), "1200170005"); if (result.WarnResult != null) { throw new Exception(result.WarnResult.Message); } var resModel = _jsonConverter.Deserialize<dynamic>(result.Value); string md5 = resModel.data.md5; if (string.IsNullOrEmpty(md5)) { throw new Exception(result.Value); } else { //存儲二維碼邏輯 var saveResult = _orderCRepository.SaveQRCode(qrcodeid, id, md5, caCategory.ToString()); if (saveResult.WarnResult == null) { return new MQCode() { Md5 = md5, Faildate = saveResult.Value }; } else { return saveResult.WarnResult; } } } catch (Exception ex) { log.LogError("error(000010A692FD70000C05):", ex); return new WarnResult("生成二維碼錯誤,請聯系系統管理員。"); } } public class MQCode { /// <summary> /// 圖片md5 /// </summary> public string Md5 { get; set; } /// <summary> /// 過期時間 /// </summary> public DateTime Faildate { get; set; } }

  

實現v2版本

調用小程序的生成二維碼功能,小程序服務端提供了3種生成方式.

這里選擇了getUnlimited接口,該接口沒有調用數量限制,滿足業務需求.

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM