引言

项目背景

  • 微信支付API接入
  • 前端页面展示与交互
  • 后端服务搭建
  • 数据交互与处理

技术栈

  • 前端:Vue.js、Vite、Axios
  • 后端:Node.js、Express、MySQL
  • 微信支付:微信支付API

项目结构

项目结构如下所示:

vue-wxpay-demo/
├── src/
│   ├── api/                 # 微信支付API接口
│   ├── components/          # Vue组件
│   ├── views/               # 页面
│   ├── App.vue              # 根组件
│   └── main.js              # 入口文件
├── server/                  # 后端服务
│   ├── index.js             # 入口文件
│   └── routes/              # 路由
└── package.json             # 项目配置文件

步骤一:环境搭建

  1. 创建Vue项目
vue create vue-wxpay-demo
  1. 安装相关依赖
cd vue-wxpay-demo
npm install axios mysql express --save

步骤二:微信支付API接入

  1. 注册微信支付商户账号并获取AppID、AppSecret、商户号、API密钥等信息。
  2. src/api/wxpay.js中配置微信支付API参数。
export const wxpayConfig = {
  appId: 'your_app_id',
 商户号: 'your_merchant_id',
 API密钥: 'your_api_key'
};

步骤三:前端页面展示与交互

  1. src/views/Pay.vue中创建支付页面。
<template>
  <div>
    <h1>微信支付</h1>
    <input type="text" v-model="orderAmount" placeholder="请输入订单金额">
    <button @click="createOrder">生成订单</button>
  </div>
</template>

<script>
import { createOrder } from '@/api/wxpay';

export default {
  data() {
    return {
      orderAmount: ''
    };
  },
  methods: {
    async createOrder() {
      try {
        const res = await createOrder({ amount: this.orderAmount });
        this.handlePay(res);
      } catch (error) {
        console.error(error);
      }
    },
    handlePay(data) {
      // 调用微信支付API
      // ...
    }
  }
};
</script>

步骤四:后端服务搭建

  1. server/index.js中创建Express服务器。
const express = require('express');
const router = require('./routes');

const app = express();

app.use(express.json());
app.use('/api', router);

const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
  console.log(`Server is running on port ${PORT}`);
});
  1. server/routes/wxpay.js中配置微信支付路由。
const express = require('express');
const router = express.Router();

const wxpayController = require('../controllers/wxpay');

router.post('/createOrder', wxpayController.createOrder);

module.exports = router;
  1. server/controllers/wxpay.js中实现微信支付控制器。
const wxpayService = require('../services/wxpay');

exports.createOrder = async (req, res) => {
  try {
    const { amount } = req.body;
    const data = await wxpayService.createOrder({ amount });
    res.json(data);
  } catch (error) {
    console.error(error);
    res.status(500).json({ error: '服务器内部错误' });
  }
};

步骤五:数据交互与处理

  1. src/api/wxpay.js中实现微信支付API接口。
import axios from 'axios';

const wxpayConfig = {
  appId: 'your_app_id',
  商户号: 'your_merchant_id',
  API密钥: 'your_api_key'
};

export const createOrder = async (params) => {
  // ...根据微信支付API文档实现创建订单功能
};
  1. 在`src/services/w