微信小程序开发之微信支付(一)

现在微信支付功能已经成为应用中一个必不可少的功能。要实现微信支付,阅读微信支付文档是必不可少的。可是复杂的支付流程和大量的参数让人头大。

接下来我来捋一捋开发流程(前:表示前端    后:表示后端)

1.微信登录

    前:wx.login{} 获取code ------> wx.request{} 向后台传送code

(为了方便阅读,只写出了最基本的代码)

//app.js
App({
  onLaunch: function() {
    wx.login({
      success: function(res) {
        if (res.code) {
          //发起网络请求
          wx.request({
            url: 'https://test.com/onLogin',     //向后台传code的地址
            data: {
              code: res.code
            }
          })
        } else {
          console.log('登录失败!' + res.errMsg)
        }
      }
    });
  }
})

   后:由code获取openID

(为了使小程序开发变得渐变,我使用了别人已写好的SDK,避免重复造轮子)

public String login(String code) {
    if (StringUtils.isEmpty(code)) {
        return "code is empty";
    }
    try {
        WxMaJscode2SessionResult sessionResult = wxMaService.getUserService().getSessionInfo(code);
        log.info("openid: openid={}", sessionResult.getOpenid());
        log.info("sessionKey: sessionKey={}", sessionResult.getSessionKey());
        return JsonUtil.toJson(sessionResult);
    } catch (WxErrorException e) {
        log.error(e.getMessage());
        return e.toString();
    }

}

2.微信下单

后:组合订单信息 -----> 调用统一下单接口(https://api.mch.weixin.qq.com/pay/unifiedorder)----->获取与处理信息prepay_id         ----->组合签名  ------>返回前端五个参数和签名

3.确认支付

前:调用wx.requestPayment{}发起支付

wx.requestPayment(
{
'timeStamp': '',
'nonceStr': '',
'package': '',
'signType': 'MD5',
'paySign': '',
'success':function(res){},
'fail':function(res){},
'complete':function(res){}
})
4.回调支付结果

  后:异步通知返回支付结果

  只是简单捋了一下支付步骤。接下来会详细介绍各个环节

  给大家推荐一个好用的SDK,它实现了微信小程序的各种接口,开发起来更便利

你可能感兴趣的:(微信小程序)