목차
# 1. WeChat 공개 계정을 등록하세요" ># 1. WeChat 공개 계정을 등록하세요
# 2. 권한 활성화
# 3. 인터페이스 권한이 활성화된 후 공식 계정에 대한 JS 인터페이스 보안 도메인 이름을 설정해야 합니다
# 4. 보안 도메인 이름을 성공적으로 입력한 후 IP 화이트리스트를 구성해야 합니다
# 5. 위의 기능은 공식 계정에서 구성해야 합니다. 이제 모든 단계가 완료되어 특정 프로젝트에 인터페이스를 넣습니다.
위챗 애플릿 위챗 개발 H5 페이지 사용자 정의 제목, 링크, 설명, WeChat 친구에게 사진 공유, 순간, QQ 및 QQ 공간

H5 페이지 사용자 정의 제목, 링크, 설명, WeChat 친구에게 사진 공유, 순간, QQ 및 QQ 공간

May 07, 2020 pm 02:52 PM
h5

최근 직장에서 WeChat 친구, Moments, QQ 및 QQ 공간과 공유하려면 휴대폰의 H5 페이지를 맞춤 설정해야 하는 기능을 발견했습니다.

다음은 제가 바이두에서 직접 테스트해본 방법입니다. 여러분과 공유하고 서로 배워보겠습니다.

