前段时间由于业务需求又开始接触了小程序支付调用代码 原来没有整理,现在又要重新看了 太麻烦。
现在把代码整理出来方便以后直接用。
大概给说下 调用流程吧
首先 小程序 授权 授权成功 开始调用 小程序的登录
supplier_id 是自己加的不需要!!
后端代码 session_key.php
echo file_get_contents("https://api.weixin.qq.com/sns/jscode2session?appid=".$appid."&secret=".$appsecret."&js_code=".$code."&grant_type=authorization_code");
这个其实就是为了返回这个值 给小程序
小程序接到这个值 然后发起 demo.php 请求 具体看上面代码
demo.php 代码
define('IN_ECS', true); define('IN_CTRL', true); include_once "wxBizDataCrypt.php"; $appid = $res['appid']; /* //调用登录接口 wx.login({ success: function (rres) { wx.getUserInfo({ success: function (res) { //that.globalData.userInfo = res.userInfo that.globalData.userInfo = res.encryptedData+'wangt'+res.iv+'code'+rres.code; //that.globalData.userInfo = res.code //console.log(res.userInfo) typeof cb == "function" && cb(that.globalData.userInfo) } }) } }) */ // $iv : res.iv //js_code : rres.code //$encryptedData : res.encryptedData // https://api.weixin.qq.com/sns/jscode2session?appid=wx397f8d585bdb2557&secret=78e40f84f7392ee199e3adaa6ea72d0a&js_code=021VFFTF0wdcIh2JwUTF0ULGTF0VFFTj&grant_type=authorization_code //返回值为 $sessionKey // $sessionKey = 'P0jnPQP7B2lvWFx7lne8zQ=='; $sessionKey = $_REQUEST['sessionKey']; $encryptedData =$_REQUEST['encryptedData']; // $encryptedData="kkXRS3sZdoIlEAmC29484HLXmW1b7RfUAJMsG3uOFelvRQy+i2N4NzqYR+VtJpy4AzQgEYwmueYfOQkj6Gh52mhpkSPn0eBM6Jky9WCazmrW9kaKmv2BkwDHFyJ5DYSg6bWVBeJrY7ddiihrbEDxR/aMvB2o6ZspzQ/7dcc1Ufwwyj6PM/L2l34mviJ/R/vtclxaOdbojiwx8ujVJh1Pk7QGgZSL0m6+h+em1Is999EHPiOjM6oqCLWz8qxe080U0wFlUwxwdSn3apopyWwt7ZI9EdHLGRSfl/zWG/JEyhYcJXcml3xYdL3wpfc3qdjgofhXv7+yp/hkN5HRzlV6fkIk66JL14jmzaN3kJhktQ0d+Y3SFGUsh5FpBJ6CPvXwZQ21mh30Oi6LYkhmRCVWfF7j1RUngEs8+bZml672OqVhnFMwihW/kiNLbFVb+fHkK2QN8rYhOKbjSaSYVr3QwF26Mb3oK/qoy41iU/uiPQvjn7mikHP0si2a8TbFRRzy5i/EkoltKHtONcOum8kMVQ=="; //$iv = 'r7BXXKkLb8qrSNn05n0qiA=='; // $iv = '+TYATEUZvFiBxLZmSUFyJw=='; $iv = $_REQUEST['iv']; $pc = new WXBizDataCrypt($appid, $sessionKey); $errCode = $pc->decryptData($encryptedData, $iv, $data ); function object2array(&$object) { $object = json_decode($object,true); return $object; } if ($errCode == 0) { // print_r($data); $data = object2array(&$data); unset($data['watermark']); die(json_encode($data)); // var_dump($data['unionId']); } else { print($errCode . "\n"); }
输出用户的信息 以及 openid
注意 要是 关联 了公众平台 还会 多返回一个参数 unid
前面调用 用户信息大概就是这个样子
下面就是支付的 调用
请求的 参数
2. 微信SDK 下载链接:https://pay.weixin.qq.com/wiki/doc/api/download/WxpayAPI_php_v3.zip
解压在lib文件夹下可以看到: