这次对接主要没有下载网上的资料,直接开干,虽有些辛苦,倒也填了一些坑。
1、准备。
公众号:认证的服务号,这里需要服务号中的key,要填写授权域名。
微信支付:申请JsApi支付,配置好域名。
OK!妥妥的。
2、下载官网demo
在根目录随便建立文件夹,比如wei,把微信官网的sdk https://pay.weixin.qq.com/wiki/doc/api/index.html。官网文档上传文件夹wei,填写好配置文件,访问example/jsapi.php,示例中支付一分钱,妥妥的。
如果这步出现问题,请不要向下进行。
3、对接ThinkPHP
建立方法控制器,这里有人会用到什么H5支付的SDK文件、PC端的支付SDK文件,在这里并没有用到,而是重新extend下新建立了一个weixininnerpay,并上传官网SDK。
上传官网SDK这个过程有点复杂,但是并比难,主要是为各文件创建namespace以及use各种类,WxPayDataBase.php拆分出两个类出来。。可直接下载了已经整理好的,希望永远不要再来一次……
4、错误总结
40163错误,这个错误不怪你,怪官网的不地道,咱改一改……
JsAPIPay.php中GetOpenid方法:
//通过code获得openid if (!isset($_GET['code']) ){ //触发微信返回code码 $baseUrl = urlencode('http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']); $url = $this->_CreateOauthUrlForCode($baseUrl); Header("Location: $url"); exit(); } else { //获取code码,以获取openid $code = $_GET['code']; if(empty(session($code))){ $openid = $this->getOpenidFromMp($code); }else{ $openid= session($code); } session($code, $openid);// ###### 2019.03.01 加 为解决code been used return $openid; }
到这里基本差不多了,详情见demo