国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

H5通過Url Scheme方式傳參跳轉(zhuǎn)微信小程序

這篇具有很好參考價(jià)值的文章主要介紹了H5通過Url Scheme方式傳參跳轉(zhuǎn)微信小程序。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

1.獲取微信access_token并生成Url Scheme

@Slf4j
@Api(tags = "微信模塊")
@RestController
@RequestMapping("/weChat")
public class WeChatController {


    @Autowired
    private WeChatService weChatService;
    @Autowired
    private RedisUtil redisUtil;
    @Value("${wxConfig.app-id}")
    private String AppID;
    @Value("${wxConfig.app-secret}")
    private String AppSecret;

    

    /**
     * @return {@link String}
     * @author macro
     * @description 獲取微信小程序token
     */
    @AutoLog(value = "獲取微信小程序token")
    @ApiOperation(value = "獲取微信小程序token", notes = "獲取微信小程序token")
    @GetMapping(value = "/getAccessToken")
    public String getAccessToken() throws IOException {
        //1.先判斷redis有沒有
        if (redisUtil.hasKey("access_token")) {
            //redis有直接返回
            return redisUtil.get("access_token").toString();
        } else {
            //2.redis沒有
            /*2.1請求微信 獲取token*/
            String httpUrl = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential";
            httpUrl = httpUrl + "&appid=" + AppID + "&secret=" + AppSecret;
            CloseableHttpClient client = HttpClients.createDefault();
            HttpGet httpGet = new HttpGet(httpUrl);
            CloseableHttpResponse res = client.execute(httpGet);
            HttpEntity entity = res.getEntity();
            String result = EntityUtils.toString(entity, "UTF-8");
            JSONObject jsonObject = JSON.parseObject(result);
            if (jsonObject.containsKey("access_token")) {
                String accessToken = jsonObject.getString("access_token");
                //放入redis,并設(shè)置過期時間為兩小時
                redisUtil.set("access_token", accessToken);
                redisUtil.expire("access_token", 2 * 60 * 60);
                return accessToken;
            } else {
                return null;
            }
        }
    }


