Skip to content
On this page

小程序 SDK指南

sdk图片介绍

小程序 示例代码页面

图片1图片2图片3图片4

下载小程序前端代码示例

点击去下载文件

代码使用教程

支付方法调用

在文章或者商品页,携带需要的参数跳转到支付页面

javascript
toPay(){
    let data = {
        post_id: this.id, // 业务id
        title: this.title, // 业务的标题或名称
        money: this.money // 要支付的金额
    }
    uni.navigateTo({
        url: "/pages/pay/pay?obj="+ JSON.stringify(data)
    })
}

sdk内部已有代码

创建订单接口部分信息

javascript
uni.request({
    url: baseUrl + '/ipaybuy_api/pay',
    method: "POST",
    data: {
        pay_type: selectedPayMethod.value,
        title: detailData.value.title,
        money: detailData.value.money,
        post_id: detailData.value.post_id, // 必填
        device_id: uni.getSystemInfoSync().deviceId, // 必填,如果你没有用户系统,则需要根据用户当前的设备id+文章id查询支付状态
        openid: "", // 小程序获取
        userid: null, // 自有用户管理
    },
    success: (res) => {
        orderInfo.value = res.data.data
        console.log("orderInfo.value",orderInfo.value);
        
        if(res.data.success){
            showQrcodeModal.value = true
            // 获取订单的付款二维码
            getQrcode(orderInfo.value.trade_no)
        } else {
            uni.showToast({
                title: '订单创建失败'+res.data.msg,
                icon: 'none'
            })
        }
    },
    fail: (err) => {
        console.error('创建订单失败:', err)
        uni.showToast({
            title: '订单创建失败',
            icon: 'none'
        })
    },
    complete: () => {
        isSponsoring.value = false
        isRequesting.value = false
    }
})

获取订单支付二维码

javascript
const getQrcode = (orderId) => {
    uni.request({
        url: baseUrl + '/ipaybuy_api/order_qrcode',
        method: "POST",
        data: {
            order_id: orderId
        },
        success: (res) => {
            console.log("订单二维码:",res.data.data.qrcode_data);
            if(res.data.success){
                qrcodeData.value = res.data.data.qrcode_data
                // 开始倒计时
                startCountdown()
                // 定时获取支付结果
                timer.value = setInterval(() => {
                    getOrdersPayStatus()
                }, 5000);
            } else {
                uni.showToast({
                    title: '二维码获取失败',
                    icon: 'none'
                })
            }
        },
        fail: (err) => {
            console.error('获取二维码失败:', err)
            uni.showToast({
                title: '二维码获取失败',
                icon: 'none'
            })
        },
        complete: () => {
            isRefreshing.value = false
        }
    })
}

查询订单状态

javascript
const getOrdersPayStatus = () =>{
    if(orderInfo.value.trade_no){
        wx.hideLoading();
        uni.request({
            url: baseUrl + '/ipaybuy_api/pay_record',
            method: "GET",
            data: {
                out_trade_no: orderInfo.value.trade_no, // 若有必填
                post_id: detailData.value.post_id,  // 必填
                device_id: uni.getSystemInfoSync().deviceId, // 必填
                userid: "", // 如有用户系统则填写
                openid: "",  // 小程序可选填
            },
            success: (res) => {
                wx.hideLoading();
                console.log("支付结果:",res.data);
                if(res.data.success && res.data.msg == '支付成功'){
                    // 支付成功,停止倒计时和定时器
                    stopCountdown()
                    if (timer.value) {
                        clearInterval(timer.value)
                        timer.value = null
                    }
                    // 显示支付成功状态
                    paySuccess.value = true
                }
                if(res.data.msg == "支付超时" && timer.value){
                    clearInterval(timer.value);
                    timer.value = null;
                    stopCountdown()
                    closeQrcodeModal()
                }
                isRefreshing.value = false
            }
        })
    }
}

基于 MIT 许可发布