php composer 微信,微信开发composer包,包含微信支付开发等

关于此开发包

此composer包主要是集成关于微信的一些常用开发如:微信公众号二次开发,微信支付,微信手机web的分享等。由于包含众多功能现只上传了微信手机web的分享。后期会持续跟进和更新。

您在用此包时已默认您已会并成功配置了相关公众号信息且会使用composer

安装命令composer require doing/wechat 版本号

此包只能集成于ThinkPHP5里面:原因是使用了它的缓存机制和异常处理机制,如果想使用于其他框架也很简单,只需要把缓存机制和异常机制做一个更换处理即可(主要是编程思想)

微信手机web分享(发送给朋友,朋友圈等)

配置公众号

如果只做jssdk相关需求就只需要appid和appsecret,至于怎么去公众号获取可以百度很多。

配置安全域名

fe5f4d5a1e779c684bfed2df8427629f.png 

服务器端

任务是获取分享时需要的appid和签名等参数

大概流程:通过appid和appsecret->获取AccessToken->获取jsapi的ticket->再签名返回

开发前请在doing/wechat/config/WechatConfig.php 配置appid和appsecret

写在接口之前

把doing/wechat/functions.php里面的函数getRandChar()和postCurl()复制粘贴到application/common.php里。复制完成后functions.php就完成了它的使命,您可以选择删除此文件

写一个接口获取参数(以json返回)

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时需要的数据结构)

{

appId: 'you appId',// 公众号的唯一标识

timestamp:'12345678',// 生成签名的时间戳

nonceStr: '12345678',// 生成签名的随机串

signature: '12345678'// 签名

}

返回异常的数据格式如下(http状态码600在header体现)

{

"msg": "微信错误码【40164】invalid ip 118.112.58.58, not in whitelist hint: [wgirhA04751512]",

"code": 600

}

客户端(手机web)

1、要确保加载了jquery和微信jsdk

2、定义相应的url

//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请求获取签名等参数同时写微信的逻辑

说明:下面的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("微信服务器异常");

}

});

/** * 微信支付帮助库 * ==================================================== * 接口分三种类型: * 【请求型接口】--Wxpay_client_ * 统一支付接口类--UnifiedOrder * 订单查询接口--OrderQuery * 退款申请接口--Refund * 退款查询接口--RefundQuery * 对账单接口--DownloadBill * 短链接转换接口--ShortUrl * 【响应型接口】--Wxpay_server_ * 通用通知接口--Notify * Native支付——请求商家获取商品信息接口--NativeCall * 【其他】 * 静态链接二维码--NativeLink * JSAPI支付--JsApi * ===================================================== * 【CommonUtil】常用工具: * trimString(),设置参数时需要用到的字符处理函数 * createNoncestr(),产生随机字符串,不长于32位 * formatBizQueryParaMap(),格式化参数,签名过程需要用到 * getSign(),生成签名 * arrayToXml(),array转xml * xmlToArray(),xml转 array * postXmlCurl(),以post方式提交xml到对应的接口url * postXmlSSLCurl(),使用证书,以post方式提交xml到对应的接口url */ include_once("SDKRuntimeException.php"); include_once("WxPay.pub.config.php"); /** * 所有接口的基类 */ class Common_util_pub { function __construct() { } function trimString($value) { $ret = null; if (null != $value) { $ret = $value; if (strlen($ret) == 0) { $ret = null; } } return $ret; } /** * 作用:产生随机字符串,不长于32位 */ public function createNoncestr( $length = 32 ) { $chars = "abcdefghijklmnopqrstuvwxyz0123456789"; $str =""; for ( $i = 0; $i $v) { if($urlencode) { $v = urlencode($v); } //$buff .= strtolower($k) . "=" . $v . "&"; $buff .= $k . "=" . $v . "&"; } $reqPar; if (strlen($buff) > 0) { $reqPar = substr($buff, 0, strlen($buff)-1); } return $reqPar; } /** * 作用:生成签名 */ public function getSign($Obj) { foreach ($Obj as $k => $v) { $Parameters[$k] = $v; } //签名步骤一:按字典序排序参数 ksort($Parameters); $String = $this->formatBizQueryParaMap($Parameters, false)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值