可以通过账号迁移的方式,个人迁移到企业公众号。 账号迁移的条件 1、原账号A必须是验证过主体信息的公众号或服务号:小额打款验证或法定代表人验证或微信认证成功(包括资质审核成功);个人类注册成功。 2、目标账号B必须是验证过主体信息【小额打款验证或法定代表人验证或微信认证成功(包括资质审核成功)】的组织类公众号或服务号。 3、支持境外主体账号发起迁移至中国大陆地区主体账号,或发起迁移至境外同一国家或地区主体账号。暂不支持境内主体账号迁移至境外主体账号,暂不支持境外主体账号发起迁移至境外不同国家或地区主体账号。 4、暂不支持公众号(即原订阅号)迁移至服务号。 5、目标账号主体不支持为个人类型。 6、迁移内容选择全部关注用户时,目标账号的关注用户数必须不超过1000,否则不支持迁移。 7、目标主体需为有效在营主体。原主体若为境外注销主体,暂不支持迁移。 温馨提示:账号迁移目前暂不支持境内主体账号迁移至境外主体账号,暂不支持境外主体账号迁移至境外不同国家或地区主体账号。迁移整个流程均会检测双方账号状态,若账号迁移过程中存在违规、功能被封禁的情况,则不支持申请、确认、完成迁移。 参考指引:https://kf.qq.com/faq/170112nyQ7BZ170112vIN7RZ.html
开发小程序,是否需个人公众号内容转到企业公众号?我们公司原本是开了个人公众号,公众号名称是“谢谢设计”,微信号是gh_d85eac8ffd4c,属于订阅号,累积了非常多的项目介绍内容。现在公司想开发小程序,需要在小程序内链接到公众号推文的内页内容。请问是否能把个人公众号的文章内容和关注粉丝一键全部迁移过去企业公众号,企业公众号的订阅号和服务号对于小程序开发什么区别?是否能实现小程序内链接到公众号推文的内页?整体的流程和步骤要怎么操作?
10-27登录小程序后台,查看备案处的状态是什么,如果是管局审核中,耐心等待管局审核就行。 如果没有任何状态,看下站内信是否有驳回信息。
我的小程序审核通过初审后, 一直没收到管局的短信?我的小程序在22号的时候已经通过了初审, 后来一直没有收不到管局的短信, 也无法联系到小程序的备案客服, 小程序后台一直提示小程序没有备案, 请问为什么,或者告知我一个备案相关的咨询电话.
10-27可以,B公司开通后,绑定A公司的小程序就可以。具体结果以审核为准
商户?小程序认证是a公司,那么我用b公司的公户开通支付功能可以嘛
10-26必须一致
小程序备案?小程序主体和小程序备案的公司可以不一致吗
10-26有商标直接注册小程序使用改名字,提交商标证书,如果审核不过,工作日9:00~11:30,14:30~17:00联系注册客服咨询:https://mp.weixin.qq.com/webpoc/customerService?type=22&lang=zh_CN
小程序名字被别人占用且违规被封,我如何申请释放该名称?已知对方小程序违规,(永久封禁),但是该小程序名称未释放; 投诉侵权也未通过审核,本人持有该商标3年,请问如何处理并释放该名称? gh_289a9f8d04b6
10-25独立注册的小程序都是单独认证的,和你有没有已认证的小程序没有关系
重新注册小程序同样的企业主体认证为啥还要收认证费?已经有一个企业微信小程序认证过了,重新注册小程序同样的企业主体认证为啥还要收认证费
10-25管理员登录https://mp.weixin.qq.com公众平台,选择备案提醒的小程序,管理员可以扫码进入的。 点击左下角LOGO,账号管理,设置,基本设置,基础资料,下边有备案信息。 如果不想重新备案,就把小程序名称改成,和备案详情里的小程序名称一致。 如果确认要用备案中的小程序名称,就发起重新备案。
小程序备案名称信息与小程序名称信息不一致在哪里修改?管理者收到公众号助手变更备案提醒,但查询公众号设置无此小程序,人工客服联系不上,有朋友知道在哪里查询,怎样变更的吗
10-24首先线上运行的小程序,不支持下载源码,也没有相关接口; 如果你本地的有问题,建议以后用源码管理:SourceTree、GitHub Desktop
怎么把线上的代码同步到本地?1.首先我请问有没有可能被入侵修改我本地代码,我的项目放了大半年没动了,今天打开修改点东西发现几个报错,详查下发现有几页代码整个被篡改了,js改成了我不认识的代码,代码我放下面了 2.然后我想问有没有办法把线上版的代码同步到本地,我看了拉取也没有分支可以选,官网也没有下载链接 $axure.internal(function($ax) { var _move = {}; $ax.move = _move; var widgetMoveInfo = {}; var _getMoveInfo = $ax.move.RegisterMoveInfo = function (id, x, y, to, options, jobj) { var fixedInfo = jobj ? {} : $ax.dynamicPanelManager.getFixedInfo(id); var widget = $jobj(id); var query = $ax('#' + id); var isLayer = $ax.getTypeFromElementId(id) == $ax.constants.LAYER_TYPE; var rootLayer = _move.getRootLayer(id); if(rootLayer) { $ax.visibility.pushContainer(rootLayer, false); if(isLayer) widget = $ax.visibility.applyWidgetContainer(id, true); } if (!jobj) jobj = widget; var horzProp = 'left'; var vertProp = 'top'; var horzX = to ? x - query.locRelativeIgnoreLayer(false) : x; var vertY = to ? y - query.locRelativeIgnoreLayer(true) : y; if (fixedInfo.horizontal == 'right') { horzProp = 'right'; horzX = to ? $(window).width() - x - Number(jobj.css('right').replace('px', '')) - query.width() : -x; } else if(fixedInfo.horizontal == 'center') { horzProp = 'margin-left'; if (to) horzX = x - $(window).width() / 2; } if (fixedInfo.vertical == 'bottom') { vertProp = 'bottom'; vertY = to ? $(window).height() - y - Number(jobj.css('bottom').replace('px', '')) - query.height() : -y; } else if (fixedInfo.vertical == 'middle') { vertProp = 'margin-top'; if (to) vertY = y - $(window).height() / 2; } //todo currently this always save the info, which is not needed for compound vector children and maybe some other cases //let's optimize it later, only register if registerid is valid.. widgetMoveInfo[id] = { x: horzX, y: vertY, options: options }; return { horzX: horzX, vertY: vertY, horzProp: horzProp, vertProp: vertProp, rootLayer: rootLayer, jobj: jobj }; }; $ax.move.GetWidgetMoveInfo = function() { return $.extend({}, widgetMoveInfo); }; _move.getRootLayer = function (id) { var isLayer = $ax.getTypeFromElementId(id) == $ax.constants.LAYER_TYPE; var rootLayer = isLayer ? id : ''; var parentIds = $ax('#' + id).getParents(true, '*')[0]; for(var i = 0; i < parentIds.length; i++) { var parentId = parentIds[i]; // Keep climbing up layers until you hit a non-layer. At that point you have your root layer if($ax.public.fn.IsLayer($ax.getTypeFromElementId(parentId))) rootLayer = parentId; else break; } return rootLayer; }; $ax.move.MoveWidget = function (id, x, y, options, to, animationCompleteCallback, shouldFire, jobj, moveInfo) { $ax.drag.LogMovedWidgetForDrag(id, options.dragInfo); if(!moveInfo) moveInfo = _getMoveInfo(id, x, y, to, options, jobj); jobj = moveInfo.jobj; _moveElement(id, options, animationCompleteCallback, shouldFire, jobj, moveInfo); $ax.event.raiseSyntheticEvent(id, "onMove"); var object = $obj(id); if(object && $ax.public.fn.IsLayer(object.type)) { var childrenIds = $ax.public.fn.getLayerChildrenDeep(id, true); for(var i = 0; i < childrenIds.length; i++) $ax.event.raiseSyntheticEvent(childrenIds[i], 'onMove'); } }; var _moveElement = function (id, options, animationCompleteCallback, shouldFire, jobj, moveInfo){ var cssStyles = {}; if(!$ax.dynamicPanelManager.isPercentWidthPanel($obj(id))) cssStyles[moveInfo.horzProp] = '+=' + moveInfo.horzX; cssStyles[moveInfo.vertProp] = '+=' + moveInfo.vertY; // I don't think root layer is necessary anymore after changes to layer container structure. // Wait to try removing it until more stable. var rootLayer = moveInfo.rootLayer; var query = $addAll(jobj, id); if(options.easing == 'none') { query.animate(cssStyles, { duration: 0, queue: false }); if(animationCompleteCallback) animationCompleteCallback(); if(rootLayer) $ax.visibility.popContainer(rootLayer, false); //if this widget is inside a layer, we should just remove the layer from the queue if(shouldFire) $ax.action.fireAnimationFromQueue(id, $ax.action.queueTypes.move); } else { var completeCount = query.length; query.animate(cssStyles, { duration: options.duration, easing: options.easing, queue: false, complete: function () { if (animationCompleteCallback) animationCompleteCallback(); completeCount--; if(completeCount == 0 && rootLayer) $ax.visibility.popContainer(rootLayer, false); if(shouldFire) $ax.action.fireAnimationFromQueue(id, $ax.action.queueTypes.move); }}); } // //moveinfo is used for moving 'with this' // var moveInfo = new Object(); // moveInfo.x = horzX; // moveInfo.y = vertY; // moveInfo.options = options; // widgetMoveInfo[id] = moveInfo; }; _move.nopMove = function(id, options) { var moveInfo = new Object(); moveInfo.x = 0; moveInfo.y = 0; moveInfo.options = {}; moveInfo.options.easing = 'none'; moveInfo.options.duration = 0; widgetMoveInfo[id] = moveInfo; // Layer move using container now. var obj = $obj(id); if($ax.public.fn.IsLayer(obj.type)) if(options.onComplete) options.onComplete(); $ax.event.raiseSyntheticEvent(id, "onMove"); }; //rotationDegree: total degree to rotate //centerPoint: the center of the circular path var _noRotateOnlyMove = function (id, moveDelta, rotatableMove, fireAnimationQueue, easing, duration, completionCallback) { moveDelta.x += rotatableMove.x; moveDelta.y += rotatableMove.y; if (moveDelta.x == 0 && moveDelta.y == 0) { if(fireAnimationQueue) { $ax.action.fireAnimationFromQueue(id, $ax.action.queueTypes.rotate); $ax.action.fireAnimationFromQueue(id, $ax.action.queueTypes.move); } } else { $jobj(id).animate({ top: '+=' + moveDelta.y, left: '+=' + moveDelta.x }, { duration: duration, easing: easing, queue: false, complete: function () { if(fireAnimationQueue) { $ax.action.fireAnimationFromQueue(id, $ax.action.queueTypes.move); $ax.action.fireAnimationFromQueue(id, $ax.action.queueTypes.rotate); } if (completionCallback) completionCallback(); } }); } } _move.circularMove = function (id, degreeDelta, centerPoint, moveDelta, rotatableMove, resizeOffset, options, fireAnimationQueue, completionCallback) { var elem = $jobj(id); var moveInfo = $ax.move.RegisterMoveInfo(id, moveDelta.x, moveDelta.y, false, options); // If not rotating, still need to check moveDelta and may need to handle that. if (degreeDelta === 0) { _noRotateOnlyMove(id, moveDelta, rotatableMove, fireAnimationQueue, options.easing, options.duration, completionCallback); return; } var stepFunc = function(newDegree) { var deg = newDegree - rotation.degree; var widgetCenter = $ax.public.fn.getWidgetBoundingRect(id).centerPoint; //console.log("widget center of " + id + " x " + widgetCenter.x + " y " + widgetCenter.y); var widgetNewCenter = $axure.fn.getPointAfterRotate(deg, widgetCenter, centerPoint); // Start by getting the move not related to rotation, and make sure to update center point to move with it. var ratio = deg / degreeDelta; var xdelta = (moveDelta.x + rotatableMove.x) * ratio; var ydelta = (moveDelta.y + rotatableMove.y) * ratio; if(resizeOffset) { var resizeShift = {}; resizeShift.x = resizeOffset.x * ratio; resizeShift.y = resizeOffset.y * ratio; $axure.fn.getPointAfterRotate(rotation.degree, resizeShift, { x: 0, y: 0 }); xdelta += resizeShift.x; ydelta += resizeShift.y; } centerPoint.x += xdelta; centerPoint.y += ydelta; // Now for the move that is rotatable, it must be rotated rotatableMove = $axure.fn.getPointAfterRotate(deg, rotatableMove, { x: 0, y: 0 }); // Now add in circular move to the mix. xdelta += widgetNewCenter.x - widgetCenter.x; ydelta += widgetNewCenter.y - widgetCenter.y; if(xdelta < 0) elem.css('left', '-=' + -xdelta); else if(xdelta > 0) elem.css('left', '+=' + xdelta); if(ydelta < 0) elem.css('top', '-=' + -ydelta); else if(ydelta > 0) elem.css('top', '+=' + ydelta); }; var onComplete = function() { if(fireAnimationQueue) $ax.action.fireAnimationFromQueue(id, $ax.action.queueTypes.move); if(completionCallback) completionCallback(); if(moveInfo.rootLayer) $ax.visibility.popContainer(moveInfo.rootLayer, false); var isPercentWidthPanel = $ax.dynamicPanelManager.isPercentWidthPanel($obj(id)); if(isPercentWidthPanel) { $ax.dynamicPanelManager.updatePanelPercentWidth(id); $ax.dynamicPanelManager.updatePanelContentPercentWidth(id); } if(elem.css('position') == 'fixed') { if(!isPercentWidthPanel) elem.css('left', ''); elem.css('top', ''); } }; var rotation = { degree: 0 }; if(!options.easing || options.easing === 'none' || options.duration <= 0) { stepFunc(degreeDelta); onComplete(); } else { $(rotation).animate({ degree: degreeDelta }, { duration: options.duration, easing: options.easing, queue: false, step: stepFunc, complete: onComplete }); } }; //rotate a widget by degree, center is 50% 50% _move.rotate = function (id, degree, easing, duration, to, shouldFire, completionCallback) { var currentDegree = _getRotationDegree(id); if(to) degree = degree - currentDegree; if(degree === 0) { if (shouldFire) $ax.action.fireAnimationFromQueue(id, $ax.action.queueTypes.rotate); return; } var query = $jobj(id).add($jobj(id + '_ann')).add($jobj(id + '_ref')); var stepFunc = function(now) { var degreeDelta = now - rotation.degree; var newDegree = currentDegree + degreeDelta; query.css($ax.public.fn.setTransformHowever("rotate(" + newDegree + "deg)")); currentDegree = newDegree; }; var onComplete = function() { if(shouldFire) { $ax.action.fireAnimationFromQueue($ax.public.fn.compoundIdFromComponent(id), $ax.action.queueTypes.rotate); } if(completionCallback) completionCallback(); }; var rotation = { degree: 0 }; //if no animation, setting duration to 1, to prevent RangeError in rotation loops without animation if(!easing || easing === 'none' || duration <= 0) { stepFunc(degree); onComplete(); } else { $(rotation).animate({ degree: degree }, { duration: duration, easing: easing, queue: false, step: stepFunc, complete: onComplete }); } }; _move.compoundRotateAround = function (id, degreeDelta, centerPoint, moveDelta, rotatableMove, resizeOffset, easing, duration, fireAnimationQueue, completionCallback) { if (degreeDelta === 0) { _noRotateOnlyMove($ax.public.fn.compoundIdFromComponent(id), moveDelta, rotatableMove, fireAnimationQueue, easing, duration, completionCallback, $ax.action.queueTypes.rotate); return; } var elem = $jobj(id); var rotation = { degree: 0 }; if (!easing || easing === 'none' || duration <= 0) { duration = 1; easing = 'linear'; //it doesn't matter anymore here... } var originalWidth = Number(elem.css('width').replace('px', '')); var originalHeight = Number(elem.css('height').replace('px', '')); var originalLeft = Number(elem.css('left').replace('px', '')); var originalTop = Number(elem.css('top').replace('px', '')); $(rotation).animate({ degree: degreeDelta }, { duration: duration, easing: easing, queue: false, step: function (newDegree) { var transform = $ax.public.fn.transformFromElement(elem[0]); var originalCenter = { x: originalLeft + 0.5 * originalWidth, y: originalTop + 0.5 * originalHeight}; var componentCenter = { x: originalCenter.x + transform[4], y: originalCenter.y + transform[5] }; var deg = newDegree - rotation.degree; var ratio = deg / degreeDelta; var xdelta = (moveDelta.x + rotatableMove.x) * ratio; var ydelta = (moveDelta.y + rotatableMove.y) * ratio; if (resizeOffset) { var resizeShift = {}; resizeShift.x = resizeOffset.x * ratio; resizeShift.y = resizeOffset.y * ratio; $axure.fn.getPointAfterRotate(rotation.degree, resizeShift, { x: 0, y: 0 }); xdelta += resizeShift.x; ydelta += resizeShift.y; } var rotationMatrix = $ax.public.fn.rotationMatrix(deg); var compositionTransform = $ax.public.fn.matrixMultiplyMatrix(rotationMatrix, { m11: transform[0], m21: transform[1], m12: transform[2], m22: transform[3] }); //console.log("widget center of " + id + " x " + widgetCenter.x + " y " + widgetCenter.y); var widgetNewCenter = $axure.fn.getPointAfterRotate(deg, componentCenter, centerPoint); var newMatrix = $ax.public.fn.matrixString(compositionTransform.m11, compositionTransform.m21, compositionTransform.m12, compositionTransform.m22, widgetNewCenter.x - originalCenter.x + xdelta, widgetNewCenter.y - originalCenter.y + ydelta); elem.css($ax.public.fn.setTransformHowever(newMatrix)); }, complete: function () { if (fireAnimationQueue) { $ax.action.fireAnimationFromQueue(elem.parent()[0].id, $ax.action.queueTypes.rotate); } if(completionCallback) completionCallback(); } }); }; var _getRotationDegree = _move.getRotationDegree = function(elementId) { if($ax.public.fn.IsLayer($obj(elementId).type)) { return $jobj(elementId).data('layerDegree'); } var element = document.getElementById(elementId); if(element == null) return NaN; //var transformString = element.style.transform || // element.style.OTransform || // element.style.msTransform || // element.style.MozTransform || // element.style.webkitTransform; var transformString = element.style['transform'] || element.style['-o-transform'] || element.style['-ms-transform'] || element.style['-moz-transform'] || element.style['-webkit-transform']; if(transformString) { var rotateRegex = /rotate\(([-?0-9]+)deg\)/; var degreeMatch = rotateRegex.exec(transformString); if(degreeMatch && degreeMatch[1]) return parseFloat(degreeMatch[1]); } if(window.getComputedStyle) { var st = window.getComputedStyle(element, null); } else { console.log('rotation is not supported for ie 8 and below in this version of axure rp'); return 0; } var tr = st.getPropertyValue("transform") || st.getPropertyValue("-o-transform") || st.getPropertyValue("-ms-transform") || st.getPropertyValue("-moz-transform") || st.getPropertyValue("-webkit-transform"); if(!tr || tr === 'none') return 0; var values = tr.split('(')[1]; values = values.split(')')[0], values = values.split(','); var a = values[0]; var b = values[1]; var radians = Math.atan2(b, a); if(radians < 0) { radians += (2 * Math.PI); } var angle = Math.round(radians * (180 / Math.PI)); return angle; }; // var generateFilter = function(deg) { // var rot, cos, sin, matrix; // // rot=deg>=0 ? Math.PI*deg/180 : Math.PI*(360+deg)/180; // cos=Math.cos(rot); // sin=Math.sin(rot); // matrix='M11='+cos+',M12='+(-sin)+',M21='+sin+',M22='+cos+',SizingMethod="auto expand"'; // return 'progid:DXImageTransform.Microsoft.Matrix('+matrix+')'; // } });
10-24不行,必须提供主体一致的资质,授权书没有用的。 如果你要做互联网医院,就需要医院为主体。
请问我选择互联网医院类目,然后互联网医院的证书的主体和微信认证的主体不一致,我们有授权证明,可以吗?请问比如我选择互联网医院类目,然后互联网医院的证书的主体和微信认证的主体不一致可以吗,我们有授权证明,对应的互联网医院可以给我们进行授权
10-24认证后,有2次修改的机会。
注册小程序选择了“微信认证方式”注册,发现只能认证后才能设置小程序名,后面设置小程序名还需要认证吗?注册小程序选择了“微信认证方式”注册,发现只能认证后才能设置小程序名,后面设置小程序名还需要认证吗? [图片] [图片]
10-23