## **关于微信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下,请保证写权限)
);
~~~