微信小程序组件 1.2.x
获取小程序对象
$wxa = new \EasySwoole\WeChat\MiniProgram\MiniProgram;
$wxa->getConfig()->setAppId('your appid')->setAppSecret('your appsecret');
获取小程序session
详细信息请参阅 微信小程序登陆
$code = '';
$session = $wxa->auth()->session($code);
你会返回一个包含下面文档中提到的参数的数组 code2Session
创建二维码
参阅文档documentation
我们可以使用一下三种方式创建二维码
/** 二维码 - 永久小程序码 Api: $wxa->qrCode()->getWxaCode()
* @param $path 扫码进入的小程序页面路径,最大长度 128 字节
* @param int $width 二维码的宽度
* @param bool $autoColor 自动配置线条颜色
* @param null $lineColor auto_color 为 false 时生效,使用 rgb 设置颜色 例如 {"r":"xxx","g":"xxx","b":"xxx"} 十进制表示
* @param bool $isHyaline 是否需要透明底色
*/
function getWxaCode($path, $width = 430, $autoColor = false, $lineColor = null, $isHyaline = false)
/**
* 二维码 - 临时小程序码 Api: $wxa->qrCode()->getWxaCodeUnLimit()
* @param $path 已经发布的小程序存在的页面
* @param $scene 最大32个可见字符
* @param int $width 二维码的宽度
* @param bool $autoColor 自动配置线条颜色
* @param null $lineColor auto_color 为 false 时生效,使用 rgb 设置颜色 例如 {"r":"xxx","g":"xxx","b":"xxx"} 十进制表示
* @param bool $isHyaline 是否需要透明底色
*/
function getWxaCodeUnLimit($path, $scene, $width = 430, $autoColor = false, $lineColor = null, $isHyaline = false)
/**
* 二维码 - 永久二维码 Api: $wxa->qrCode()->createWxaQrCode()
* @param $path 扫码进入的小程序页面路径,最大长度 128 字节
* @param int $width 二维码的宽度
*/
function createWxaQrCode($path, $width = 430)
获取帐号下已存在的模板列表
$wxa->templateMsg()->getTemplateList(int $offset, int $count)
获取模板库某个模板标题下关键词库
$wxa->templateMsg()->getTemplateLibraryById(string $id)
组合模板并添加至帐号下的个人模板库
$wxa->templateMsg()->addTemplate(string $id, array $keywordIdList)
删除帐号下的某个模板
$wxa->templateMsg()->deleteTemplate(string $templateId)
获取小程序模板库标题列表
$wxa->templateMsg()->getTemplateLibraryList(int $offset, int $count)
发送模板消息
//要传递的参数数组,下面实际方法中是传入Bean
$templateMsg = [
'touser' => 'user-openid',
'template_id' => 'template-id',
'page' => 'index',
'form_id' => 'form-id',
'data' => [
'keyword1' => 'VALUE',
'keyword2' => 'VALUE2',
],
];
$wxa->templateMsg()->send(TemplateMsgBean $templateMsg)
微信小程序消息解密(获取电话等功能,信息是加密的,需要解密)
$wxa->encryptor()->decryptData(string $sessionKey, string $iv, string $encryptedData)
检查一段文本是否含有违法违规内容
$wxa->checkFile()->msgSecCheck(string $content)
校验一张图片是否含有违法违规内容
$wxa->checkFile()->imgSecCheck(ImgUploadBean $imgUpload)
异步校验图片/音频是否含有违法违规内容
$wxa->checkFile()->mediaCheckAsync(string $mediaUrl ,int $mediaType)
物流助手(小程序)
/**
* 绑定、解绑物流账号 Api: $wxa->logisticsProgram()->bindAccount()
* @param BindAccount $bindAccount
*/
function bindAccount(BindAccount $bindAccount)
//例子
//要传递的参数数组,下面实际方法中是传入Bean
$bindAccount = [
'type' => 'bind', //bind表示绑定,unbind表示解除绑定
'biz_id' => '1', //快递公司客户编码
'delivery_id' => '1', //快递公司ID
'password' => '***', //快递公司客户密码
'remark_content'=> '测试' //备注内容(提交EMS审核需要)
];
$wxa->logisticsProgram()->bindAccount($bindAccount);
/**获取所有绑定的物流账号 Api: $wxa->logisticsProgram()->getAllAccount()
*
*/
function getAllAccount()
/**
* 获取电子面单余额。仅在使用加盟类快递公司时,才可以调用。 Api: $wxa->logisticsProgram()->getQuota()
* @param string $deliveryId 快递公司ID
* @param string $bizId 快递公司客户编码
*/
function getQuota(string $deliveryId ,string $bizId)
/**
* 生成运单 Api: $wxa->logisticsProgram()->addOrder()
* @param AddOrder $addOrder
* 具体参数请参考文档: https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/express/by-business/logistics.addOrder.html
*/
function addOrder(AddOrder $addOrder)
/**
* 取消运单 Api: $wxa->logisticsProgram()->cancelOrder()
* @param string $orderId 订单 ID,需保证全局唯一
* @param string $openid 用户openid,当add_source=2时无需填写(不发送物流服务通知)
* @param string $deliveryId 快递公司ID
* @param string $waybillId 运单ID
*/
function cancelOrder(string $orderId ,string $openid ,string $deliveryId ,string $waybillId)
/**
* 获取支持的快递公司列表 Api: $wxa->logisticsProgram()->getAllDelivery()
*/
function getAllDelivery()
/* 获取运单数据 Api: $wxa->logisticsProgram()->getOrder()
* @param string $orderId 订单 ID,需保证全局唯一
* @param string $openid 用户openid,当add_source=2时无需填写(不发送物流服务通知)
* @param string $deliveryId 快递公司ID
* @param string $waybillId 运单ID
*/
function getOrder(string $orderId ,string $openid ,string $deliveryId ,string $waybillId)
/* 查询运单轨迹 Api: $wxa->logisticsProgram()->getPath()
* @param string $orderId 订单 ID,需保证全局唯一
* @param string $openid 用户openid,当add_source=2时无需填写(不发送物流服务通知)
* @param string $deliveryId 快递公司ID
* @param string $waybillId 运单ID
*/
function getPath(string $orderId ,string $openid ,string $deliveryId ,string $waybillId)
//获取打印员。若需要使用微信打单 PC 软件,才需要调用。 Api: $wxa->logisticsProgram()->getPrinter()
function getPrinter()
/**
* 配置面单打印员,若需要使用微信打单 PC 软件,才需要调用。 Api: $wxa->logisticsProgram()->updatePrinter()
* @param string $openid 打印员 openid
* @param string $updateType 更新类型
* @param string $tagidList 用于平台型小程序设置入驻方的打印员面单打印权限,同一打印员最多支持10个tagid,使用逗号分隔,如填写123,456,表示该打印员可以拉取到tagid为123和456的下的单,非平台型小程序无需填写该字段
*/
function updatePrinter(string $openid ,string $updateType ,string $tagidList)
物流助手(服务端)
/**
* 获取面单联系人信息 Api: $wxa->logisticsService()->getContact()
* @param string $tokens 商户侧下单事件中推送的 Token 字段
* @param string $waybillId 运单 ID
*/
function getContact(string $tokens ,string $waybillId)
/**
* 预览面单模板。用于调试面单模板使用。 Api: $wxa->logisticsService()->previewTemplate()
* @param string $waybillId 运单 ID
* @param string $waybillTemplate 面单 HTML 模板内容(需经 Base64 编码)
* @param string $waybillData 面单数据
* @param AddOrder $addOrder 商户下单数据
* 具体参数文档地址:https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/express/by-provider/logistics.previewTemplate.html
*/
function previewTemplate(string $waybillId ,string $waybillTemplate ,string $waybillData,AddOrder $addOrder)
/**
* 更新商户审核结果 Api: $wxa->logisticsService()->updateBusiness()
* @param string $shopAppId 商户的小程序AppID
* @param string $bizId 商户账户
* @param int $resultCode 审核结果,0 表示审核通过,其他表示审核失败
* @param string $resultMsg 审核错误原因,仅 result_code 不等于 0 时需要设置
*/
function updateBusiness(string $shopAppId ,string $bizId ,int $resultCode ,string $resultMsg)
/**
* 更新运单轨迹 Api: $wxa->logisticsService()->updatePath()
* @param UpdatePath $updatePath
* 具体参数文档地址:https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/express/by-provider/logistics.updatePath.html
*/
function updatePath(UpdatePath $updatePath)
生物认证
/**
* SOTER 生物认证秘钥签名验证 Api: $wxa->attest()->verifySignature()
* @param string $openid 用户 openid
* @param string $jsonString 通过 wx.startSoterAuthentication 成功回调获得的 resultJSON 字段
* @param string $jsonSignature 通过 wx.startSoterAuthentication 成功回调获得的 resultJSONSignature 字段
*/
function verifySignature(string $openid ,string $jsonString ,string $jsonSignature)
插件管理
/**
*向插件开发者发起使用插件的申请 Api: $wxa->plugin()->applyPlugin()
* @param string $action 此接口下填写 "apply"
* @param string $pluginAppid 插件 appId
* @param string $reason 申请使用理由
*/
function applyPlugin(string $action = 'apply' ,string $pluginAppid ,string $reason = '')
/**
* 获取当前所有插件使用方(供插件开发者调用)Api: $wxa->plugin()->getPluginDevApplyList()
* @param string $action 此接口下填写 "dev_apply_list"
* @param int $page 要拉取第几页的数据
* @param int $num 每页的记录数
*/
function getPluginDevApplyList(string $action = 'dev_apply_list' ,int $page = 1 ,int $num = 10)
/**
* 查询已添加的插件 Api: $wxa->plugin()->getPluginList()
* @param string $action 此接口下填写 "list"
*/
function getPluginList(string $action = 'list')
/**
* 修改插件使用申请的状态(供插件开发者调用)Api: $wxa->plugin()->setDevPluginApplyStatus()
* @param string $action 修改操作
* @param string $appid 使用者的 appid。同意申请时填写。
* @param string $reason 拒绝理由。拒绝申请时填写
*/
function setDevPluginApplyStatus(string $action ,string $appid = '' ,string $reason = '')
/**
* 删除已添加的插件 Api: $wxa->plugin()->unbindPlugin()
* @param string $action 此接口下填写 "unbind"
* @param string $pluginAppid 插件 appId
*/
function unbindPlugin(string $action = 'unbind' ,string $pluginAppid)
附近的小程序
/**
* 添加地点 Api: $wxa->program()->add()
* @param ProgramBean $program
* 参数文档: https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/nearby-poi/nearbyPoi.add.html
*/
function add(ProgramBean $program)
//例子
$program = [
'kf_info' => '{"open_kf":true,"kf_headimg":"http://mmbiz.qpic.cn/mmbiz_jpg/kKMgNtnEfQzDKpLXYhgo3W3Gndl34gITqmP914zSwhajIEJzUPpx40P7R8fRe1QmicneQMhFzpZNhSLjrvU1pIA/0?wx_fmt=jpeg","kf_name":"Harden"}',
'pic_list' => '{"list":["http://mmbiz.qpic.cn/mmbiz_jpg/kKMgNtnEfQzDKpLXYhgo3W3Gndl34gITqmP914zSwhajIEJzUPpx40P7R8fRe1QmicneQMhFzpZNhSLjrvU1pIA/0?wx_fmt=jpeg","http://mmbiz.qpic.cn/mmbiz_jpg/kKMgNtnEfQzDKpLXYhgo3W3Gndl34gITRneE5FS9uYruXGMmrtmhsBySwddEWUGOibG8Ze2NT5E3Dyt79I0htNg/0?wx_fmt=jpeg"]}',
'service_infos' => '{"service_infos":[{"id":2,"type":1,"name":"快递","appid":"wx1373169e494e0c39","path":"index"},{"id":0,"type":2,"name":"测试","appid":"wx1373169e494e0c39","path":"index"}]}',
'store_name' => '测试测试',
'contract_phone' => '1769360227',
'hour' => '00:00-11:11',
'company_name' => '测试数据啊',
'credential' => '13082741523645',
'address' => 'xxxxxxxx',
'qualification_list' => '3LaLzqiTrQcD20DlX_o-OV1-nlYMu7sdVAL7SV2PrxVyjZFZZmB3O6LPGaYXlZWq',
];
$wxa->program()->add($program);
/**
* 删除地点 Api: $wxa->program()->delete()
* @param string $poiId 附近地点 ID
*/
function delete(string $poiId)
/**
* 查看地点列表 Api: $wxa->program()->getList()
* @param int $page 起始页id(从1开始计数)
* @param int $pageRows 每页展示个数(最多1000个)
*/
function getList(int $page = 1 ,int $pageRows)
/**
* 展示/取消展示附近小程序 Api: $wxa->program()->setShowStatus()
* @param string $poiId 附近地点 ID
* @param int $status 是否展示 0: 不展示,1:展示
*/
function setShowStatus(string $poiId ,int $status)