当前位置:首页 > uni-app

uniapp接入云闪付

2026-03-26 12:28:14uni-app

接入云闪付前的准备

在UniApp中接入云闪付支付功能前,需要确保已完成以下准备工作:

注册并登录云闪付开发者平台,创建应用获取AppID、商户号(MID)和密钥(Key)等必要参数。

确保UniApp项目已配置好相关支付模块的权限和依赖,例如在manifest.json中配置支付权限。

配置UniApp项目

在UniApp项目的manifest.json文件中,添加云闪付的相关配置。具体配置项包括AppID、MID等,确保与云闪付开发者平台获取的信息一致。

"app-plus": {
    "payment": {
        "unionpay": {
            "appid": "你的云闪付AppID",
            "mid": "你的商户号"
        }
    }
}

调用云闪付支付接口

在需要调用云闪付支付的地方,使用UniApp提供的API进行支付请求。以下是一个示例代码:

uni.requestPayment({
    provider: 'unionpay',
    orderInfo: {
        tn: '交易流水号', // 从服务器获取的交易流水号
        mode: '00' // 支付模式,00为正式环境
    },
    success: function(res) {
        console.log('支付成功', res);
    },
    fail: function(err) {
        console.log('支付失败', err);
    }
});

服务器端生成交易流水号

云闪付支付需要服务器端生成交易流水号(TN),通常通过调用云闪付的统一下单接口实现。服务器端代码示例(Node.js):

const axios = require('axios');
const crypto = require('crypto');

const generateTN = async (orderId, amount) => {
    const params = {
        merId: '你的商户号',
        orderId: orderId,
        txnAmt: amount,
        txnTime: new Date().toISOString().replace(/[-:T.]/g, '').slice(0, 14),
        currency: '156',
        frontUrl: '你的前端回调URL',
        backUrl: '你的后端回调URL'
    };

    const signStr = Object.keys(params).sort().map(key => `${key}=${params[key]}`).join('&');
    const sign = crypto.createHash('sha256').update(signStr + '你的密钥').digest('hex');

    const response = await axios.post('https://网关地址', { ...params, signature: sign });
    return response.data.tn;
};

处理支付回调

支付完成后,云闪付会将支付结果异步通知到配置的后端回调URL。后端需要验证签名并处理支付结果:

const handleCallback = (req, res) => {
    const { signature, ...params } = req.body;
    const signStr = Object.keys(params).sort().map(key => `${key}=${params[key]}`).join('&');
    const localSign = crypto.createHash('sha256').update(signStr + '你的密钥').digest('hex');

    if (localSign === signature) {
        // 验证通过,处理支付结果
        console.log('支付结果', params);
        res.send('success');
    } else {
        res.status(400).send('签名验证失败');
    }
};

测试与上线

在开发阶段,可以使用云闪付提供的沙箱环境进行测试。确保支付流程无误后,切换到生产环境并提交审核。

uniapp接入云闪付

测试时需注意交易流水号的生成和签名验证是否正常,确保支付成功和失败的回调处理逻辑正确。

标签: uniapp云闪付
分享给朋友:

相关文章

uniapp删除

uniapp删除

卸载 uniapp 项目依赖 在项目根目录下执行以下命令,移除 node_modules 和依赖锁文件: rm -rf node_modules package-lock.json 如需清理全局…

uniapp怎么启动

uniapp怎么启动

启动UniApp项目的步骤 确保已安装Node.js(建议版本12+)和HBuilderX(官方IDE)。若未安装,需先下载并配置环境。 安装开发工具 从HBuilderX官网下载对应操作系统的版本…

uniapp隐藏滚动条

uniapp隐藏滚动条

在UniApp中隐藏滚动条可以通过以下几种方法实现,具体根据使用场景选择: 全局样式设置(APP/H5) 通过修改全局CSS样式隐藏滚动条,适用于所有页面: ::-webkit-scrollbar…

uniapp设置背景

uniapp设置背景

设置全局背景样式 在App.vue文件中添加全局样式,使用page选择器设置页面背景。这种方式会影响所有页面背景。 <style> page { background-col…

uniapp实现标题栏渐变

uniapp实现标题栏渐变

实现标题栏渐变的方法 在UniApp中实现标题栏渐变效果,可以通过修改页面的导航栏样式或使用自定义导航栏来实现。以下是几种常见的方法: 方法一:使用原生导航栏渐变 通过修改pages.json中的…

base64转换方法uniapp

base64转换方法uniapp

Base64 转换方法(UniApp) 在 UniApp 中实现 Base64 编码和解码,可以通过原生 JavaScript 的 btoa 和 atob 方法,或使用第三方库如 base64-js。…