|
@@ -367,6 +367,125 @@ class Wechat
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
+ * 获取自定义菜单的扫码推事件信息
|
|
|
+ *
|
|
|
+ * 事件类型为以下两种时则调用此方法有效
|
|
|
+ * Event 事件类型,scancode_push
|
|
|
+ * Event 事件类型,scancode_waitmsg
|
|
|
+ *
|
|
|
+ * @return: array | false
|
|
|
+ * array (
|
|
|
+ * 'ScanType'=>'qrcode',
|
|
|
+ * 'ScanResult'=>'123123'
|
|
|
+ * )
|
|
|
+ */
|
|
|
+ public function getRevScanInfo(){
|
|
|
+ if (isset($this->_receive['ScanCodeInfo'])){
|
|
|
+ if (!is_array($this->_receive['SendPicsInfo'])) {
|
|
|
+ $array=(array)$this->_receive['ScanCodeInfo'];
|
|
|
+ $this->_receive['ScanCodeInfo']=$array;
|
|
|
+ }else {
|
|
|
+ $array=$this->_receive['ScanCodeInfo'];
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (isset($array) && count($array) > 0) {
|
|
|
+ return $array;
|
|
|
+ } else {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取自定义菜单的图片发送事件信息
|
|
|
+ *
|
|
|
+ * 事件类型为以下三种时则调用此方法有效
|
|
|
+ * Event 事件类型,pic_sysphoto 弹出系统拍照发图的事件推送
|
|
|
+ * Event 事件类型,pic_photo_or_album 弹出拍照或者相册发图的事件推送
|
|
|
+ * Event 事件类型,pic_weixin 弹出微信相册发图器的事件推送
|
|
|
+ *
|
|
|
+ * @return: array | false
|
|
|
+ * array (
|
|
|
+ * 'Count' => '2',
|
|
|
+ * 'PicList' =>
|
|
|
+ * array (
|
|
|
+ * 'item' =>
|
|
|
+ * array (
|
|
|
+ * 0 =>
|
|
|
+ * array (
|
|
|
+ * 'PicMd5Sum' => 'aaae42617cf2a14342d96005af53624c',
|
|
|
+ * ),
|
|
|
+ * 1 =>
|
|
|
+ * array (
|
|
|
+ * 'PicMd5Sum' => '149bd39e296860a2adc2f1bb81616ff8',
|
|
|
+ * ),
|
|
|
+ * ),
|
|
|
+ * ),
|
|
|
+ * )
|
|
|
+ *
|
|
|
+ */
|
|
|
+ public function getRevSendPicsInfo(){
|
|
|
+ if (isset($this->_receive['SendPicsInfo'])){
|
|
|
+ if (!is_array($this->_receive['SendPicsInfo'])) {
|
|
|
+ $array=(array)$this->_receive['SendPicsInfo'];
|
|
|
+ if (isset($array['PicList'])){
|
|
|
+ $array['PicList']=(array)$array['PicList'];
|
|
|
+ $item=$array['PicList']['item'];
|
|
|
+ $array['PicList']['item']=array();
|
|
|
+ foreach ( $item as $key => $value ){
|
|
|
+ $array['PicList']['item'][$key]=(array)$value;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $this->_receive['SendPicsInfo']=$array;
|
|
|
+ } else {
|
|
|
+ $array=$this->_receive['SendPicsInfo'];
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (isset($array) && count($array) > 0) {
|
|
|
+ return $array;
|
|
|
+ } else {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取自定义菜单的地理位置选择器事件推送
|
|
|
+ *
|
|
|
+ * 事件类型为以下时则可以调用此方法有效
|
|
|
+ * Event 事件类型,location_select 弹出系统拍照发图的事件推送
|
|
|
+ *
|
|
|
+ * @return: array | false
|
|
|
+ * array (
|
|
|
+ * 'Location_X' => '33.731655000061',
|
|
|
+ * 'Location_Y' => '113.29955200008047',
|
|
|
+ * 'Scale' => '16',
|
|
|
+ * 'Label' => '某某市某某区某某路',
|
|
|
+ * 'Poiname' => '',
|
|
|
+ * )
|
|
|
+ *
|
|
|
+ */
|
|
|
+ public function getRevSendGeoInfo(){
|
|
|
+ if (isset($this->_receive['SendLocationInfo'])){
|
|
|
+ if (!is_array($this->_receive['SendLocationInfo'])) {
|
|
|
+ $array=(array)$this->_receive['SendLocationInfo'];
|
|
|
+ if (empty($array['Poiname'])) {
|
|
|
+ $array['Poiname']="";
|
|
|
+ }
|
|
|
+ if (empty($array['Label'])) {
|
|
|
+ $array['Label']="";
|
|
|
+ }
|
|
|
+ $this->_receive['SendLocationInfo']=$array;
|
|
|
+ } else {
|
|
|
+ $array=$this->_receive['SendLocationInfo'];
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (isset($array) && count($array) > 0) {
|
|
|
+ return $array;
|
|
|
+ } else {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
* 获取接收语音推送
|
|
|
*/
|
|
|
public function getRevVoice(){
|
|
@@ -1360,6 +1479,32 @@ class Wechat
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
+ * 生成原生支付url
|
|
|
+ * @param number $productid 商品编号,最长为32字节
|
|
|
+ * @return string
|
|
|
+ */
|
|
|
+ public function createNativeUrl($productid){
|
|
|
+ $nativeObj["appid"] = $this->appid;
|
|
|
+ $nativeObj["appkey"] = $this->paysignkey;
|
|
|
+ $nativeObj["productid"] = urlencode($productid);
|
|
|
+ $nativeObj["timestamp"] = time();
|
|
|
+ $nativeObj["noncestr"] = $this->generateNonceStr();
|
|
|
+ $nativeObj["sign"] = $this->getSignature($nativeObj);
|
|
|
+ unset($nativeObj["appkey"]);
|
|
|
+ $bizString = "";
|
|
|
+ foreach($nativeObj as $key => $value)
|
|
|
+ {
|
|
|
+ if(strlen($bizString) == 0)
|
|
|
+ $bizString .= $key . "=" . $value;
|
|
|
+ else
|
|
|
+ $bizString .= "&" . $key . "=" . $value;
|
|
|
+ }
|
|
|
+ return "weixin://wxpay/bizpayurl?".$bizString;
|
|
|
+ //weixin://wxpay/bizpayurl?sign=XXXXX&appid=XXXXXX&productid=XXXXXX×tamp=XXXXXX&noncestr=XXXXXX
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
* 生成订单package字符串
|
|
|
* @param string $out_trade_no 必填,商户系统内部的订单号,32个字符内,确保在商户系统唯一
|
|
|
* @param string $body 必填,商品描述,128 字节以下
|