精华内容
下载资源
问答
  • tp3.2实现pc端扫码支付 有文档 有截图 有底层文件 包含所有用到的文件
  • 微信生成二维码(带参数scene)

    千次阅读 2020-01-15 11:00:25
    微信生成二维码参考文档 下面是Controller层 /** * 接收二维码 * @param request * @return * @throws IOException */ @ApiResponses(value = { @ApiResponse(code = 100, message = "请求成功") }...

    参考微信文档,这是最主要的,一切以这个为主
    微信生成二维码参考文档

    下面是Controller层

    /**
    	* 接收二维码
    	* @param request
    	* @return
    	* @throws IOException 
    	*/
    
    	@ApiResponses(value = { @ApiResponse(code = 100, message = "请求成功") })
    	@ApiOperation(value = "接收二维码")
    	@PostMapping(value="/twoCode")
    	public Object twoCode(@RequestBody TwoCodeParameters twoCodeParameters,HttpServletRequest request) {
    		// 获取accessToken
    		String accessToken = TwoCode.getToken();
    		// 获取图片地址
    		String imageUrl = TwoCode.getminiqrQr(accessToken, twoCodeParameters,request);
    		// 返回地址给前端
    		JSONObject data = new JSONObject();
    		data.put("imageUrl",imageUrl);
    		return data;
    	}
    

    下面的是两个工具类,仅供参考

    package com.bixin.user.util;
    
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.PrintWriter;
    import java.net.URL;
    import java.net.URLConnection;
    import java.util.Iterator;
    import java.util.Map;
    
    public class WXUrlUtil {
    
        /** 
             * 向指定 URL 发送POST方法的请求 
             * 
             * @param url 发送请求的 URL 
             * @param param 请求参数 
             * @return 所代表远程资源的响应结果 
             */
    
        public static String sendPost(String url, Map<String, ?> paramMap) {
            PrintWriter out = null;
            BufferedReader in = null;
            String result = "";
            String param = "";
            Iterator<String> it = paramMap.keySet().iterator();
            while(it.hasNext()) {
                String key = it.next();
                param += key + "=" + paramMap.get(key) + "&";
            }
            try {
                URL realUrl = new URL(url);
                // 打开和URL之间的连接 
                URLConnection conn = realUrl.openConnection();
                // 设置通用的请求属性 
                conn.setRequestProperty("accept", "*/*");
                conn.setRequestProperty("connection", "Keep-Alive");
                conn.setRequestProperty("Accept-Charset", "utf-8");
                conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
                // 发送POST请求必须设置如下两行 
                conn.setDoOutput(true);
                conn.setDoInput(true);
                // 获取URLConnection对象对应的输出流 
                out = new PrintWriter(conn.getOutputStream());
                // 发送请求参数 
                out.print(param);
                // flush输出流的缓冲 
                out.flush();
                // 定义BufferedReader输入流来读取URL的响应 
                in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));
                String line;
                while ((line = in.readLine()) != null) {
                    result += line;
                }
            } catch (Exception e) {
                System.out.println(e);
            }
            //使用finally块来关闭输出流、输入流 
            finally{
                try{
                    if(out!=null){
                        out.close();
                    }
                    if(in!=null){
                        in.close();
                    }
                }
                catch(IOException ex) {
                    ex.printStackTrace();
                }
            }
            return result;
    
        }
    }
    
    
    
    package com.bixin.user.util;
    
    import com.alibaba.fastjson.JSONObject;
    import com.bixin.user.model.TwoCodeParameters;
    
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import java.io.*;
    import java.net.HttpURLConnection;
    import java.net.URL;
    import java.util.LinkedHashMap;
    import java.util.Map;
    
    public class TwoCode {
        /*
         * 获取 token
       * 普通的 get 可获 token
         */
        public static String getToken() {
            try {
                Map<String, String> map = new LinkedHashMap<String, String>();
                map.put("grant_type", "client_credential");
                map.put("appid", "改成自己的appid");//
                map.put("secret", "改成自己的secret");
                String rt = WXUrlUtil.sendPost("https://api.weixin.qq.com/cgi-bin/token", map);
                System.out.println("what is:" + rt);
    
                JSONObject json = JSONObject.parseObject(rt);
    
                if (json.getString("access_token") != null || json.getString("access_token") != "") {
                    return json.getString("access_token");
    
                } else {
                    return null;
                }
            } catch (Exception e) {
                e.printStackTrace();
                return null;
            }
        }
    
    
        /*
         * 获取 二维码图片
       * 
         */
        public static String getminiqrQr(String accessToken, TwoCodeParameters twoCodeParameters,HttpServletRequest request) {
    
    
    
            String codeUrl = "D:\\imageTest\\"+twoCodeParameters.getExtensionId()+".jpg";
            String twoCodeUrl = "http://192.168.31.213:8020/images/"+twoCodeParameters.getExtensionId()+".jpg";
    
    
            try {
                URL url = new URL("https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=" + accessToken);
                HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
                httpURLConnection.setRequestMethod("POST");// 提交模式
                // conn.setConnectTimeout(10000);//连接超时 单位毫秒
                // conn.setReadTimeout(2000);//读取超时 单位毫秒
                // 发送POST请求必须设置如下两行
                httpURLConnection.setDoOutput(true);
                httpURLConnection.setDoInput(true);
                // 获取URLConnection对象对应的输出流
                PrintWriter printWriter = new PrintWriter(httpURLConnection.getOutputStream());
                // 发送请求参数
    
                JSONObject paramJson = new JSONObject();
                long timeMillis = System.currentTimeMillis();
    //            paramJson.put("scene",  "extensionId="+twoCodeParameters.getExtensionId()+"&extensionType="+twoCodeParameters.getExtensionType());
                paramJson.put("scene",  twoCodeParameters.getExtensionId()  +"&"+ twoCodeParameters.getExtensionType());
                paramJson.put("page", "pages/views/vip-center");
                paramJson.put("width", 430);
                paramJson.put("is_hyaline", false);
                //line_color生效
                paramJson.put("auto_color", false);
                JSONObject lineColor = new JSONObject();
                lineColor.put("r", 0);
                lineColor.put("g", 0);
                lineColor.put("b", 0);
                paramJson.put("line_color", lineColor);
    
                printWriter.write(paramJson.toString());
                // flush输出流的缓冲
                printWriter.flush();
                //开始获取数据
                BufferedInputStream bis = new BufferedInputStream(httpURLConnection.getInputStream());
                OutputStream os = new FileOutputStream(new File(codeUrl));
                int len;
                byte[] arr = new byte[1024];
                while ((len = bis.read(arr)) != -1) {
                    os.write(arr, 0, len);
                    os.flush();
                }
                os.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
            return twoCodeUrl;
        }
    
    
    }
    
    
    

    还有一个映射穿透配置类(当然也可以在配置文件里做配置,下面会给一张图)

    package com.bixin.user.config;
    
    import org.springframework.context.annotation.Configuration;
    import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
    import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
    
    @Configuration
    public class GHCWebMvcConfig extends WebMvcConfigurationSupport {
    
        @Override
        public void addResourceHandlers(ResourceHandlerRegistry registry) {
    // TODO Auto-generated method stub
    registry.addResourceHandler("/images/**").addResourceLocations("file:D:/imageTest/");
            super.addResourceHandlers(registry);
    
        }
    
    
    }
    
    

    在这里插入图片描述

    微信小程序码的生成(java)

    展开全文
  • java web项目使用qrcode创建二维码方法示例,可使用微信进行扫码查看,直接在web前端运行,在界面上显示生成二维码
  • XPosed微信自动生成二维码
  • 此文档包含微信二维码图片生成及制作过程和java开发二维码的代码
  • 但是微信有一个特殊的方法用于生成自定义的二维码,这就让我们能够在PC上显示二维码,而二维码的值可以是我们定义的。另外看微信开发文档中存在一个scan事件,可以检测用户使用微信扫描二维码并获取值。其实问题的...
  • 微信扫描二维码提示在浏览器中打开
  • 本文将教你使用 Python 的图像处理库 pillow,轻松批量提取图片中间的方形二维码部分。小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • C# 微信生成二维码

    千次阅读 2017-11-08 10:26:43
    /// 生成二维码 /// /// 二维码信息 /// 图片 public Bitmap GetGenerationCode(string msg) { BarcodeWriter writer = new BarcodeWriter(); writer.Format = BarcodeFormat.QR_CODE; writer.Options....

    1、下载ThoughtWorks.QRCode.dll 

                 zxing.dll  添加引用命名空间

     

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using ThoughtWorks.QRCode.Codec;
    using ZXing;
    
    namespace WindowsForm
    {
        public partial class WeChatCode : Form
        {
            public WeChatCode()
            {
                InitializeComponent();
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                if(string.IsNullOrEmpty(textBox1.Text))
                {
                    MessageBox.Show("请输入要生成的二维码!");
                    return;
                }
                GetGenerationCode(textBox1.Text);
            }
            /// <summary>
            /// 生成二维码
            /// </summary>
            /// <param name="msg">二维码信息</param>
            /// <returns>图片</returns>
            public Bitmap GetGenerationCode(string msg)
            {
                BarcodeWriter writer = new BarcodeWriter();
                writer.Format = BarcodeFormat.QR_CODE;
                writer.Options.Hints.Add(EncodeHintType.CHARACTER_SET, "UTF-8");//编码问题
                writer.Options.Hints.Add(EncodeHintType.ERROR_CORRECTION, ZXing.QrCode.Internal.ErrorCorrectionLevel.H);
                const int codeSizeInPixels = 250;   //设置图片长宽
                writer.Options.Height = writer.Options.Width = codeSizeInPixels;
                writer.Options.Margin = 0;//设置边框
                ZXing.Common.BitMatrix bm = writer.Encode(msg);
                Bitmap img = writer.Write(bm);
                pictureBox1.Image = img;
                return img;
            }
        }
    }


    控件如图

     

    测试如下

    展开全文
  • 微信支付二维码源码
  • 微信二维码生成,包括临时二维码和永久二维码
  • 为了生成微信和支付宝的二维码,我找遍网络,发现zint非常好,文件中含delphi 使用的方法,已在项目中使用。文件code.txt 是demo,是截取了项目中生成二维码部分的程序。一定可以使用。
  • 任何URL都可生成二维码,可以用微信扫一扫跳转,用C#的ASP.NET实现。解决上一版本小bug,本人腾讯微博:http://t.qq.com/djk8888,欢迎交流
  • 结合了express+request+config+wechat等模块,实现了获取微信二维码url地址和ticket,事件推送服务
  • 为了满足用户渠道推广分析和用户帐号绑定等场景的需要,公众平台提供了生成带参数二维码的接口。使用该接口可以获得多个带不同场景值的二维码,用户扫描后,公众号可以接收到事件推送。 目前有2种类型的二维码: 1...

    为了满足用户渠道推广分析和用户帐号绑定等场景的需要,公众平台提供了生成带参数二维码的接口。使用该接口可以获得多个带不同场景值的二维码,用户扫描后,公众号可以接收到事件推送。

    目前有2种类型的二维码:

    1、临时二维码,是有过期时间的,最长可以设置为在二维码生成后的30天(即2592000秒)后过期,但能够生成较多数量。临时二维码主要用于帐号绑定等不要求二维码永久保存的业务场景
    2、永久二维码,是无过期时间的,但数量较少(目前为最多10万个)。永久二维码主要用于适用于帐号绑定、用户来源统计等场景。

    用户扫描带场景值二维码时,可能推送以下两种事件:

    如果用户还未关注公众号,则用户可以关注公众号,关注后微信会将带场景值关注事件推送给开发者。

    如果用户已经关注公众号,在用户扫描后会自动进入会话,微信也会将带场景值扫描事件推送给开发者。

    获取带参数的二维码的过程包括两步,首先创建二维码ticket,然后凭借ticket到指定URL换取二维码。

    创建二维码ticket

    每次创建二维码ticket需要提供一个开发者自行设定的参数(scene_id),分别介绍临时二维码和永久二维码的创建二维码ticket过程。

    注意
    expire_seconds 该二维码有效时间,以秒为单位。 最大不超过2592000(即30天),此字段如果不填,则默认有效期为30秒。
    action_name 二维码类型,QR_SCENE为临时的整型参数值,QR_STR_SCENE为临时的字符串参数值,QR_LIMIT_SCENE为永久的整型参数值,QR_LIMIT_STR_SCENE为永久的字符串参数值
    action_info 二维码详细信息
    scene_id 场景值ID,临时二维码时为32位非0整型,永久二维码时最大值为100000(目前参数只支持1–100000)
    scene_str 场景值ID(字符串形式的ID),字符串类型,长度限制为1到64

    <?php
    namespace app\api\model;
    set_time_limit(30);
    
    class WxQrcode{
        //构造方法
        static $qrcode_url = "https://api.weixin.qq.com/cgi-bin/qrcode/create?";
        static $token_url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&";
        static $qrcode_get_url = "https://mp.weixin.qq.com/cgi-bin/showqrcode?";
    
        //生成二维码
        public function getEwm($fqid,$type = 1){
            $appid = '你的appid';
            $secret = '你的secret';
            $ACCESS_TOKEN = $this->getToken($appid,$secret);
            $url = $this->getQrcodeurl($ACCESS_TOKEN,$fqid,$type);
            save_log('测试保存的路径'.$url.'fid'.$fqid);
            return $this->DownLoadQr($url,time());
        }
    
        protected function getQrcodeurl($ACCESS_TOKEN,$fqid,$type = 1){
            $url = self::$qrcode_url.'access_token='.$ACCESS_TOKEN;
            if($type == 1){
                //生成永久二维码
                $qrcode= '{"action_name": "QR_LIMIT_SCENE", "action_info": {"scene": {"scene_str": '.$fqid.'}}}';
            }else{
                //生成临时二维码
                $qrcode = '{"expire_seconds": 604800, "action_name": "QR_STR_SCENE", "action_info": {"scene": {"scene_str": '.$fqid.'}}}';
            }
            $result = $this->http_post_data($url,$qrcode);
            $oo = json_decode($result[1]);
            if (empty($oo->ticket)){
                return false;
            }
            if(!$oo->ticket){
                $this->ErrorLogger('getQrcodeurl falied. Error Info: getQrcodeurl get failed');
                exit();
            }
            $url = self::$qrcode_get_url.'ticket='.$oo->ticket.'';
            return $url;
        }
    
        protected function getToken($appid,$secret){
            $ACCESS_TOKEN = file_get_contents(self::$token_url."appid=$appid&secret=$secret");
            $ACCESS_TOKEN = json_decode($ACCESS_TOKEN);
            $ACCESS_TOKEN = $ACCESS_TOKEN->access_token;
            return $ACCESS_TOKEN;
        }
    
        protected function http_post_data($url, $data_string) {
    
            $ch = curl_init();
            curl_setopt($ch, CURLOPT_POST, 1);
            curl_setopt($ch, CURLOPT_URL, $url);
            curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
            curl_setopt($ch, CURLOPT_HTTPHEADER, array(
                    'Content-Type: application/json; charset=utf-8',
                    'Content-Length: ' . strlen($data_string))
            );
            ob_start();
            curl_exec($ch);
            if (curl_errno($ch)) {
                $this->ErrorLogger('curl falied. Error Info: '.curl_error($ch));
            }
            $return_content = ob_get_contents();
            ob_end_clean();
            $return_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
            return array($return_code, $return_content);
        }
    
        //下载二维码到服务器
        protected function DownLoadQr($url,$filestring){
            if($url == ""){
                return false;
            }
            $filename = $filestring.rand(0,99999999999).'.jpg';
            ob_start();
            readfile($url);
            $img=ob_get_contents();
            ob_end_clean();
            $size=strlen($img);
            $fp2=fopen('static/qrcode/'.$filename,"a");
            if(fwrite($fp2,$img) === false){
                $this->ErrorLogger('dolwload image falied. Error Info: 无法写入图片');
                exit();
            }
            fclose($fp2);
            return 'static/qrcode/'.$filename;
        }
    
        //错误日志
        private function ErrorLogger($errMsg){
            $logger = fopen('log.txt', 'a+');
            fwrite($logger, date('Y-m-d H:i:s')." Error Info : ".$errMsg."\r\n");
            fclose($logger);
        }
    
    }
    
    

    廖圣平博客整理
    参考微信官方文档

    展开全文
  • 上面href里面设置的是样式加密后的,加密地址是http://tool.chinaz.com/Tools/Base64.aspx style是设置二维码下面的文字颜色 self_redirect这个是用于跳转用,如果是true那么就是在自身框架内加载跳转新页面因为是...

    <script type="text/javascript" src="http://res.wx.qq.com/connect/zh_CN/htmledition/js/wxLogin.js"></script> 

      <div class="code" id="wxImg">

     var path = "http://" + window.location.host + "/member/wxlogin";
            var obj = new WxLogin({
                self_redirect: false,
                id: "wxLoginImg",
                appid: "wxe2d9677a44d09661",
                scope: "snsapi_login",
                redirect_uri: path,
                state: Math.ceil(Math.random() * 1000),
                style: "white",
                href: "data:text/css;base64,LmltcG93ZXJCb3ggLnFyY29kZSB7d2lkdGg6IDExMHB4O30NCi5pbXBvd2VyQm94IC50aXRsZSB7ZGlzcGxheTogbm9uZTt9DQouaW1wb3dlckJveCAuaW5mbyB7d2lkdGg6IDExMHB4O30NCi5zdGF0dXNfaWNvbiB7ZGlzcGxheTogbm9uZX0NCi5pbXBvd2VyQm94IC5zdGF0dXMge3RleHQtYWxpZ246IGNlbnRlcjt9DQppbWd7dmVydGljYWwtYWxpZ246bWlkZGxlO2JvcmRlcjowO30="
            });

    上面href里面设置的是样式加密后的,加密地址是http://tool.chinaz.com/Tools/Base64.aspx
    style是设置二维码下面的文字颜色
    self_redirect这个是用于跳转用,如果是true那么就是在自身框架内加载跳转新页面因为是嵌入的框架,如果是false,那么就可以整个页面跳转新页面
     

    主要是appid和redirect_uri参数配置详情参见https://developers.weixin.qq.com/doc/oplatform/Website_App/WeChat_Login/Wechat_Login.html

    展开全文
  • 微信API 生成二维码方法,其中有与微信关联的支付,一级微信二维码生成的例子
  • 5月最新微信名片个性微信名片二维码名片电子名片网站整站源码
  • https://blog.csdn.net/my_batis/article/details/111193350 效果图查看地址 测试 连接: http://localhost:8086/musice/qrcode
  • 微信小程序生成二维码插件,可以直接生成 ,传入参数可以直接使用使用的canvas技术
  • 微信二维码活码工具,生成微信群活码,随时可以切换二维码微信官方群二维码有效期是7天,过期后无法扫码进群,或者是群人数满200人就无法扫码进群,如果我们在推广的时候,群满人或者过期了,别人还想进群,我们...
  • 好久没有写文章了,最近公司要做海报分享的活动,需要在小程序中生成扫了之后可以跳转普通网页的二维码,就在github上面找了一下,确实找到了一个兼容兼容性比较不错的,给打加分享一下。 中间尝试了不少,有些在...
  • 微信生成二维码开发

    2020-04-13 18:19:57
    微信二维码开发说明文档:https://developers.weixin.qq.com/doc/offiaccount/Account_Management/Generating_a_Parametric_QR_Code.html 1.获取access_token 2.获取ticket 3.获取二维码ticket后,用ticket换取...
  • 第三方授权和微信二维码生成.java开发微信
  • 微信生成二维码

    千次阅读 2016-09-22 17:47:46
    生成带参二维码: 1、临时二维码,是有过期时间的,最长可以设置为在二维码生成后的30天(即2592000秒)后过期,但能够生成较多数量。临时二维码主要用于帐号绑定等不要求二维码永久保存的业务场景 2、永久...
  • 解决H5在微信浏览器中保存联系人问题,利用QRCode.js离线 生成二维码。 主要是通过获取 DOM 的标签,再通过 HTML5 Canvas 绘制而成,不依赖任何库,
  • 微信二维码活码工具,生成微信群活码,随时可以切换二维码微信官方群二维码有效期是 7 天,过期后无法扫码进群,或者是群人数满 200 人就无法扫码进群,如果我们在推广的时候,群满人或者过期了,别人还想进群,...
  • Java用ZXing开发一般的二维码和带图片的二维码,模仿微信二维码的效果实现。 首先说下,QRCode是日本人开发的,ZXing是google开发,barcode4j也是老美开发的,barcode4j对一维条形码处理的很好,而且支持的格式很多...
  • 这是一个php封装的微信分享图片生成类,我已经封装成一个类文件,创建对象,传入背景...然后调用create方法,即可生成一张带有微信二维码和个人图像的微信广告图片。经常用来转发给好友,或者分享到朋友圈,发展粉丝。
  • 微信生成二维码长按识别

    千次阅读 2016-08-24 15:05:23
    微信开发,解决jquery.qrcode.min.js生成二维码微信中长按识别

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 42,648
精华内容 17,059
关键字:

微信生成二维码