#小程序#支付

1.开通微信支付和微信商户号

这个过程就和开通服务号的微信支付过程一样,没有什么可以说的。 

2.获得用户的openid

首页我们需要在小程序的客户端js中获取当前用户的openid,通过调用wx.login方法可以得到用户的code,然后开发者服务器使用登录凭证 code 获取 openid。

wx.login({
      success: function(res) {
        if (res.code) {
          //发起网络请求
          wx.request({
            url: 'https://qifeng.site/onLogin',
            method: 'POST',
            data: {
              code: res.code
            },
            success: function(res) {
                var openid = res.data.openid;
            },
            fail: function(err) {
                console.log(err)
            }
          })
        } else {
          console.log('获取用户登录态失败!' + res.errMsg)
        }
      }
    });

3.获取prepay_id和支付签名验证paySign

这一步的过程就和服务号里的微信支付过程一样,分为客户端和服务器端 
首先来看一下客户端js 
在服务号里,我们是通过如下的代码来调起支付功能

///在小程序里,我们是通过wx.requestPayment方法来调起支付功能,当然在这之前,我们先要获取prepay_id。
wx.request({
     url: 'https://qifeng.site/service/getPay', 
     method: 'POST',
     data: {
       pkg:pkg,  /*订单号*/
       total_fee:total_fee,   /*订单金额*/
       nonceStr:nonceStr
       openid:openid
     },
     header: {
         'content-type': 'application/json'
     },
     success: function(res) {
        wx.requestPayment({
           'timeStamp': '',//即当前的时间
           'nonceStr': '',//随机字符串,长度为32个字符以下。
           'package': '',//统一下单接口返回的 prepay_id 参数值,提交格式如:prepay_id=*
           'signType': 'MD5',//签名算法,暂支持 MD5
           'paySign': '',//签名,具体签名方案参见[小程序支付接口文档;](https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=7_7&index=3)
           'success':function(res){//调用支付成功
           },
           'fail':function(res){//
           },
           complete(res){//接口调用结束的回调函数(调用成功、失败都会执行)
           }
        })
     },
     fail: function(err) {
         console.log(err)
     }
 })


//在服务号里,通过如下的代码来调起支付功能

function jsApiCall()
 {
      WeixinJSBridge.invoke(
          'getBrandWCPayRequest',
          {
             "appId":"",     //公众号名称,由商户传入     
             "timeStamp":"",         //时间戳,自1970年以来的秒数     
             "nonceStr":"", //随机串     
             "package":"prepay_id=<%=prepay_id%>",     
             "signType":"MD5",         //微信签名方式:     
             "paySign":"<%=_paySignjs%>" //微信签名
          },
          function(res){
              WeixinJSBridge.log(res.err_msg);
              if( res.err_msg =="get_brand_wcpay_request:ok"){
                  alert("支付成功!");
              }else{
                  alert("支付失败!");
              }
          }
      );
  }

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值