uni-app App端如何发起微信支付商家付款到零钱确认窗口?

发布于 1周前 作者 gougou168 来自 Uni-App

uni-app App端如何发起微信支付商家付款到零钱确认窗口?

微信官方文档说要接入openSDK

https://pay.weixin.qq.com/doc/v3/merchant/4012719576

uniapp有接入这个SDK吗?

有大佬实现过吗,求助!!!

1 回复

在uni-app中实现微信支付商家付款到零钱的功能,通常需要后端配合生成支付订单并返回相应的支付参数给前端。前端在收到这些参数后,可以通过uni-app提供的API调用微信支付的相关接口。以下是一个简化的代码示例,展示了如何在uni-app的App端发起微信支付商家付款到零钱的确认窗口。

后端部分(假设使用Node.js)

后端需要生成支付订单并获取相关的支付参数,这里以Node.js为例,实际开发中请根据所使用的后端语言和技术栈进行调整。

const axios = require('axios');

async function createPayOrder() {
    const url = 'https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers';
    const data = {
        // 填写微信支付商户号、API密钥、付款账户、收款账户等信息
        mch_appid: 'your_mch_appid',
        mchid: 'your_mchid',
        nonce_str: 'random_string',
        partner_trade_no: 'order_number',
        openid: 'recipient_openid',
        check_name: 'NO_CHECK',
        amount: 100, // 单位:分
        desc: 'Payment description',
        spbill_create_ip: 'your_server_ip',
        sign: 'your_signature', // 根据API文档生成签名
    };

    const response = await axios.post(url, data);
    return response.data;
}

createPayOrder().then(result => {
    console.log(result); // 返回给前端的支付参数
});

前端部分(uni-app)

前端接收到后端返回的支付参数后,可以调用uni-app的微信支付API进行支付。

// 假设后端返回的支付参数已经通过API接口获取并存储在paymentData中
const paymentData = {
    appId: 'your_app_id',
    timeStamp: 'timestamp',
    nonceStr: 'nonce_string',
    package: 'prepay_id=your_prepay_id',
    signType: 'MD5',
    paySign: 'your_pay_sign',
};

uni.requestPayment({
    ...paymentData,
    success: (res) => {
        console.log('支付成功', res);
    },
    fail: (err) => {
        console.error('支付失败', err);
    },
    complete: () => {
        console.log('支付完成');
    }
});

// 显示确认支付窗口的代码实际上是由uni.requestPayment自动处理的,用户会在调用此API时看到支付确认界面。

请注意,上述代码是一个简化的示例,实际开发中需要处理更多的细节,如签名生成、错误处理、安全性校验等。同时,微信支付API的使用需要遵循微信支付的规则和要求,确保已经正确配置了商户信息和相关权限。

回到顶部