从永远到永远-Spring Cloud-自用别看(三)

微信
2019-08-16补充:这群坑壁,授权这块可以申请测试号。先看8.8

业务:首先肯定是手机访问项目sell.com(这个其实是另一个网站的地址,但是我们对手机做了请求代理,手机的请求会通过本机访问。而本机做了域名解析,当本机访问sell.com时解析为虚拟机ip,这样就访问到了本机前端页面),进入前端页面index.js,index.js会对请求路径做解析判断,如果请求中已经包含openId,那么可以直接访问项目(出来商家信息啥的)。如果没有openId,那就会执行跳转,其实就是跳转到我们写得获取openId方法。最终执行我们后端项目的一堆方法,获取到openId然后再跳去访问sell.com项目(如下图)。
在这里插入图片描述
最终就到了一堆商家信息那个页面中了。

前端页面要配置几个信息,使得前端接受请求解析判断后知道如何处理:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
乱七八糟,等最后顺一下吧!

微信公众平台测试号申请:

凉了,涉及微信支付,个人无法申请微信支付。我那几个兄弟很争气地把公司卖掉了!人生最痛苦的事就是,在不该写代码的时候,开发一个微信支付模块。

1.微信授权(网页授权):
1)获取openid:
1》原生
1》》域名:自己公众号设置
在这里插入图片描述
2》》做下映射,必须让外网能访问到本机 的项目在这里插入图片描述
在这里插入图片描述
3》》文件拷贝下
在这里插入图片描述
4》》
在这里插入图片描述
在这里插入图片描述
5》》在这里插入图片描述
要不,访问这个垃圾玩意,实质上没啥用。但是不访问,你微信公众号绑定域名哪里无法申请通过!
在这里插入图片描述
6》》之后那个破文件就没用了,注释的context-path也可以放出来了
在这里插入图片描述

7》》凉了,在进行重定向时,发现我是订阅号,没有权限开发网页授权。但是腾讯一直给提示说域名不一致,就很扯蛋!!!!!!!!!!!!

微信支付:支付也没办法写,没有权限!!!!!!!!!!司马腾讯 微信退款:没支付退个锤子的钱!!!!!!!!!!!!!!!!!!!!!!!!!!司马腾讯

2》第三方sdk,一样没法验证!!!!!先写出实现,以后再处理!!!!
1》》引入第三方sdk

 <!--引入第三方sdk处理微信网页授权,无法实现,先写代码-->
        <dependency>
            <groupId>com.github.binarywang</groupId>
            <artifactId>weixin-java-mp</artifactId>
            <version>2.7.0</version>
        </dependency>

2》》WeChat Controller 获取openid

package com.scbg.controller;

import com.scbg.enums.ResultEnum;
import com.scbg.exception.SellException;
import lombok.extern.slf4j.Slf4j;
import me.chanjar.weixin.common.api.WxConsts;
import me.chanjar.weixin.common.exception.WxErrorException;
import me.chanjar.weixin.mp.api.WxMpService;
import me.chanjar.weixin.mp.bean.result.WxMpOAuth2AccessToken;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

/**
 * @program: sell
 * @description: 第三sdk开发微信网页授权controller
 * @author: 三层饼干儿
 * @create: 2019-08-14 16:05
 **/
/*@RestController返回的是json无法重定向,改用controller*/
@Controller
@RequestMapping("/wechat")
@Slf4j
public class WechatController {
	@Autowired
	private WxMpService wxMpService;
	@GetMapping("/authorize")
	public String authorize(@RequestParam("returnUrl")String returnUrl ){
		//1.配置,比较繁琐写配置类,配置完注入
		//2.调用方法
		String redirectUrl=wxMpService.oauth2buildAuthorizationUrl("url需要在配置一下", WxConsts.OAUTH2_SCOPE_USER_INFO,returnUrl);//第三个参数原样返回。
		return "redirect:"+redirectUrl;
	}
	@GetMapping("/userInfo")
	public String userInfo(@RequestParam("code")String code,@RequestParam("state")String returnUrl){
		WxMpOAuth2AccessToken wxMpOAuth2AccessToken= null;
		try{
			wxMpOAuth2AccessToken=wxMpService.oauth2getAccessToken(code);
		}catch (WxErrorException e){
			log.error("【微信网页授权】{}",e);
			throw new SellException(ResultEnum.WECHAT_MP_ERROR.getCode(),e.getError().getErrorMsg());
		}
		String openId=wxMpOAuth2AccessToken.getOpenId();//获取openid
		return "redirect:"+returnUrl+"?openid="+openId;//根据接口文档返回
	}
}

配置文件增加配置信息:

wechat:
  mpAppId: "这个东西从你的公众号中查找!"
  mpAppSecret: "同上"

3》》前端调试(

现在还有个别的问题,域名解析

在这里插入图片描述
先解决挂掉的图,这俩直接用不用开发。
在这里插入图片描述
在这里插入图片描述
再找几张图扔到数据库
在这里插入图片描述

4》》## 改不改的跟我好像没有太大关系:反正微信我事先不了。。。。。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
构建好的项目,copy到网站根目录下
在这里插入图片描述

代理手机的请求。。。。。

比如说手机访问sell.com,会跳到一个跟本项目无关的别的网站。要想在手机测试sell.com跑到我们的项目,必须设置代理,代理手机的请求,转到本机访问(本机配置了域名解析知道找谁)。

1.手机设置代理,ip和端口(计算机网路的ip和第三方工具的端口)
2.fiddler的使用
先跳过吧

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值