zoukankan      html  css  js  c++  java
  • 小程序支付功能

    场景:做小程序支付功能,正常操作是前端这边调用微信的 wx.requestpayment接口即可。

    //比如说,点击付款按钮,然后就会弹出支付的窗口,这里就应该调用wx.requestPayment()
    <view bindtap="confirmPay">确定付款</view>

    confirmPay(){
    let that = this;
    let params = {
    orderId:'',
    orderDetail:'xxx'
    };//比如说,这里是后台需要的参数
    wx.request({
    url:'这里是请求后台的接口',
    data:params,
    method:'POST',
    header:{
    'content-type':'application/json'
    },
    success:function(res){
    console.log(res);//这里会返回调用微信支付接口需要的参数
    that.pay(res); //到这里应该会弹出一个支付的弹窗了
    },
    error:function(error){}
    })
    }
    //调用微信支付的接口
    pay(temp){
    wx.requestPayment({
    timeStamp:temp.timeStamp,
    nonceStr:temp.nonceStr,
    package:temp.package,
    signType:'MD5',
    paySign:temp.paySign,
    success:function(res){
    //若执行到这步,则表示支付成功了
    },
    fail:function(err){}
    })
    }

    //如果让前端做支付的话,其实后端还不是要参与,与其这样还不如上面的操作呐,更简单方便快捷。

    //首先 用 wx.login()获取到当前用户的code,因为要拿来换取openid值。
    onLoad:function(options){
    let that = this;
    wx.login({
    success:function(res){
    console.log(res.code);
    that.getOpenid(res.code);
    }
    })
    },
    getOpenid(code){ //这个接口是请求微信官方的接口为了获取 openID 值
    let that = this;
    wx.request({
    url:'https://api/weixin.qq.com/sns/jscode2session?appid=小程序APPID&secrest=小程序密钥&js_code=code&grant_type=authorization_code',
    data:{},
    method:'GET'
    success:function(res){
    that.getParams(res.data.openid);//这步是把获取到的openID传递给后端
    }
    })
    },
    getParams(openid){
    let that = this;
    wx.request({
    url:'请求后端接口',
    method:'xxx',
    data:{},
    success:function(res){
    //这里后台会返回请求微信支付接口所需要的参数
    that.confirmPay(res);
    }
    })
    },
    confirmPay:function(temp){
    wx.requestPayment({
    timeStamp:temp.timeStamp,
    nonceStr:temp.nonceStr,
    package:temp.package,
    signType:temp.signType,
    paySign:temp.paySign,
    success:function(res){
    //执行到这步就表示 支付成功了
    },
    fail:function(error){

    }
    })
    }

    参考链接:https://www.cnblogs.com/yujihaia/p/7459426.html

  • 相关阅读:
    1-hadoop中遇到的各种异常
    13-hadoop-入门程序
    12-mapReduce的简介和yarn搭建
    11-hdfs-NameNode-HA-wtihQJM解决单点故障问题
    10-hdfs-hdfs搭建
    redis-java-api
    深度学习优化方法
    tf.nn.embedding_lookup()
    tf.variable_scope()和tf.name_scope()
    tf.Variable()、tf.get_variable()和tf.placeholder()
  • 原文地址:https://www.cnblogs.com/sunnyeve/p/12587763.html
Copyright © 2011-2022 走看看