구현 원칙: H5의 사용자 정의 공유를 위해서는 WeChat 웹 개발의 JSSDK인 WeChat 공개 플랫폼의 공유 인터페이스를 사용해야 합니다. [구체 문서: https://developers.weixin.qq.com/doc/ offiaccount/OA_Web_Apps/JS-SDK.html】 아래와 같이 WeChat SDK의 공유 인터페이스를 사용하세요.

H5 페이지 사용자 정의 제목, 링크, 설명, WeChat 친구에게 사진 공유, 순간, QQ 및 QQ 공간

참고: 다음 사용자 정의 공유 기능은 WeChat의 내장 브라우저에서만 사용할 수 있습니다. 공유 작업은 다음과 같습니다. 내부에서 수행됩니다. 다른 브라우저에서는 불가능합니다.

# 1. WeChat 공개 계정을 등록하세요

먼저 WeChat 공개 계정을 개설해야 합니다. 공개 계정 유형은 구독 계정이어야 합니다.

# 2. 권한 활성화

공식 계정 등록이 완료된 후 WeChat 공개 플랫폼에 로그인하고 개발-"인터페이스 권한으로 이동하여 공유 인터페이스에 대한 권한을 활성화해야 합니다. [권한을 활성화하려면 권한이 필요합니다. 기업 인증 및 결제 인증], 아래와 같이 인증이 완료된 상황입니다:

H5 페이지 사용자 정의 제목, 링크, 설명, WeChat 친구에게 사진 공유, 순간, QQ 및 QQ 공간

# 3. 인터페이스 권한이 활성화된 후 공식 계정에 대한 JS 인터페이스 보안 도메인 이름을 설정해야 합니다

WeChat 공식 플랫폼에 로그인하고 설정-"공식 계정 설정-"기능 설정으로 들어가서 아래 그림과 같이 유효한 JS 인터페이스 보안 도메인 이름[프로젝트 액세스 도메인 이름]을 입력하세요.

H5 페이지 사용자 정의 제목, 링크, 설명, WeChat 친구에게 사진 공유, 순간, QQ 및 QQ 공간

# 4. 보안 도메인 이름을 성공적으로 입력한 후 IP 화이트리스트를 구성해야 합니다

개발->기본 설정-> IP 화이트리스트를 클릭하고 서버 IP[프로젝트가 위치한 서버의 IP 주소]를 입력합니다. . 구체적인 이유는 아래 그림과 같이 설명됩니다.

H5 페이지 사용자 정의 제목, 링크, 설명, WeChat 친구에게 사진 공유, 순간, QQ 및 QQ 공간

# 5. 위의 기능은 공식 계정에서 구성해야 합니다. 이제 모든 단계가 완료되어 특정 프로젝트에 인터페이스를 넣습니다.

## (1) JS 파일 소개

JS 인터페이스를 호출해야 하는 페이지에 다음 JS 파일을 소개합니다. (https 지원): http://res.wx.qq.com/open/ js/jweixin-1.4.0.js

서비스 안정성을 더욱 향상시켜야 할 경우 위의 리소스에 접근할 수 없을 때 다음을 방문하세요: http://res2.wx.qq .com/open/js/jweixin-1.4 .0.js (https 지원)

## (2) config 인터페이스를 통해 권한 확인 구성 주입

JS-SDK를 사용해야 하는 모든 페이지에서는 먼저 구성 정보를 주입해야 하며, 그렇지 않으면 불가능합니다. call

wx.config({
  debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
  appId: '', // 必填,公众号的唯一标识
  timestamp: , // 必填,生成签名的时间戳
  nonceStr: '', // 必填,生成签名的随机串
  signature: '',// 必填,签名
  jsApiList: [] // 必填,需要使用的JS接口列表
});
로그인 후 복사

위 권한 확인 매개변수 중

1. "appId"는 위챗 공개 플랫폼

H5 페이지 사용자 정의 제목, 링크, 설명, WeChat 친구에게 사진 공유, 순간, QQ 및 QQ 공간

2에서 얻을 수 있는 공식 계정의 고유 식별자입니다.

3. "nonceStr", 임의 문자열, [길이는 32자를 초과할 수 없음]

4. "서명", 서명(매개변수를 연결한 후 암호화해야 함)

5.jsApiList는 JS 인터페이스 목록입니다. 아래와 같이: [링크: https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html#62]

H5 페이지 사용자 정의 제목, 링크, 설명, WeChat 친구에게 사진 공유, 순간, QQ 및 QQ 공간

(3) 서명 "서명" 생성 [a 더 복잡한 곳]

a 서명을 생성하려면 여러 매개변수를 사용한 다음 매개변수를 문자열로 연결한 다음 sha1()을 사용하여 암호화해야 합니다.

매개변수는 다음과 같습니다: noncestr: 임의 문자열 [권한 확인 시 임의 문자열과 일치해야 합니다]

jsapi_ticket: jsapi_ticket은 공용 계정에서 WeChat을 호출하는 데 사용되는 임시 티켓입니다. JS 인터페이스, 일반 이 경우, access_token을 통해 얻은 jsapi_ticket의 유효기간은 7200초입니다.

timestamp: timestamp [이 타임스탬프도 권한 확인의 타임스탬프와 일치해야 하며 단위는 초입니다.]

url: # 및 다음 항목을 제외한 현재 웹페이지의 URL 문자

그런 다음 모든 매개변수를 문자열로 연결합니다. 예:

jsapi_ticket=sM4AOVdWfPE4DxkXGEs8VMCPGGVi4C3VM0P37wVUCFvkVAy_90u5h9nbSlYy3-Sl-HhTdfl2fzFy1AOcHKP7qg&noncestr=Wm3WZYTPz0wzccnW×tamp=1414587457&url=http://mp.weixin.qq.com?params=value

然后对上面的字符串进行加密【sha1()函数进行加密】,得到signature。

b.现在来说说怎样获得调用微信调用JS接口的临时票据jsapi_ticke

因为jsapi_ticket的有效期为7200秒,并且需要通过access_token来获取到,所以我们先获取access_token;access_token公众号的一天获取次数有限,2000次,且有效时间为7200秒,所以我们可以考虑每次获取到的access_token放入缓存或者让数据表中,在有效期内反复调用【我是存储到数据表中的】。

下面是我自己写的一个简单类和数据表结构

H5 페이지 사용자 정의 제목, 링크, 설명, WeChat 친구에게 사진 공유, 순간, QQ 및 QQ 공간

class Wxapi{
    protected $appid;
    protected $appsecret;
 
    /**
     * 构造函数
     * 2019-12-10
     */
    public function __construct($appid,$appsecret){
        $this->appid=$appid;
        $this->appsecret=$appsecret;
        $this->sessionKey_url="https://api.weixin.qq.com/sns/jscode2session";
        $this->accessToken_url="https://api.weixin.qq.com/cgi-bin/token";
        $this->jsapi_ticket_url="https://api.weixin.qq.com/cgi-bin/ticket/getticket";
        $this->qrcodeUrl="https://api.weixin.qq.com/cgi-bin/wxaapp/createwxaqrcode";
    }
 
    /**
     * 获取access_token
     * 2019-12-10
     *
     * @param string  appid         appid
     * @param string  appsecret     appsecret
     * @param string  tableName     表名(wx_account)
     * @return string token         token
     */
    public function getToken($appid,$appsecret,$tableName){
        $accountInfo = DB::table($tableName)->where('appid',$appid)->where('appsecret',$appsecret)->first();
        $now_time = time();//当前时间戳
        if(empty($accountInfo)){
            return false;
        }
        if($now_time-$accountInfo->access_token_time<7000){
            $token = $accountInfo->access_token;
            return $token;
        }else{
            $get_token_url = $this->accessToken_url."?grant_type=client_credential&appid=".$appid.&#39;&secret=&#39;.$appsecret;
            $getToken_json = curl_get($get_token_url);
            $getToken_arr = json_decode($getToken_json[&#39;output&#39;],true);
            $token = $getToken_arr[&#39;access_token&#39;];
            $arr = [
                &#39;access_token_time&#39;=>time(),
                &#39;access_token&#39;=>$token,
                &#39;updated_at&#39;=>date(&#39;Y-m-d H:i:s&#39;,time())
            ];
            $res = DB::table($tableName)->where(&#39;appid&#39;,$appid)->where(&#39;appsecret&#39;,$appsecret)->update($arr);
            if($res){
                return $token;
            }else{
                return false;
            }
        }
    }
 
    /**
     * 获取jssdk-ticket
     * 2019-12-10
     *
     * @param string  appid         appid
     * @param string  appsecret     appsecret
     * @param string  tableName     表名(wx_account)
     * @return string token         token
     */
    public function getJssdkTicket($appid,$appsecret,$tableName){
        $accountInfo = DB::table($tableName)->where(&#39;appid&#39;,$appid)->where(&#39;appsecret&#39;,$appsecret)->first();
        if(empty($accountInfo)){
            return false;
        }
        $now_time = time();//当前时间戳
        if($now_time-$accountInfo->jsapi_ticket_time<7000){
            $jsapi_ticket = $accountInfo->jsapi_ticket;
            return $jsapi_ticket;
        }else{
            $access_token=$this->getToken($appid,$appsecret,$tableName);
            if(!$access_token){
                return false;
            }
            $get_jsapi_ticket_url = $this->jsapi_ticket_url."?access_token=".$access_token."&type=jsapi";
            $getJssdkTicket_json = curl_get($get_jsapi_ticket_url);
            $getJssdkTicket_arr = json_decode($getJssdkTicket_json[&#39;output&#39;],true);
            $jsapi_ticket = $getJssdkTicket_arr[&#39;ticket&#39;];
            $arr = [
                &#39;jsapi_ticket_time&#39;=>time(),
                &#39;jsapi_ticket&#39;=>$jsapi_ticket,
                &#39;updated_at&#39;=>date(&#39;Y-m-d H:i:s&#39;,time())
            ];
            $res = DB::table($tableName)->where(&#39;appid&#39;,$appid)->where(&#39;appsecret&#39;,$appsecret)->update($arr);
            if($res){
                return $jsapi_ticket;
            }else{
                return false;
            }
        }
    }
}
로그인 후 복사

这边我们的操作是,我们后端获取jsapi_ticket返回给前端,然后前端进行权限验证。

为了方便调试,我们可以在微信开发者工具中进行调试。下载链接:https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html

当页面去调用微信的JSSDK接口时,成功可以看到对应的微信返回数据。

H5 페이지 사용자 정의 제목, 링크, 설명, WeChat 친구에게 사진 공유, 순간, QQ 및 QQ 공간

如果出现错误,请根据开发文档进行修改:

11H5 페이지 사용자 정의 제목, 링크, 설명, WeChat 친구에게 사진 공유, 순간, QQ 및 QQ 공간

然后在手机上进行分享,测试是否成功;下面是我成功的操作。

朋友圈分享:

H5 페이지 사용자 정의 제목, 링크, 설명, WeChat 친구에게 사진 공유, 순간, QQ 및 QQ 공간

微信群组分享:

H5 페이지 사용자 정의 제목, 링크, 설명, WeChat 친구에게 사진 공유, 순간, QQ 및 QQ 공간

QQ分享:

1H5 페이지 사용자 정의 제목, 링크, 설명, WeChat 친구에게 사진 공유, 순간, QQ 및 QQ 공간

위 내용은 H5 페이지 사용자 정의 제목, 링크, 설명, WeChat 친구에게 사진 공유, 순간, QQ 및 QQ 공간의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
2 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
2 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
2 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

h5은 무슨 뜻인가요? h5은 무슨 뜻인가요? Aug 02, 2023 pm 01:52 PM

H5는 HTML의 최신 버전인 HTML5를 말하며, H5 기술과 마찬가지로 개발자에게 더 많은 선택권과 창의적인 공간을 제공하는 강력한 마크업 언어입니다. 점차 성숙해지고 대중화되면서 인터넷 세계에서 점점 더 중요한 역할을 담당하게 될 것이라고 믿습니다.

H5, WEB 프론트엔드, 빅 프론트엔드, WEB 풀스택을 어떻게 구별하나요? H5, WEB 프론트엔드, 빅 프론트엔드, WEB 풀스택을 어떻게 구별하나요? Aug 03, 2022 pm 04:00 PM

이 글은 H5, WEB 프론트엔드, 대형 프론트엔드, WEB 풀스택을 빠르게 구별하는 데 도움이 될 것입니다. 도움이 필요한 친구들에게 도움이 되길 바랍니다!

h5에서 위치를 사용하는 방법 h5에서 위치를 사용하는 방법 Dec 26, 2023 pm 01:39 PM

H5에서는 position 속성을 사용하여 CSS를 통해 요소의 위치 지정을 제어할 수 있습니다. 1. 상대 위치 지정, 구문은 "style="position:relative;"; 2. 절대 위치 지정, 구문은 "style="position: 절대;" "; 3. 고정 위치 지정, 구문은 "style="position:fixed;" 등입니다.

다음 페이지를 로드하기 위해 웹 측에서 위로 슬라이드되도록 h5를 구현하는 방법 다음 페이지를 로드하기 위해 웹 측에서 위로 슬라이드되도록 h5를 구현하는 방법 Mar 11, 2024 am 10:26 AM

구현 단계: 1. 페이지의 스크롤 이벤트를 모니터링합니다. 2. 페이지가 아래쪽으로 스크롤되었는지 확인합니다. 3. 데이터의 다음 페이지를 로드합니다. 4. 페이지 스크롤 위치를 업데이트합니다.

vue3에서 H5 양식 유효성 검사 구성 요소를 구현하는 방법 vue3에서 H5 양식 유효성 검사 구성 요소를 구현하는 방법 Jun 03, 2023 pm 02:09 PM

렌더링 설명은 vue.js를 기반으로 하며 다른 플러그인이나 라이브러리에 의존하지 않습니다. 기본 기능은 element-ui와 일관되게 유지되며 모바일 차이점을 위해 내부 구현에 일부 조정이 이루어졌습니다. 현재 구축 플랫폼은 uni-app 공식 스캐폴딩을 사용하여 구축되었습니다. 현재 대부분의 모바일 단말기에는 h6 및 WeChat 미니 프로그램의 두 가지 유형이 있으므로 여러 단말기에서 하나의 코드 세트를 실행하는 기술 선택에 매우 적합합니다. 구현 아이디어 핵심 API: 및에 해당하는 제공 및 주입을 사용합니다. 컴포넌트에서는 내부적으로 변수(배열)를 사용하여 모든 인스턴스를 저장하고, 전송될 데이터는 제공을 통해 노출됩니다. 컴포넌트는 내부적으로 주입을 사용하여 상위 컴포넌트에서 제공하는 데이터를 수신하고 최종적으로 자신의 속성을 방법 제출

새로운 H5 프로모션 태그 요약 및 소개(예제 포함) 새로운 H5 프로모션 태그 요약 및 소개(예제 포함) Aug 03, 2022 pm 05:10 PM

​이 글에서는 새로운 H5 프로모션 태그에 대해 소개하겠습니다. 도움이 필요한 친구들에게 도움이 되길 바랍니다!

페이지 h5와 PHP는 무엇을 의미합니까? (관련 지식 토론) 페이지 h5와 PHP는 무엇을 의미합니까? (관련 지식 토론) Mar 20, 2023 pm 02:23 PM

HTML5와 PHP는 웹 개발에 일반적으로 사용되는 두 가지 기술입니다. 전자는 페이지 레이아웃, 스타일 및 상호 작용을 구축하는 데 사용되며 후자는 서버 측 비즈니스 논리 및 데이터 저장을 처리하는 데 사용됩니다. HTML5와 PHP에 대한 관련 지식을 살펴보겠습니다.

h5에는 어떤 캐싱 메커니즘이 있나요? h5에는 어떤 캐싱 메커니즘이 있나요? Nov 16, 2023 pm 01:27 PM

H5에는 직접적인 캐싱 메커니즘이 없지만 Web Storage API, IndexedDB, Service Workers, Cache API 및 애플리케이션 캐시와 같은 기술을 결합하여 강력한 캐싱 기능을 구현하고 애플리케이션의 성능, 가용성 및 확장성을 향상시킬 수 있습니다. 다양한 요구 사항과 적용 시나리오에 따라 선택하고 사용할 수 있습니다. 자세한 소개: 1. H5에서 제공하는 Web Storage API는 간단합니다.

See all articles