**关于微信SDK文件描述** -- 所有微信接口源文件都位于`Wechat`目录之下,可自行查看源代码。 * `WechatCard.php` 微信卡券接口 * `WechatCustom.php` 微信多客服接口 * `WechatDevice.php` 微信周边设备接口 * `WechatExtends.php` 微信其它工具接口 * `WechatMedia.php` 微信媒体素材接口 * `WechatMenu.php` 微信菜单操作接口 * `WechatOauth.php` 微信网页授权接口 * `WechatPay.php` 微信支付相关接口 * `WechatPoi.php` 微信门店相关接口 * `WechatReceive.php` 微信被动消息处理SDK * `WechatScript.php` 微信网页脚本工具 * `WechatUser.php` 微信粉丝操作接口 **微信SDK文档中的举例说明** -- * 文档的举例均使用了 `load_wechat` 函数来加载实例,我也建议在项目中放置一个这样的函数 * 下面是`load_wechat`助手函数标准代码,请根据自己项目的情况动态读取微信配置参数 ``` /** * 获取微信操作对象(单例模式) * @staticvar array $wechat 静态对象缓存对象 * @param type $type 接口名称 ( Card|Custom|Device|Extend|Media|Oauth|Pay|Receive|Script|User ) * @return \Wehcat\WechatReceive 返回接口对接 */ function & load_wechat($type = '') { static $wechat = array(); $index = md5(strtolower($type)); if (!isset($wechat[$index])) { // 定义微信公众号配置参数(这里是可以从数据库读取的哦) $options = array( 'token' => '', // 填写你设定的key 'appid' => '', // 填写高级调用功能的app id, 请在微信开发模式后台查询 'appsecret' => '', // 填写高级调用功能的密钥 'encodingaeskey' => '', // 填写加密用的EncodingAESKey(可选,接口传输选择加密时必需) 'mch_id' => '', // 微信支付,商户ID(可选) 'partnerkey' => '', // 微信支付,密钥(可选) 'ssl_cer' => '', // 微信支付,双向证书(可选,操作退款或打款时必需) 'ssl_key' => '', // 微信支付,双向证书(可选,操作退款或打款时必需) 'cachepath' => '', // 设置SDK缓存目录(可选,默认位置在Wechat/Cache下,请保证写权限) ); \Wechat\Loader::config($options); $wechat[$index] = \Wechat\Loader::get($type); } return $wechat[$index]; } ``` * 其实代码只是个人爱好,完全看你们如何来控制玩转文件加载加载机制。 * SDK内部也提供了一种单例加载的方式,也就是` \Wechat\Loader::get('Pay',$options)`方式,但是通过这种方式去加载SDK对象,仍旧需要每次都提供微信的配置参数,因此我们也极力推荐使用助手函数来实现,也就是上面的举例。 * 当然SDK中所有的类都是可以直接实例的,如:`$pay = new \Wechat\WechatPay($options)`。 * 这里所涉及到的`$options`参数就得自己去准备了,参数字段如下: ``` $options = array( 'token' => '', // 填写你设定的key 'appid' => '', // 填写高级调用功能的app id, 请在微信开发模式后台查询 'appsecret' => '', // 填写高级调用功能的密钥 'encodingaeskey' => '', // 填写加密用的EncodingAESKey(可选,接口传输选择加密时必需) 'mch_id' => '', // 微信支付,商户ID(可选) 'partnerkey' => '', // 微信支付,密钥(可选) 'ssl_cer' => '', // 微信支付,证书cert的路径(可选,操作退款或打款时必需) 'ssl_key' => '', // 微信支付,证书key的路径(可选,操作退款或打款时必需) 'cachepath' => '', // 设置SDK缓存目录(可选,默认位置在./src/Cache下,请保证写权限) ); ```