微信開發composer包,包含微信支付開發等

關於此開發包javascript

  • 此composer包主要是集成關於微信的一些經常使用開發如:微信公衆號二次開發,微信支付,微信手機web的分享等。因爲包含衆多功能現只上傳了微信手機web的分享。後期會持續跟進和更新。
  • 您在用此包時已默認您已會併成功配置了相關公衆號信息且會使用composer
  • 安裝命令composer require doing/wechat 版本號
  • 此包只能集成於ThinkPHP5裏面:緣由是使用了它的緩存機制和異常處理機制,若是想使用於其餘框架也很簡單,只須要把緩存機制和異常機制作一個更換處理便可(主要是編程思想)


微信手機web分享(發送給朋友,朋友圈等)

配置公衆號

php

  • 若是隻作jssdk相關需求就只須要appid和appsecret,至於怎麼去公衆號獲取能夠百度不少。
  • 配置安全域名


 

服務器端html

  • 任務是獲取分享時須要的appid和簽名等參數
  • 大概流程:經過appid和appsecret->獲取AccessToken->獲取jsapi的ticket->再簽名返回
  • 開發前請在doing/wechat/config/WechatConfig.php 配置appid和appsecret

寫在接口以前java

  1. 把doing/wechat/functions.php裏面的函數getRandChar()和postCurl()複製粘貼到application/common.php裏。複製完成後functions.php就完成了它的使命,您能夠選擇刪除此文件

寫一個接口獲取參數(以json返回)jquery

public function info()
{
  
    //客戶端傳遞過來的參數fullurl必定是要經過js的encodeURIComponent轉義了的

    $fullurl = urldecode(input('fullurl'));
    #獲取權限信息(直接調用包內方法便可):
    //類的頂上必定保證use wechat\auth\WxAuth;
  try
  {
        return json(WxAuth::instance()->getInfo($fullurl));
    }
    catch (\Exception $e)
    {
        $exp['msg'] = $e->getMessage();
        $exp['code'] = $e->getCode();
        #TP5的返回方式 異常都在客戶端的error回掉函數內處理
        return json($exp, $e->getCode());
  }//-try
}//pf

 

返回成功的數據格式以下(知足客戶端調用微信jssdk時須要的數據結構)web

{
   appId: 'you appId',// 公衆號的惟一標識
   timestamp:'12345678',// 生成簽名的時間戳
   nonceStr: '12345678',// 生成簽名的隨機串
   signature: '12345678'// 簽名
}

  

返回異常的數據格式以下(http狀態碼600在header體現)ajax

{

   "msg": "微信錯誤碼【40164】invalid ip 118.112.58.58, not in whitelist hint: [wgirhA04751512]",
   "code": 600
}


客戶端(手機web)

一、要確保加載了jquery和微信jsdk編程

<script src="http://res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>

二、定義相應的urljson

//BASE_URL_WX是你的服務器地址好比http://www.test.com防止之後更改:這個域名要和微信公衆號配置的JS安全域名保持一致
//shareUrl是你要分享的頁面的url若是後面有參數就?id=xx拼接
var shareUrl = BASE_URL_WX + "/listen/web/share/app";
//fullurl是去簽名的url也就是嗲都用接口時客戶端要的
//fullurl必定要這麼寫,且不少時候shareUrl和fullurl是相等的但有些特殊狀況不相等要報錯:這個問題調試了一天得出的結論
var fullurl = encodeURIComponent(location.href.split('#')[0]);
經過ajax請求獲取簽名等參數同時寫微信的邏輯api


說明:下面的imgUrl必定是直接能夠訪問的且在服務器上的全路徑

$.ajax({
        type: 'GET',
        url: SIGN_URL,
        data:{fullurl:fullurl},
        dataType: 'json',
        success: function (res) {
            wx.config({
                debug: false, // 開啓調試模式,調用的全部api的返回值會在客戶端alert出來,若要查看傳入的參數,能夠在pc端打開,參數信息會經過log打出,僅在pc端時纔會打印。
                appId: res.appId, // 必填,公衆號的惟一標識
                timestamp: res.timestamp, // 必填,生成簽名的時間戳
                nonceStr: res.noncestr, // 必填,生成簽名的隨機串
                signature: res.signature,// 必填,簽名
                jsApiList: [
                    'onMenuShareAppMessage',//分享給好友
                    'onMenuShareTimeline'//朋友圈
                ] // 必填,須要使用的JS接口列表
            });
            wx.ready(function () {
                    //發送給朋友
                wx.onMenuShareAppMessage({
                   title: title, // 分享標題
                   desc: desc, // 分享描述
                   link: shareUrl, // 分享連接
                   imgUrl:shareImg, // 分享圖標
                   type: 'link', // 分享類型,music、video或link,不填默認爲link
                   dataUrl: '', // 若是type是music或video,則要提供數據連接,默認爲空
                   success: function () {
                    
                   },
                   cancel: function () {}
                }),
                                //分享到朋友圈
                wx.onMenuShareTimeline({
                   title: title, // 分享標題
                   link: shareUrl, // 分享連接
                   imgUrl:shareImg, // 分享圖標
                })

            });
        },
        error: function (res) {
            alert("微信服務器異常");
        }
    });

代碼下載:微信開發,集公衆號、微信支付等功能於一身的composer包

相關文章
相關標籤/搜索