微信的使用

JS-SDK网页分享

绑定域名

登录微信公众平台,进入“公众号设置”-“功能设置”,然后填写“JS接口安全域名”。不用加http://只需要写域名即可

file

设置IP白名单

file

确定有分享权限

file

获取秘钥

基本配置中查看AppID和AppSecret,注意这里一定要用管理员的手机摄像头扫码(长按扫码是没用的)

后端加签代码 php的

打开debug

很多时候,你发现不生效,那么我们就可以打开debug模式,看哪里不生效

 wx.config({
    debug: true,
    appId: resule.appId,
    timestamp: resule.timestamp,
    nonceStr: resule.nonceStr,
    signature: resule.signature,
    jsApiList: ['onMenuShareTimeline', 'onMenuShareAppMessage']
});
wx.error(function(res){
    // config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。
    alert(res)
});

file

url必须是分享页面的url切#后面的都舍弃...

前端获取当前url

var url = document.location.href.split('#')[0];

注意事项

自带浏览器注意事项

  • 一定要把meta title 这个属性的值动态(比如文章标题),这样分享出来标题才会变,,并且图也会变,不会小图的变化规律我还没找到

参考文献

微信扫码支付

商家参数格式有误,请联系商家解决

微信H5支付

微信卡劵

获取xml数据

由于用户在领取卡劵,微信回调服务器的时候是xml格式的

//laravel框架中获取xml并转为数组
$xmlData = request()->getContent();
$arrData = XMLHandle::parse($xmlData);
public static function parse($xml)
{
    $data = simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA | LIBXML_NOBLANKS);
    if (is_object($data) && get_class($data) === 'SimpleXMLElement') {
        $data = self::arrarval($data);
    }

    return $data;
}

JSSDK卡卷微信签名规则

将 api_ticket、timestamp、card_id、code、openid、nonce_str的value值进行字符串的字典序排序。

字典排序就是0-9 a-z

//在php中我们这样做就可以字典排序然后sha1
$args = [
    "$timestamp"=>"$timestamp",$jsapiTicket=>$jsapiTicket,$nonceStr=>$nonceStr,$cardId=>$cardId
];
sort($args);
$string = implode('',$args);
$signature = sha1($string);

微信公众号

微信公众号自定义菜单不生效

在设置了自定义菜单之后,接口返回正常.. 但是公众号缺没有变化.. 这时候需要重新关注公众号..这个缓存才会清除

注意事项

  • 你接收数据成功之后,一定要响应微信服务器,否则 微信服务器在5秒钟内没收到响应.. 会重试3次