生成微信二维码

经常看到一些二维码,感到好奇,自己也就学习写了个生成二维码的程序玩玩。
主要用到Qrcode_swetake.jar这个jar包来实现把传进来的String类型数据转换为byte[][]的二位数组类型。最后生成二维码图片。

import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.UnsupportedEncodingException;
import javax.imageio.ImageIO;
import com.swetake.util.Qrcode;
/**
* @className:Qrcode
* @Desription:二维码生成系统
* @author zhaoxu
* @date 2017年11月6日 晚上9:44
*/

public class ErWeiMa {
    public static void main(String args[]){
        long start = (System.currentTimeMillis())%10000000;//使得生成的图片名称不一样
        //写入内容参数和图片所存的地址
        QrcodeImg("这里填写传入的内容或者网址","F:/erweima/"+start+".png");
    }

    /**
     * @Title QrcodeImg
     * @Description 二维码生成核心方法
     * @param content
     * @param imgPath 设定文件
     */
    public static void QrcodeImg(String content,String imgPath){


        //实例化一个Qrcode对象
        Qrcode qrcode = new Qrcode();
        //设置二维码的排错率 18%的空间存放错误信息
        qrcode.setQrcodeErrorCorrect('M');
        //编码
        qrcode.setQrcodeEncodeMode('B');
        //版本
        qrcode.setQrcodeVersion(7);

        //设置大小
        int width = 140;
        int height = 140;
        //开始绘制---->画板
        BufferedImage bf = new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);
        //绘制工具
        Graphics2D gs = bf.createGraphics();
        //设置背景颜色
        gs.setBackground(Color.white);
        //设置绘制区域
        gs.clearRect(0, 0, width, height);
        //设置画笔颜色
        gs.setColor(Color.black);

        //正式绘制 根据内容绘制
        //把传进来的string内容转变成比优特型,然后放进二位Boolean数组中
        try {
        byte[] contentByte = content.getBytes("utf-8");
        boolean[][] codesOut = qrcode.calQrcode(contentByte);
        //拿到二维码中所有的内容进行判断
        //if (contentByte.length > 0 && contentByte.length < 123){
        for(int i = 0;i<codesOut.length;i++){
            for(int j = 0;j<codesOut.length;j++){
                if(codesOut[j][i]){
                    //如果在当前位置,就把当前位置涂黑
                    gs.fillRect(j*3+2, i*3+2, 3, 3);//前面两个参数是每次x y轴的坐标,后面两个参数是每次正方形的大小
                }
            }
        }
        gs.dispose();

        //文件输出
        File imageFile = new File(imgPath);
        ImageIO.write(bf, "png", imageFile);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}
要在 Vue PC端生成微信二维码进行支付,你可以使用第三方库,如 `qrcode` 来生成二维码,并且使用微信支付的 API 来实现支付功能。 首先,你需要安装 `qrcode` 库。你可以使用 npm 命令进行安装: ``` npm install qrcode --save ``` 接下来,在你的 Vue 组件中,你可以使用以下代码生成二维码: ```javascript import QRCode from 'qrcode' export default { data() { return { qrcodeUrl: '' // 用于存储生成二维码图片地址 } }, methods: { generateQRCode() { const el = this.$refs.qrcode const url = '这里是二维码的内容,可以是一个链接或其他字符串' QRCode.toDataURL(url, { errorCorrectionLevel: 'H', margin: 1 }) .then(dataUrl => { this.qrcodeUrl = dataUrl }) .catch(err => { console.error(err) }) } } } ``` 这里使用 `QRCode.toDataURL()` 方法生成二维码,并将生成的图片地址存储在 `qrcodeUrl` 变量中。你可以将 `qrcodeUrl` 绑定到一个 `img` 标签上来显示二维码图片。 接下来,你需要实现微信支付功能。你可以使用微信支付的 API 来完成支付流程,具体步骤如下: 1. 获取支付参数:你需要向服务器发送请求,获取支付所需的参数,包括订单号、金额、签名等。 2. 调起微信支付:调用 `wx.chooseWXPay()` 方法,将支付参数传递给微信支付接口进行支付。 ```javascript // 获取支付参数 axios.get('/api/getPayParams') .then(res => { const params = res.data // 调起微信支付 wx.chooseWXPay({ timestamp: params.timestamp, // 时间戳 nonceStr: params.nonceStr, // 随机字符串 package: params.package, // 包含预支付订单 ID 的字符串 signType: params.signType, // 签名类型 paySign: params.paySign, // 签名 success: res => { // 支付成功 console.log('支付成功', res) }, fail: err => { // 支付失败 console.error('支付失败', err) } }) }) .catch(err => { console.error(err) }) ``` 注意,以上代码中的 `wx.chooseWXPay()` 方法需要在微信公众号中使用,如果需要在 PC 端使用,可以使用模拟器或者其他工具进行测试。 希望这能帮助到你。如果你有其他问题,请随时提出。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值