订阅本栏目 RSS您所在的位置: 深山工作室 > uni-app > 正文

uni-app开发的微信小程序在线支付

2021/1/31 21:47:10 深山工作室 字体:大 中 小 浏览 977



在用uni-app开发小程序时,需要使用微信小程序在线支付

处理发起支付流程如下



01. 向服务器发送微信小程序支付请求,发送的请教中,一定要带上当前小程序用户的openid
  将支付的钱与支付订单号向后台发送

02.后台接收订单内容后,向微信支付平台发一个请求,获得如下内容
以下是发送请教之后,支付程序返回的代码
{
    "data_state": "success",
    "prompting": "下单成功",
    "data_list": {
      "appId": "wxc45312345678902",
      "package": "prepay_id=wx31244255725616c79ca227f95eaee60000",
      "timeStamp": "1612101428",
      "nonceStr": "3Yl2Zn4Nl1Yf",
      "signType": "MD5",
      "paySign": "A5415FCF474F10C6D69DEF15C1FBC165",
      "orderid": "kecen20210131215703698348"
    }
}

03.以下是在页面中解析代码然后唤醒对应的微信支付功能

let paydata = res.data.data_list;
uni.requestPayment({
    nonceStr: paydata.nonceStr,      //  随机字符串    【字符串】
    package: paydata.package,       //  统一下单接口 必须加前缀:prepay_id=xxxxxxxx  【字符串】
    paySign: paydata.paySign,       //  签名     【字符串】
    signType: paydata.signType,      //  签名算法  【字符串】
    timeStamp: paydata.timeStamp,     //  时间戳   【字符串】
    success: function (res) {
        console.log('支付成功提示 success:' + JSON.stringify(res));
    },
    fail: function (err) {
        console.log('支付失败提示 fail:' + JSON.stringify(err));
    },
    complete:function(res){
        //console.log('xxxxxxxxxxxxxxxxxx---complete')
    }
});

利用uni-app中的uni.requestPayment发起调用微信支付请求
以下是介绍我的详细代码


getpagedata: function() {
    this.$appajax.globalRequest('POST', getApp().qwbmurl + '/pay/weixin/miniapp.asp', {
        buy_order: _self.pay_order, //支付订单,里面包括了支付的费用,支付的信息
        openid: 'oM67Fv5pK1REqisNtMq5zVBkcd5Y' // + uni.getStorageSync('uu_openid'),
    }).then(res => {
        let show_state = res.data.state; //支付状态
        //支付失败提示
        if (show_state == "error") {
            uni.showToast({title: unescape(res.data.prompting),icon: 'none'});
        }
        //支付成功处理
        if (show_state == "success") {
            uni.showToast({title: unescape(res.data.prompting),
                icon: 'success'
            });
            let paydata = res.data.data_list;
            uni.requestPayment({
                nonceStr: paydata.nonceStr,      //  随机字符串 【字符串】
                package: paydata.package,       //  统一下单接口 必须加前缀:prepay_id=xxxxxxxx  【字符串】
                paySign: paydata.paySign,       //  签名     【字符串】
                signType: paydata.signType,      //  签名算法 【字符串】
                timeStamp: paydata.timeStamp,     //  时间戳   【字符串】
                success: function (res) {
                    console.log('发起支付success:' + JSON.stringify(res));
                },
                fail: function (err) {
                    console.log('失败支付fail:' + JSON.stringify(err));
                },
                complete:function(res){
                    //console.log('xxxxxxxxxxxxxxxxxx---complete')
                }
            });
        }
    });
},

相关阅读
旅游线路系统
高度100%的绝对定位自适应布局技巧
ASP 格式化显示时间为几个月,几天前,几小时前,几分钟前,或几秒前
简单的圆角实现方案
中国签证行业领导者--亿诚出国签证网
java探测页面是否全屏,如果不是全屏则自动全屏
介绍JavaScript里比较和逻辑运算符
ASP事务处理 for access
更多信息>>栏目类别选择
百度小程序开发
微信小程序开发
微信公众号开发
uni-app
asp函数库
ASP
DIV+CSS
HTML
python
更多>>同类信息
uni-app开发表单input组件的一些规则说明自己预留使用
uni-app:使用uni.downloadFile下载word或pdf文件并保存到手机
小程序中利用addPhoneContact将联系人的信息添加到手机通讯录支持保存联系人头像
微信小程序打开客服提示:该小程序提供的服务出现故障,请稍后重试
微信小程序客服会话只能过button让用户主动触发
uni-app开发微信小程序使用button的open-type为contact调用微信客服不能用view或者js调用
更多>>最新添加文章
2026 aliyun阿里域名云注册续费优惠口令
dw里面查找替换使用正则删除sqlserver里面的CONSTRAINT
Android移动端自动化测试:使用UIAutomatorViewer与Selenium定位元素
抖音直播音挂载小雪花 懂车帝小程序
javascript获取浏览器指纹可以用来做投票
火狐Mozilla Firefox出现:无法载入您的Firefox配置文件 它可能已经丢失 或是无法访问 问题解决集合处理办法
在Android、iOS、Windows、MacOS中微信小程序的文件存放路径
python通过代码修改pip下载源让下载库飞起
更多>>随机抽取信息
深山留言板2.14情人节留言板模板v4.6
CSS教程:CSS伪类属性
超级实用且不花哨的js代码大全( 7 )
深山留言板系统(七夕情人节专用) v3.7
CSS教程:弄懂闭合浮动元素
超级实用且不花哨的js代码大全( 5 )