微信小程序支付V2版之JSAPI支付


一、微信支付环境搭建

  • 微信支付必须开通两个账号:微信小程序账号微信商户平台账号
  • 涉及到支付功能只能是公司,个人是不能玩支付功能,即个人的微信小程序号是不能开通微信支付功能的
  • 支付在线文档https://pay.weixin.qq.com/wiki/doc/api/index.html

1 企业微信小程序的开通

  • 要认证:认证需要缴费
  • 获取appid:小程序的身份标识
  • 生成secret:生成后需要保存后
    在这里插入图片描述
  • 开通支付功能
    在这里插入图片描述
  • 关联商户号
    在这里插入图片描述

2. 企业商户号的开通

  • 要认证
  • 获取商户号:mch_id
  • 设置商户API秘钥:mch_key
  • APPID授权
  • 配置支付接口

3 小程序号与商户号关联

在这里插入图片描述


二、微信小程序的支付流程

1 JSAPI支付流程

2 微信小程序获取openid

  • 微信小程序的支付需要使用到openid,获取openid有两种方式
    • 微信小程序携带code登录开发者服务器开发者服务器请求微信服务器获取到openid,再将openid响应给微信小程序
    • 直接使用微信小程序的云开发功能获取到openid
  • 使用上述的第一种方式拿到openid,流程如下:
    在这里插入图片描述
  • 微信小程序的登录代码
    wx.login({
    // 1. 微信小程序 → 微信服务器: 拿到临时凭证 code
      success: res => {
    // 2. 微信服务器 → 微信小程序: 返回结果
        if(res.code) {
   
          wx.request({
    // 3. 微信小程序 → 开发者服务器: 目的: 使用code换取openid
            url: 'http://ycom.free.idcfengye.com/wechat/requestOpenId',
            data: {
    // 请求参数
              code:res.code
            },
            success: res=>{
    // 4. 开发者服务器 → 微信小程序: 返回结果
              if(res.data.openid) {
   
                wx.setStorage({
    // 5. 将开发者服务器返回的opneid存储起来, 之后的支付需要用到openid
                  key: 'openid',
                  data: res.data.openid
                })
              }
            }
          })
        } 
      }
    });
  • 开发者服务器后代代码
    /**
     * 小程序请求openid
     * 获取 openid 微信小程序的身份标识
     * 1. 小程序发送请求给开发者服务器
     * 2. 开发者服务器发送请求给微信服务器
     * 3. 微信服务器响应开发者服务器的请求
     * 4. 开发者服务器响应微信小程序的请求
     * 5. 微信小程序拿到了openid
     *
     * @param code 临时code, 小程序传过来的
     * @return 给小程序返回openid
     */
    @GetMapping("/requestOpenId")
    @ResponseBody
    private Object requestOpenId(String code) {
   
        CloseableHttpClient httpclient = null;
        CloseableHttpResponse response = null;
        try {
   
            httpclient = HttpClients.createDefault();
            URI uri = new URIBuilder("https://api.weixin.qq.com/sns/jscode2session")
                    .
  • 10
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值