    /**
     * @return {@link Map< String, Object>}
     * @author macro
     * @description 生成小程序跳轉(zhuǎn)鏈接
     */
    @AutoLog(value = "生成小程序跳轉(zhuǎn)鏈接")
    @ApiOperation(value = "生成小程序跳轉(zhuǎn)鏈接", notes = "生成小程序跳轉(zhuǎn)鏈接")
    @PostMapping(value = "/getAppletUrl")
    public Result<?> getAppletUrl(@RequestBody UrlSchemeQueryDTO queryEntity) throws IOException {
        //校驗(yàn)參數(shù),參數(shù)都傳遞了才能生成url并跳轉(zhuǎn)
        if (StringUtils.isBlank(queryEntity.getDyId()) || StringUtils.isBlank(queryEntity.getJumpPath()) ||
                null == queryEntity.getCoinAmt() || BigDecimal.ZERO.compareTo(queryEntity.getCoinRmb()) == 0) {
            return Result.error("請求參數(shù)非法!");
        }

        //微信生成 URL Scheme接口地址
        String httpUrl = "https://api.weixin.qq.com/wxa/generatescheme?access_token=";
        //需要跳轉(zhuǎn)的小程序路徑
        String path = "pages/pay/index";
        //獲取AccessToken
        String AccessToken = this.getAccessToken();
        //token為空,報(bào)錯返回
        if (AccessToken == null) {
            return Result.error("未獲取到token!");
        } else {
            /*token非空 拿著token去請求*/
            try {
                JSONObject jsonParam = new JSONObject();
                JSONObject jump_wxa = new JSONObject();
                //跳轉(zhuǎn)參數(shù)-跳轉(zhuǎn)的頁面路徑
                jump_wxa.put("path", queryEntity.getJumpPath());
                jump_wxa.put("query", "dyId=" + queryEntity.getDyId() + "&coinAmt=" + queryEntity.getCoinAmt() + "&coinRmb=" + queryEntity.getCoinRmb().toString());
                //小程序環(huán)境  release:正式
                jump_wxa.put("env_version", "release");
                //跳轉(zhuǎn)到的目標(biāo)小程序信息。
                jsonParam.put("jump_wxa", jump_wxa);
                //默認(rèn)值0,到期失效的 scheme 碼失效類型,失效時間:0,失效間隔天數(shù):1
                jsonParam.put("expire_type", 1);
                //到期失效的 scheme 碼的失效間隔天數(shù)。生成的到期失效 scheme 碼在該間隔時間到達(dá)前有效。最長間隔天數(shù)為30天。is_expire 為 true 且 expire_type 為 1 時必填
                jsonParam.put("expire_interval", 2);
                String params = jsonParam.toString();
                //請求微信接口,獲取url
                JSONObject resultUrl = getUrlScheme(httpUrl, AccessToken, params);

                //請求微信接口,生成失敗,返回錯誤碼及錯誤信息
                if (!resultUrl.getString("errcode").equals("0")) {
                    return Result.error(resultUrl.getString("errcode"), resultUrl.getString("errmsg"));
                }
                /*請求成功 返回url*/
                String newUrl = resultUrl.getString("openlink");
                return Result.ok(newUrl);
            } catch (SocketTimeoutException e) {
                e.printStackTrace();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        return null;
    }

    /**
     * @param httpUrl     微信接口的url
     * @param accessToken token
     * @param params      請求參數(shù)
     * @author: macro
     * @description: 請求URL Scheme接口,獲取url
     * @return: com.alibaba.fastjson.JSONObject URL
     **/
    private JSONObject getUrlScheme(String httpUrl, String accessToken, String params) throws IOException {
        String content;
        CloseableHttpClient httpClient = HttpClients.createDefault();
        RequestConfig requestConfig = RequestConfig.custom()
                .setSocketTimeout(300 * 1000)
                .setConnectTimeout(300 * 1000)
                .build();
        HttpPost post = new HttpPost(httpUrl + accessToken);
        post.setConfig(requestConfig);
        post.setHeader("Content-Type", "application/json;charset=utf-8");
        //URLEncoder.encode(name)
        StringEntity postingString = new StringEntity(params, "utf-8");
        post.setEntity(postingString);
        CloseableHttpResponse response = httpClient.execute(post);
        content = EntityUtils.toString(response.getEntity());
        JSONObject resultUrl = JSONObject.parseObject(content);
        return resultUrl;
    }


}

2.前端獲取Url Scheme跳轉(zhuǎn)到微信小程序

wxPay() {
        // ======================獲取跳轉(zhuǎn)的URL==============================
        //跳轉(zhuǎn)的微信小程序的路徑,傳遞給后端進(jìn)行處理
        this.info.jumpPath="pages/pay/index"
        /*獲取URL*/
        let jumpUrl=''
        uni.request({
          url: configService.apiUrl + this.url.getAppletUrl,
          method: 'POST',
          data: this.info,
          success: (result) => {
            if(result.data.success){
              jumpUrl=result.data.result
              //獲取到URL進(jìn)行跳轉(zhuǎn)
              window.location.href=jumpUrl
            }
          },
          fail: function (err) {
            uni.showToast({
              title: '打開失敗,請稍后再試!',
              icon: 'none',
              duration: 2000
            })
          }
        });
			},

文章來源地址http://www.zghlxwxcb.cn/news/detail-772850.html

到了這里,關(guān)于H5通過Url Scheme方式傳參跳轉(zhuǎn)微信小程序的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • h5頁面跳轉(zhuǎn)到微信小程序之利用URL Scheme接口

    h5頁面跳轉(zhuǎn)到微信小程序之利用URL Scheme接口

    首先想要跳轉(zhuǎn)到微信小程序得先知道 AppID 和 secret 如果不知道的情況下是無法跳轉(zhuǎn)的 urlscheme.generate 此時遇到一個問題是獲取auth.getAccessToken appid 此值在小程序里就可以獲取 到 secret 這個值只能在可在 微信公眾平臺 - 設(shè)置 - 開發(fā)設(shè)置 里面找到 接下來放代碼 這樣就可以在手機(jī)

    2024年02月15日
    瀏覽(96)
  • vue通過router地址傳參跳轉(zhuǎn)同一路由頁面,頁面不刷新的解決辦法

    vue、 vue-router@4 記錄一下最近遇到的vue路由頁面間的跳轉(zhuǎn)的問題,其中就涉及到了不同路由的跳轉(zhuǎn)(/a/b1 = /a/b2)、相同路由不同參數(shù)間的跳轉(zhuǎn)(/a/b?c=1 = /a/b?c=2)、相同頁面錨點(diǎn)跳轉(zhuǎn)(/a/b#id1 =/a/b#id2) 原因:渲染的是同一組件 解決:可以在不刷新的頁面通過監(jiān)聽route,重新加載

    2024年02月04日
    瀏覽(22)
  • h5頁面跳轉(zhuǎn)小程序-----明文URL Scheme

    h5頁面跳轉(zhuǎn)小程序-----明文URL Scheme

    ? ? ?1.1? 登錄微信公眾平臺 ? ? ?1.2? 設(shè)置 - 基本設(shè)置 - 隱私與安全 -?明文scheme拉起此小程序 - 配置 ? ? ? ? ?1.3? 進(jìn)入配置后,在里面配置允許通過scheme URL進(jìn)入的小程序路徑 ps:多個路徑用分號隔開,且路徑必須在小程序正式版存在 否則會報(bào): 小程序path格式不對,請?zhí)?/p>

    2024年03月26日
    瀏覽(23)
  • H5頁面跳轉(zhuǎn)微信小程序

    H5頁面跳轉(zhuǎn)微信小程序

    微信瀏覽器中實(shí)現(xiàn)跳轉(zhuǎn) 使用微信官方接口 wx-open-launch-weapp (該方法只開放給已認(rèn)證的服務(wù)號或者小程序云開發(fā)的靜態(tài)網(wǎng)站托管綁定的域名下的網(wǎng)頁) 案例代碼 相關(guān)文檔 目錄 | 微信開放文檔 微信開發(fā)者平臺文檔 https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_Open_Tag.htm

    2023年04月17日
    瀏覽(100)
  • uniapp webview H5跳轉(zhuǎn)微信小程序

    uniapp webview H5跳轉(zhuǎn)微信小程序

    第一步:manifest.json 第二步:index.html 第三步 H5跳轉(zhuǎn)微信小程序代碼

    2024年02月10日
    瀏覽(94)
  • uniapp微信公眾號(h5)端跳轉(zhuǎn)微信小程序

    uniapp微信公眾號(h5)端跳轉(zhuǎn)微信小程序

    ?。?!不是微信公眾號菜單跳轉(zhuǎn)小程序 微信公眾號菜單跳轉(zhuǎn)小程序:公眾號和小程序相互關(guān)聯(lián),在公眾號的自定義菜單中配置即可 1、 綁定域名 ?2、安裝依賴 jweixin-module 3、 引入掛載 !??!main.js引入掛載 ?。?!單頁面引入掛載 4、 通過 config 接口注入權(quán)限驗(yàn)證配置(需要后

    2024年02月13日
    瀏覽(470)
  • H5跳轉(zhuǎn)微信小程序-成功案例(VUE)(踩坑無數(shù))

    H5跳轉(zhuǎn)微信小程序-成功案例(VUE)(踩坑無數(shù))

    微信官方文檔:H5跳轉(zhuǎn)小程序. 已認(rèn)證的服務(wù)號 綁定JS接口安全域名 IP白名單 將小程序和H5公眾號進(jìn)行關(guān)聯(lián) 需要跳轉(zhuǎn)的小程序頁面path和原始ID(gh_xxxxxxxxx) 引入jweixin-1.6.0.js 1、已認(rèn)證的服務(wù)號 H5必須是依附于公眾號的,且公眾號必須為 服務(wù)號 ,不是訂閱號。 什么樣的公眾號

    2024年02月09日
    瀏覽(22)
  • h5跳轉(zhuǎn)微信小程序方案及注意事項(xiàng)(vue方向)

    h5跳轉(zhuǎn)微信小程序方案及注意事項(xiàng)(vue方向)

    在正式開發(fā)工作之前,請優(yōu)先熟讀并查看微信開發(fā)文檔。 需提前登錄微信公眾平臺進(jìn)入“公眾號設(shè)置”的“功能設(shè)置”的“JS接口安全域名”、“業(yè)務(wù)域名”、“網(wǎng)頁授權(quán)域名”內(nèi)依次配置h5頁面的相關(guān)域名地址(例如:www.baidu.com)這里不包含協(xié)議名稱和端口,同時可在根目

    2024年02月09日
    瀏覽(229)
  • 關(guān)于微信公眾號的h5頁面跳轉(zhuǎn)微信小程序的詳細(xì)介紹

    關(guān)于微信公眾號跳轉(zhuǎn)小程序的功能,我也是研究了一整天才弄好的,主要是微信官方文檔寫的不清楚,百度上的各種文章也各說各的,不過最后還是要相信官網(wǎng)文檔,接下來我會一步一步分析,希望對你有幫助,并且最后會貼上全部代碼。 一、條件 已認(rèn)證的 服務(wù)號 ,服務(wù)號

    2024年02月10日
    瀏覽(91)
  • h5跳轉(zhuǎn)微信小程序 wx-open-launch-weapp

    h5跳轉(zhuǎn)微信小程序 wx-open-launch-weapp

    微信開放標(biāo)簽是微信公眾平臺面向網(wǎng)頁開發(fā)者提供的擴(kuò)展標(biāo)簽集合。通過使用微信開放標(biāo)簽,網(wǎng)頁開發(fā)者可安全便捷地使用微信或系統(tǒng)的能力,為微信用戶提供更優(yōu)質(zhì)的網(wǎng)頁體驗(yàn)。 此文檔面向網(wǎng)頁開發(fā)者,介紹微信開放標(biāo)簽如何使用及相關(guān)注意事項(xiàng)。需要注意的是,微信開放

    2024年02月04日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包