- 微信服务商给特约商户绑定小程序,绑定成功后,小程序的商户管理里依然找不到该商户?
背景: 在开发一款小程序,目的是给多个商家提供支付能力,但小程序是属于服务商的,即与服务商同主体 1 我已经创建了微信服务商("开发者""非"外包收单机构") [图片] 2 完成了特约商户进件 [图片] 3 完成了特约商户绑定小程序的appid与服务商绑定小程序的appid [图片] [图片] 问题: 小程序中的微信支付里的商户管理里,依然没有该特约商户的信息,导致我没办法在微信开发者工具里配置商户号,也就没办法调通支付接口 [图片] [图片] 想问下是啥原因,文档已经查吐了,还是没找到为啥,是我漏了哪里的流程吗???比较急,感谢
03-09 - 已关联商户号 服务商模式 下没用商户号
已关联商户号下面有 商户, 但是服务商模式下面没有商户。 这个需要怎么设置, 还是说对于商户号有指定的类型才可以 [图片]
07-12 - 商户号是服务商下的特约商户,在商户号已关联公众ID,在公众号里没有显示关联商户号,且显示支付未申请?
商户号是服务商下的特约商户,在商户号已关联公众ID,在公众号里没有显示关联商户号,且显示支付未申请?[图片][图片][图片]
09-09 - 暂不支持该类型商户号绑定本AppID,请点击“拒绝”结束该流程?
[图片]
01-30 - 服务商模式小程序支付提示签名验证失败是什么原因?
微信支付密钥是apiv2密钥,我不确定统一下单的参数有没有问题,因为是按客户提供的参数直接使用的,总之是可以正常下单并且返回prepay_id[图片] 然后前端是用uniapp写的,wx.requestPayment唤起支付的时候,appId用的是服务商的appid,nonceStr用的是统一下单接口返回的,package也加了prepay_id=的前缀,密钥直接是后端下单接口返回的,两次加密都是用的MD5,用微信的签名工具也试过,和我自己加密的结果一致,但是还是提示“支付验签失败”,前端项目的代码明文写出来就是这样,有没有大佬指点一下,前端调支付的时候验签验的是啥?好心人救救孩子吧,卡了一天了,项目很急:( [图片]
08-16 - 服务商模式下为子商户绑定一个小程序,在发起支付的时候提示:支付验证签名失败,怎么解决?
[图片] appid 传递wx85d65582b2fdae8a mch_id传递1672321486 sub_mch_id 传递1673574601 sub_appid 传递wx06801f2b58b70714 sub_openid传递oWOXI6-d5CFF_qMnNdJLREIN_mGc nonceStr: "6618fdc2f3b3a" package: "prepay_id=wx121724188958905035e1789b0168000001" paySign: "469C551A031736950244985546DB51F6" signType: "MD5" timeStamp: "1712913858"
04-12 - 小程序支付使用APIv2的JSAPI支付提示“支付验证签名失败”?
[图片] 手机小程序端提示签名失败是什么问题?商户号跟小程序都是新申请的,是不是新的账号不支持APIv2了? 代码应该没问题,其他小程序对应的支付都能测通过
06-20 - 小程序 支付验证签名失败
小程序内嵌套H5 ,H5 调用小程序页面发起支付 一直提示支付验证签名失败 第一次签名 第二次签名 都做了 ,key也重置了 还是有问题
2020-10-18 - 微信小店绑定的分享员数量到底是1万还是2万个?
通过https://api.weixin.qq.com/channels/ec/sharer/bind 邀请分享员,回调:"errcode":10070002,"errmsg":"绑定的分享员数量达到上限(10000个)",之前是允许2万个,现在是限制1万个吗?另外,文档上,写着只允许10个?请官方给一下明确的数量限制,谢谢![图片]
09-10 - 该账号的相关小程序能否不显示某一个小程序?
该账号的相关小程序能否不显示某一个小程序,例如下面的平安微保险不显示出来,平安微保险已经是设置不被搜索的,谢谢 [图片][图片]
03-05 - 小程序退款时提示“请求频率过高,请一分钟后再试“?
小程序售后单操作退款的时候,提示“请求频率过高,请一分钟后再试“,操作频率是怎么计算的?频率有没有更改的可能?
2022-10-09 - 视频号小店分享员人数10000个?
视频号小店分享员人数10000满了,可以申请开房更多人数吗
2023-10-17 - 微信小程序-利用webview嵌入H5直播, 必须要直播资质吗?
1.微信小程序-利用webview嵌入H5直播, 我们不使用小程序的直播控件, 这种必须要直播资质吗? 2.如果没有直播资质, 会有什么影响? 流程是: 老师在我们自己的直播后台进行直播---推流到微信小程序里的H5页面---用户在小程序里的H5页面观看直播, 这种小程序也必须要直播资质么? 如果没有直播资质, 会有什么影响呢, 是不能进行开发还是不能审核通过呢?
2021-12-15 - 小程序与公众号下发统一消息接口调整通知
各位开发者: 下发统一消息 接口曾支持小程序与公众号统一的模板消息下发。由于小程序模板消息能力已于 2020 年 1 月下线(详见 小程序模板消息能力调整通知),当前下发统一消息能力仅限于公众号范畴。为了优化开发体验,避免多个同一功能接口对开发者造成困扰,微信团队将对下发统一消息接口进行如下调整: 自 2023 年 9 月 20 日起(以下简称 “生效期”),下发统一消息接口将被收回。自生效期起,调用下发统一消息接口将会显示 “45109” 错误码,无法下发小程序模板消息与公众号模板消息。如业务需下发公众号模板消息,请使用 公众号模板消息能力 满足能力需求,具体适配操作可参考下方适配指引。 注意点: 1、下发统一消息接口与公众号模板消息接口的差异对比如下: [图片] 2、本次接口回收仅影响使用旧的下发统一消息接口的方式下发模板消息的情况,不代表公众号模板消息能力被收回,使用 公众号模板消息接口 下发公众号模板消息的能力不受影响。例如小程序 A、B 当前正使用不同接口下发公众号模板消息: [图片] 3、小程序订阅消息能力不受本次接口回收的影响。 4、请已使用下发统一消息接口的开发者尽快适配。若 2023 年 9 月上旬仍未适配,官方团队将分阶段通过站内信、微信开发者工具通知等方式同步告知指引修改。 适配指引: [图片] 检查当前调用下发统一消息接口的用户身份信息: 1、若当前下发模板消息的用户身份信息为公众号 openid,按照 公众号模板消息接口文档 适配 2、若当前下发模板消息的用户身份信息为小程序 openid,检查 微信开放平台 是否将小程序与公众号绑定在同一个主体 a) 若小程序与公众号绑定在同一个主体下,按照 公众号模板消息接口文档 适配 b) 若小程序与公众号没有绑定在同一个主体下,先完成绑定工作,再按照 公众号模板消息接口文档 适配 微信团队 2023年8月22日
2023-09-18 - 视频号小店评分什么时候出我已经卖好多单了,用户也不主动确认收货
视频号小店评分什么时候可以显示出来,我已经卖好多单了,用户也不主动确认收货视频号小店评分什么时候出我已经卖好多单了,用户也不主动确认收货 感觉小店的审核人员有点。。。。申请的企业自己的商标还要授权??????????????????????????????????
2023-05-04 - iOS 从app分享小程序至微信 提示"由于不支持的分享类型"?
[图片] 测试微信版本号8.0, 7.0.21 安卓测试分享没有问题 原来在线上环境测试的iOS也没有问题 请问如何解决?
2021-01-25 - 【委托代扣API】常见问题
文档地址:扣费服务 Q1:商户调用【申请扣款】接口返回"err_code:RULELIMIT,err_code_des:交易金额或次数超出限制,请检查后再试"是什么原因? A1:商户扣款时超出了模板id配置的最大扣款金额或次数,如有需要可以联系微信运营申请提升额度或次数。 Q2:申请扣款周期说明 A2:请参考以下几点: 自动续费周期一般是以月、季度为周期,具体扣款发起时间不受模版内容的周期影响;委托代扣额度初始额度:单笔500、单日2500;授权扣款和免密支付,在额度限制内可以每天扣款5次(同一个用户在一个签约协议下;扣款失败不计算次数);自动续费模版需要按模版内容设定的周期扣款,且同一个用户在一个签约协议下每天仅可以扣款一次,如上线前需多次测试签约扣款,请申请测试模版(模版名称标明为测试,测试模版限额为每次0.1元,每天可扣款100次)。 Q3:签约和解约信息是通过什么路径通知给商户的? A3:签约通知是通过签约接口上传的notify_url参数所填写的地址回调通知的(签约失败不通知)。解约信息是通过创建模版ID时填写的解约通知URL来回调通知的。 Q4:申请扣款接口已经返回成功,为什么还会扣款失败? A4:申请扣款接口返回成功仅代表申请受理成功,不代表最终的扣款结果,扣款结果应以支付结果通知接口通知的结果为准,无论扣款是否成功都会返回扣款结果及原因。 Q5:商户调起微信纯签约报错“参数构造错误”如图,是什么原因? [图片] A5:检查下文档要求的必填参数有没漏传,或者文档中没有的参数有没多传。 Q6:商户调用H5纯签约返回“签约参数签名校验错误”是什么原因? A6:请参考以下几点: 检查下签名是否正确,商户签名使用的key是否正确,并且key用的是api秘钥,不是apiv3秘钥,签名方式和api秘钥设置路径参看文档指引,商户可以用在线工具自行校验,工具地址;检查下商户传的notify_url参数文档是否有要求encode,如文档要求encode,则商户签名时需要使用encode之前原样的notify_url进行签名,encode只需一次即可。检查下文档要求的必填参数有没漏传,或者文档中没有的参数有没多传。 Q7:委托委托代扣模板id停用后会有什么影响? A7:已签约用户可以继续扣费或解约,不能新增签约,停用模板id后无法恢复使用,商户自行评估风险 Q8:公众号纯签约跳转签约页面后用户点击开通自动续费没反应是什么原因? A8:引导用户更新一下微信或清除下微信缓存,这种一般是偶现的,杀死进程重新启动再试试。 Q9:商户使用预扣费通知模式场景下,对于没有发送微信预扣费通知的用户,商户调用申请扣款接口后,微信端会返回什么错误? A9:接口会返回错误码INVALID_REQUEST,商户需要先下发扣费前通知才能发起扣费,若当前签约扣费期已结束,商户如需扣费则需重新发起扣费前通知。 Q10:商户从24小时扣费模式迁移到预扣费通知模式阶段时,发送预扣费通知后,解约后重新签约,可直接进行扣款,不受扣费等待期限制,这样是正常的吗? A10:正常的,用户解约后就是新的协议了,预扣费通知限制的维度是协议,没有发送过预扣费通知的协议,可以走直接扣费模式,发送过预扣费通知的协议,走预扣费通知模式,商户在迁移阶段,只有两种模式可以扣:预扣费通知模式和直接扣费模式,商户完成迁移后需联系微信侧运营确认,微信侧运营则会通知业管同事在系统中操作“迁移完成”,之后商户就只能走预扣费通知模式了。 Q11:预扣费通知中的错误码“RESOURCE_ALREADY_EXISTS”和“INVALID_REQUEST”的错误码描述意思是一样的,“RESOURCE_ALREADY_EXISTS”错误码描述为:已经下发过预扣费通知,请勿重复下发,“INVALID_REQUEST”错误码描述为:已经发送过扣费前通知,需要等本次扣费完成后再发起新,有什么区别吗? A11:错误码“RESOURCE_ALREADY_EXISTS”表示是相同参数,重复发送,错误码“INVALID_REQUEST”表示是发送过,参数不一样。错误码“RESOURCE_ALREADY_EXISTS”可以认为是发送成功。错误码“INVALID_REQUEST”可以认为是发送失败。 Q12:一个微信用户能否与商户多次签约? A12:签约遵循同一个商户号+同一个模版ID+同一个微信号只能签约一次的原则。多次签约可采用多模版ID的方式,同一个商户号下的每个不同模版ID都可以与同一微信用户分别签约一次。 Q13:委托代扣解约回调地址修改后多久生效? A13:实时生效 Q14:商户使用微信支付商户平台发起的解约,收到的解约回调里的协议解约方式是3(商户API解约)这个是正常的吗? A14:正常的,目前微信支付商户平台就是调用商户API解约的。 Q15:商户调起微信纯签约报错“签名参数构造错误”如图,是什么原因? [图片] A15:请参考以下几点: 检查下签名是否正确,商户签名使用的key是否正确,并且key用的是api秘钥,不是apiv3秘钥,签名方式和api秘钥设置路径参看文档指引,商户可以用在线工具自行校验,工具地址;检查下商户传的notify_url参数文档是否有要求encode,如文档要求encode,则商户签名时需要使用encode之前原样的notify_url进行签名,encode只需一次即可。 Q16:支付中签约是否支持传入分账标识实现订单分账功能? A16:暂不支持,支付中签约下单接口不会识别商户分账标识 Q17:单用户在单模板下商户尝试调用申请扣款接口的频率是多少? A17:单用户在单模板下商户尝试调用申请扣款接口一天不能超过默认次数300次(包含succee和fail的返回,succee才表示扣款受理成功,等待扣款中) Q18:app纯签约点击完成后没有返回app而是停留在了微信聊天界面? A18: 商户登录开放平台检查对应app应用是否有跳转权限[图片] 2.按照文档排查下是否正常处理回调,参看文档https://developers.weixin.qq.com/doc/oplatform/Mobile_App/Access_Guide/Android.html(注意:taskAffinity要填你的应用主taskAffinity(其实就是主界面的task,如果没有主动配置的话,默认是应用包名,如果要配置的,要改成跟配置的一样) [图片] 3.商户检查申请模板时的模版名称中是否有空格,如有只能删除模版名称中的空格后重新申请模板 [图片] 4.商户检查用户账户展示名称参数contract_display_account是否有空格,中英文符号,特殊字符串 Q19:app纯签约签约完成后,点击完成按钮,android点击没有反应,iOS点击提示“离开微信”,随后提示"未安装应用"? A19:请参考以下几点: 检查下商户传的appid是不是签约的这个app的appid检查返回的appid对应的app是否有安装检查商户的app是否有在手机注册schema地址 Q20:h5纯签约签约完成后点击完成按钮返回浏览器报错"launchApplication:fail_url need encode"? [图片] A20:原因:商户请求签约的原url,里面参数嵌套了其它url地址,所以导致微信侧回跳的时候,解析错误了。这里面failUrl和redirectUrl虽然做了encode,但是由于微信侧回跳前会做一层decode,所以decode之后的链接是一个非法链接,被拦截了。如果商户需要嵌套url地址,可以做两层encode试试,建议解决方式:剔除参数中嵌套的url。 Q21:Url Schema指的是什么,UA指的是什么? A21: url schenma指的是app页面跳转协议地址UA指的是浏览器的User Agent,会跟随HTTP协议的header传递 Q22:app纯签约接口是否支付多账号签约功能? A22:支持,商户只需在app纯签约中的预签约接口里多传入outerid字段即可,参数值格式必须按照此示例:李*艳(00000000000),否者会报错"<xml><return_code><![CDATA[FAIL]]></return_code><return_msg<![CDATA[PARAMERROR:outerid]]></return_msg></xml>" Q23:多账号签约接口里的contract_outerid和outerid的长度限制分别是多少? A23:contract_outerid32位字符,outerid32位字符 Q24:公众号纯签约商户的短链接可以跳转到签约页面,商户的长链接跳转报502是什么原因? A24:链接超长,目前链接长度限制在1024字节以内 Q25:已签约同个模板id的用户使用支付中签约有已签约的提示吗? A25:支付中签约一直都没有已签约的提示,纯签约会有提示 Q26:使用签约协议号A已签约后再解约,后续还可以使用签约协议号A签约成功吗,对吗? A26:目前是这样的 Q27:商户调用支付中签约生成的订单使用的查询订单和支付回调结果通知是哪个文档? A27:支付中签约生成的订单使用普通支付的查询订单接口(文档地址:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_2)和普通支付的支付结果回调通知接口(文档地址:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_7&index=8) Q28:开通多账号签约功能的模板id,如果同一个微信签约了两个用户,那么模板id扣款次数限制规则是不是应该按两个不同的签约用户分开计算 A28:是的,针对每个签约独立计算 Q29:同个微信号在同个模板下当天有扣款次数限制吗? A29:同个微信号在同个模板下当天最多能扣150次,总共包含商户重试申请扣款失败的次数和申请扣款成功的次数 Q30:商户调用申请扣款接口报错“扣款请求已受理,请勿重复发起” A30:据自动续费规则,一个协议ID,在等待期间(24小时内),只能有一笔扣款 Q31:h5纯签约ios拉起签约后点击左上角返回的是微信,Android拉起签约后点击左上角返回的是拉起的签约页面,这是正常的吗 A31:这是正常的,Android 能返回是因为只拉起WebView界面,结束之后把WebVIew关了,然后就漏出了浏览器,iOS做不到只拉起WebView界面,结束之后只能到聊天页面 Q32:h5纯签约签约完成后点击完成按钮返回的是商户首页(域名),不是发起签约请求的页面 A32: 1.浏览器发起签约场景: 问题根因:referer由于客户端webview内核安全策略变更,需要源页面进行授权后,才能获取完整URL,否则无法在签约完成后,原路跳回商户的H5页面,浏览器由于兼容性问题导致微信侧获取的referer只有域名部分,丢失了path部分,所以返回的是商户域名页 微信支付侧协助寻找了以下解决方案,建议商户试试,如仍有问题需商户自行联系浏览器厂商处理: 商户跳转前的源H5页面,需要在html中做referrer-policy的授权声明: 方法一(推荐): <meta name="referrer" content="no-referrer-when-downgrade">> 方法二: <meta name="referrer" content="unsafe-url"> 安全策略详情可参考:https://developers.google.com/web/updates/2020/07/referrer-policy-new-chrome-default Referrer-Policy声明的用法可参考:https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers/Referrer-Policy 注意: ① 商户需要检查一下html里面是否有多个meta name="Referrer"的声明(比如声明了一个<meta name="Referrer" content="origin" />,会覆盖开头的声明,需要删掉) ② 检查发起签约页面跳转微信时是否有处理过(比如中转页面或着在后台跳转的),必须是商户前端发起的跳转,否则不会生效 ③由于iOS15对referrer policy更加严格,referer只带了host没有带path,但iOS14以及之前版本的referer带了host和path,导致了iOS15以上目前只能返回商户域名页面 2.商户发起签约页面地址中有片段标识符: 片段标识符(URI Fragment,即URL中#号后面的部分)仅用作浏览器端的处理,不会参与到服务端请求中,故签约完成回跳不会带上这部分信息。 Q33:app内嵌h5纯签约无法唤起微信的签约页面是什么原因? A33:建议检查拉起微信的app是否有拒绝打开授权,历史上的case都是用户自己拒绝了唤起授权。 Q34:商户使用申请扣款(pay/pappayapply)下单成功后,再调用关单接口(/pay/closeorder)成功后,之后再使用代扣的查询订单接口(/pay/paporderquery)查不到这笔订单,报错”订单不是委托代扣场景“,目前有什么解决方式吗? A34:商户可以使用基础支付的查询订单接口来确认订单状态。 Q35:商户app内嵌h5发起h5纯签约签约完成后,申请了返回app的权限,返回app时提示“launchApplication:fail”,是什么原因? A35:原因是商户配置的app的Schema有误导致无法正常跳回app,商户可以联系app的开发人员检查下操作系统中是否有注册这个Schema以及配置的appid是否正确。 Q36:商户调起微信纯签约报错“商家系统错误,请联系商家处理”如图,是什么原因? [图片] A36:请参考以下几点: 检查下签名是否正确,商户签名使用的key是否正确,并且key用的是api秘钥,不是apiv3秘钥,签名方式和api秘钥设置路径参看文档指引,商户可以用在线工具自行校验,工具地址;检查下商户传的notify_url参数文档是否有要求encode,如文档要求encode,则商户签名时需要使用encode之前原样的notify_url进行签名,encode只需一次即可。检查下文档要求的必填参数有没漏传,或者文档中没有的参数有没多传。h5纯签约的情况需要特殊申请权限,联系对接的运营咨询检查request_serial(请求序列号)或timestamp(时间戳)是否为int类型,是否小于9位
10-12 - 委托代扣的纯签约模式和支付中签约模式有什么不同?
纯签约模式是: 用户进行签约,签约成功后,商户再使用申请扣款接口进行扣款。支付中签约模式是: 支付后完成代扣协议的签约。更多委托代扣相关问题可查阅:委托代扣接口常见问题Q&A
2021-04-02 - 如何申请微信运营对接的BD运营人员?
我们是商户方,在使用微信支付过程中遇到一些问题 1、如何申请微信运营的BD人员对接一些业务,或申请相关的功能? 2、同属于一个主题的多个微信商户号,如何申请为同品牌商户号? 3、在自设的营销活动页面,是否有开放接口可以实现点击“绑卡”按钮可跳转到微信绑卡页面?
2020-05-27 - 微信委托代扣?
比如我现在有个自动续费的功能,这个月开通了会员,然后到了下个月该续费的时候,然后去调微信申请扣款的接口,还是微信这边主动发起扣款呢?
2020-01-02 - 关于微信支付自动扣款的开发问题
我在查看接口文档和代扣模版的时候,发现没有地方设置扣款的时间周期,请问应该在哪里设置
2021-01-05 - 我们小程序需要做一个按期从微信自动扣款功能,用户在同意自动扣款协议后,每月定期从微信里面扣钱,能吗?
求大佬回复
2021-09-10 - 微信小程序如何开通、开发【微信支付分/免密支付】?
微信小程序如何开通、开发微信支付分/免密支付,是要申请么,在哪申请,是在微信小程序后台申请还是在微信商户号申请,申请需要哪些条件,有链接没。在线急等官方大佬、同行大佬回复。比如下方小程序的功能: [图片][图片][图片]
2021-02-01 - 微信小程序用户授权
背景 微信小程序只要与用户产生交互,都无法逃离用户信息管理,用户信息授权又是用户信息管理的最基础的服务。如想要深入学习用户授权,需要先了解一下 openID 和 UnionID 的区别。 openID 和 UnionID openID: openID 是微信生态下`应用的唯一标识`,开发者可以通过微信小程序(微信公众号)提供的静默授权拿到用户的 openID,这两个 openID 是独立的,无法关联到同一个用户。UnionID:UnionID 是微信生态下`用户的唯一标识`,开发者可以通过 UnionID 对不同应用对用户进行唯一绑定。现在我们只需要记住 openID 是应用的唯一标识,UnionID 是用户的唯一标识就 ok。 用户授权的目标就是获取用户的唯一标识,便于我们的应用更好的管理用户信息,授权分为静默授权和阻断授权。 静默授权 静默授权,顾名思义就是开发者可以在用户无感中的情况下,获取到用户唯一标识(这里是单个应用的),通过这个唯一标识映射到我们系统的 userId,有了 userId,与后端服务的交互全都通了,最简单的用户管理应该哦了。 静默授权的过程是这样的: 调用 wx.login() 获取 临时登录凭证code 调用 auth.code2Session 接口,换取用户唯一标识 openID 调用本地后台服务,将 openID 映射到本地的 userId详情过程可以参考微信官方文档提供的交互图 [猛击查看](https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/login.html) 对于只开发微信小程序这一个应用来说,拿到 openID 已经够用了,应用唯一标识就能很好的区分用户。 在实际应用中,我们会用到微信生态中的微信小程序、微信公众号等等,这个时候想在多个应用中唯一标识同一个用户,就需要用到 UnionID。 UnionID可以通过下面途径获取,摘自官方文档:https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/union-id.html 调用接口 wx.getUserInfo,从解密数据中获取 UnionID。注意本接口需要用户授权,请开发者妥善处理用户拒绝授权后的情况。如果开发者帐号下存在同主体的公众号,并且该用户已经关注了该公众号。开发者可以直接通过 wx.login + code2Session 获取到该用户 UnionID,无须用户再次授权。如果开发者帐号下存在同主体的公众号或移动应用,并且该用户已经授权登录过该公众号或移动应用。开发者也可以直接通过 wx.login + code2Session 获取到该用户 UnionID ,无须用户再次授权。用户在小程序(暂不支持小游戏)中支付完成后,开发者可以直接通过getPaidUnionId接口获取该用户的 UnionID,无需用户授权。注意:本接口仅在用户支付完成后的5分钟内有效,请开发者妥善处理。小程序端调用云函数时,如果开发者帐号下存在同主体的公众号,并且该用户已经关注了该公众号,可在云函数中通过 cloud.getWXContext 获取 UnionID。小程序端调用云函数时,如果开发者帐号下存在同主体的公众号或移动应用,并且该用户已经授权登录过该公众号或移动应用,也可在云函数中通过 cloud.getWXContext 获取 UnionID。阻断授权 阻断授权顾名思义就是需要用户参与才能完成的授权操作,一般是为了获得用户手机号和用户信息。 用户手机号 具体可以参考访问文档提供的API: [猛击查看](https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/login.html) 用户信息 具体可以参考访问文档提供的API: [猛击查看](https://developers.weixin.qq.com/miniprogram/dev/api/open-api/user-info/wx.getUserInfo.html) 真实案例 我们用户体系是这样设计的,userId 和 token 共同决定用户的有效性。 静默授权的设计方案[图片] 手机号授权设计方法[图片] 用户信息授权[图片] 不同的业务场景处理方式会有差异,这个也只是针对当下我们的业务场景,希望对你有所有帮助,也欢迎大家一起交流沟通学习。
2020-03-15 - 判断H5是在小程序webview运行三种方案总结
如何判断H5是在小程序内运行 1)如何判断H5是在小程序内运行一? - 微信开放社区 https://developers.weixin.qq.com/community/develop/article/doc/0000e48ad7cd2087f46bd378953413 2)如何判断H5是在小程序内运行二? - 微信开放社区 https://developers.weixin.qq.com/community/develop/article/doc/0000c4dfdbc7b827097bbbc7551813 3)如何判断H5是在小程序内运行三? - 微信开放社区 https://developers.weixin.qq.com/community/develop/article/doc/000c04af154730270e7b0e1715b413 我在之前整理过如何判断H5运行在小程序webview的三种方案,对于选择综合征的朋友来说,这可要纠结好一会了,那我简单来分析下这几种方案 正如参考文章评论所写的那样 [图片] 第一种方案需要引入jssdk,第三种方案社区不少用户反馈部分手机不会正常work,所以优先推荐第二个方案,第二个方案算是纯天然,无依赖,适合所有场景。 代码实践 其实我在生产代码中也是使用方案二,来判断小程序环境,进而对H5在小程序端进行适配。 参考文章 判断是否在小程序web-view环境? - 微信开放社区 https://developers.weixin.qq.com/community/develop/doc/00022e37c78b802f186750b5751000
2020-12-22 - 小程序登录、用户信息相关接口调整说明
公告更新时间:2021年04月15日考虑到近期开发者对小程序登录、用户信息相关接口调整的相关反馈,为优化开发者调整接口的体验,回收wx.getUserInfo接口可获取用户授权的个人信息能力的截止时间由2021年4月13日调整至2021年4月28日24时。为优化用户的使用体验,平台将进行以下调整: 2021年2月23日起,若小程序已在微信开放平台进行绑定,则通过wx.login接口获取的登录凭证可直接换取unionID2021年4月28日24时后发布的小程序新版本,无法通过wx.getUserInfo与<button open-type="getUserInfo"/>获取用户个人信息(头像、昵称、性别与地区),将直接获取匿名数据(包括userInfo与encryptedData中的用户个人信息),获取加密后的openID与unionID数据的能力不做调整。此前发布的小程序版本不受影响,但如果要进行版本更新则需要进行适配。新增getUserProfile接口(基础库2.10.4版本开始支持),可获取用户头像、昵称、性别及地区信息,开发者每次通过该接口获取用户个人信息均需用户确认。具体接口文档:《getUserProfile接口文档》由于getUserProfile接口从2.10.4版本基础库开始支持(覆盖微信7.0.9以上版本),考虑到开发者在低版本中有获取用户头像昵称的诉求,对于未支持getUserProfile的情况下,开发者可继续使用getUserInfo能力。开发者可参考getUserProfile接口文档中的示例代码进行适配。请使用了wx.getUserInfo接口或<button open-type="getUserInfo"/>的开发者尽快适配。开发者工具1.05.2103022版本开始支持getUserProfile接口调试,开发者可下载该版本进行改造。 小游戏不受本次调整影响。 一、调整背景很多开发者在打开小程序时就通过组件方式唤起getUserInfo弹窗,如果用户点击拒绝,无法使用小程序,这种做法打断了用户正常使用小程序的流程,同时也不利于小程序获取新用户。 二、调整说明通过wx.login接口获取的登录凭证可直接换取unionID 若小程序已在微信开放平台进行绑定,原wx.login接口获取的登录凭证若需换取unionID需满足以下条件: 如果开发者帐号下存在同主体的公众号,并且该用户已经关注了该公众号如果开发者帐号下存在同主体的公众号或移动应用,并且该用户已经授权登录过该公众号或移动应用2月23日后,开发者调用wx.login获取的登录凭证可以直接换取unionID,无需满足以上条件。 回收wx.getUserInfo接口可获取用户个人信息能力 4月28日24时后发布的新版本小程序,开发者调用wx.getUserInfo或<button open-type="getUserInfo"/>将不再弹出弹窗,直接返回匿名的用户个人信息,获取加密后的openID、unionID数据的能力不做调整。 具体变化如下表: [图片] 即wx.getUserInfo接口的返回参数不变,但开发者获取的userInfo为匿名信息。 [图片] 此外,针对scope.userInfo将做如下调整: 若开发者调用wx.authorize接口请求scope.userInfo授权,用户侧不会触发授权弹框,直接返回授权成功若开发者调用wx.getSetting接口请求用户的授权状态,会直接读取到scope.userInfo为true新增getUserProfile接口 若开发者需要获取用户的个人信息(头像、昵称、性别与地区),可以通过wx.getUserProfile接口进行获取,该接口从基础库2.10.4版本开始支持,该接口只返回用户个人信息,不包含用户身份标识符。该接口中desc属性(声明获取用户个人信息后的用途)后续会展示在弹窗中,请开发者谨慎填写。开发者每次通过该接口获取用户个人信息均需用户确认,请开发者妥善保管用户快速填写的头像昵称,避免重复弹窗。 插件用户信息功能页 插件申请获取用户头像昵称与用户身份标识符仍保留功能页的形式,不作调整。用户在用户信息功能页中授权之后,插件就可以直接调用 wx.login 和 wx.getUserInfo 。 三、最佳实践调整后,开发者如需获取用户身份标识符只需要调用wx.login接口即可。 开发者若需要在界面中展示用户的头像昵称信息,可以通过<open-data>组件进行渲染,该组件无需用户确认,可以在界面中直接展示。 在部分场景(如社交类小程序)中,开发者需要在获取用户的头像昵称信息,可调用wx.getUserProfile接口,开发者每次通过该接口均需用户确认,请开发者妥善处理调用接口的时机,避免过度弹出弹窗骚扰用户。 微信团队 2021年4月15日
2021-04-15 - 微信小程序新能力:URL Scheme,可从短信跳转小程序
最近小程序上线了一个超级流量的新入口:URL Scheme。通过小程序页面的URL Scheme,可以在短信、邮件或微信外部的网页中打开小程序。 那么如何实现呢?官方文档已经写的很清楚啦,这里简单介绍一下。 首先,获取URL Scheme,通过服务端接口可以获取打开小程序任意页面的URL Scheme,支持生成到期失效和永久有效的URL Scheme。 [图片] 然后,通过短信群发平台将获取的URL Scheme + 营销文案发送到用户的手机上。 最后,用户收到短信后,直接点击URL Scheme唤起微信,跳转到对应小程序页面,就是这么简单。 除此之外,还可以通过邮件或外部浏览器打开跳转小程序。 由于部分操作系统仍不支持直接识别URL Scheme,因此直接将Scheme发送给用户可能存在无法打开小程序的情况。 为此,我们可以先准备一个H5页面,再从H5页面跳转到URL Scheme实现打开小程序。 [代码]location.href = 'weixin://dl/business/?ticket= *TICKET*' [代码] H5的示例代码我已经更新到Github,可以复用起来,基于官方的案例做了些改动,增加PC端打开时生成二维码方便手机扫码使用。 这次新能力的更新将使微信小程序不再局限于微信内部的流量,天花板被掀开啦。 而且短信和邮件营销的触达成本非常低,营销成本的压低也会催生出很多新的流量玩法,我们敬请期待吧。
2021-01-08 - 长链接转短链接接口每日限制多少次,能做个说明吗
https://api.weixin.qq.com/cgi-bin/shorturl?access_token=ACCESS_TOKEN 文档:https://developers.weixin.qq.com/doc/offiaccount/Account_Management/URL_Shortener.html {"errcode":45009,"errmsg":"reach max api daily quota limit rid: 5f51a328-75380152-55027885"}
2020-09-04 - 长链接转短链接接口次数限制
https://developers.weixin.qq.com/doc/offiaccount/Account_Management/URL_Shortener.html 现在微信公众号后台页面还是显示10000次 但是,又说只有10次,究竟是以哪个为主?还是说可以使用10000次?
2020-08-24 - 微信公众号长链接转短链接接口的域名限制针对一级域名还是二级域名?
长链接转短链接的接口”主要用于提升开发者生成二维码的扫码速度和成功率。 近期发现存在开发者滥用的情况,为规范接口使用,自2020年6月2日起,长链接转短链接的接口将调整如下: 每个自然月长链接域名转换上限调整为10,第11个及之后的长链接域名将无法转换。 为避免正常业务受到影响,请开发者提前做好调整 公众号收到这样的站内信,已经要影响业务了。请问这个限制是指一级域名还是二级域名不同都会占用一个域名名额呢,请微信官方的大大们回答
2020-05-27 - 下载资金账单 不定时报错 "商户证书不合法",但是下载对账单的时候正常
下载资金账单 不定时报错 "商户证书不合法",但是下载对账单的时候正常
2019-10-23 - 下载资金账单接口提示[商户证书不合法]?
现在需要核对2018年的数据,使用的是开发文档V2版本,下载资金账单接口返回[商户证书不合法],但是用同样的商户号同样的证书走退款流程却没有问题。请求参数和返回响应信息如下:-->request start { url: https://api.mch.weixin.qq.com/pay/downloadfundflow, method: POST, headers: [ ACCEPT: */*, Content-Type: text/xml;charset=UTF-8, Content-Length: 236, Host: api.mch.weixin.qq.com, Connection: Keep-Alive, Accept-Encoding: gzip, User-Agent: okhttp/3.3.0 ], body: <xml><nonce_str>d1d72a70906d4afebe0b824238849ce2</nonce_str><appid>xxxx</appid><mch_id>xxxx</mch_id><sign>xxxx</sign><bill_date>20180101</bill_date><account_type>Basic</account_type></xml>, protocol: http/1.1 } -->request end 2020-12-14 18:26:20.821 +0800 [payment-api][DEV][INFO] from com.xingren.service.client.interceptors.HttpResponseLogInterceptor in Test worker - [vclient]{} <--response start { code: 200, msg: OK, url: https://api.mch.weixin.qq.com/pay/downloadfundflow, headers: [ Server: nginx, Date: Mon, 14 Dec 2020 10:26:20 GMT, Content-Type: text/plain; charset=utf-8, Content-Length: 114, Connection: keep-alive, Keep-Alive: timeout=8 ], body: <xml><return_code><![CDATA[FAIL]]></return_code><return_msg><![CDATA[商户证书不合法]]></return_msg></xml>, tookMs: 233ms } 有大佬帮忙解决一下嘛?签名已经用文档里的微信支付接口签名校验工具验证过了,没问题。
2020-12-14 - 下载资金账单 不定时报错 "商户证书不合法"
资金账单下载的时候偶尔会出现证书不合法
2019-09-23 - 下载资金账单 报错 商户证书不合法
证书我试过了,是可以发起退款的,是没有问题的。 怎么 使用 下载资金账单 接口就 报错呐 [图片]
2020-11-23 - 小程序使用web-view内嵌H5网页,登录状态问题
小程序使用web-view内嵌H5网页,如何将第三方的登录状态传入内嵌的页面?
2017-12-07 - 广东深圳地区的w.url.cn域名dns解析有问题,为什么不能访问?
广东深圳地区的w.url.cn域名dns解析有问题,ping,返回127.0.0.1。wifi和4G都有问题。[图片]
2020-09-08 - webview中的h5页登录态和小程序页登录态如何保持一致
请问各位大佬: 一个小程序 里边有webview内嵌h5网页 怎么能保证webview 中的登录态和整个小程序的登录态保持一致?(比如小程序退出登录h5同时登录态也失效)
2019-02-20 - 如何同步小程序和webview的登录态问题?
开发中需要将一个页面替换为H5页面,需要同步登录态。求助各位大佬!
2020-02-04 - web_view 如何同步cookie?
通过wx.request 登录获取cookie后如何注入web_view实现webview免登录呢?
2020-08-13 - 小程序webview使用
一、使用原因 由于小程序包大小8M的限制 (之前版本)我们组做的是公共活动、工具,业务方会拉取我们的代码, 新活动会不断添加H5小程序都做,维护成本会比较高二、webview引入思路 webview 安全域名申请访问原先小程序活动重定向到webview容器页面并且在url后面追加一些参数(h5页面需要)实现公共的webview页面,需要功能:分享回调、h5路径转发、身份token透传、刷新H5页面H5页面实现功能兼容, 一些活动配置项、分享标题、分享图片、打点(跟小程序和h5环境相关)三、代码实现 原小程序页面重定向webview页面方法包装 [图片] 小程序webview代码实现 Page({ /** * 页面的初始数据 */ data: { url: '', // webview 地址 shareData: {}, // 分享参数 }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { // TODO 登录信息获取 }, /** * 用户点击右上角分享 */ onShareAppMessage: function (options) { // 这里把网址编码了下,用户分享的卡片进去的时候会在onload中得到webview的网址,解码后赋值给src属性就行了 let that = this const shareInfo = { title: that.data.shareData.title, path: `/pages/hudong/common/pages/hdview/index?url=${encodeURIComponent(that.data.shareData.url)}`, imageUrl: that.data.shareData.imgUrl } return shareInfo }, /** * 分享回调 */ onShareback() { let that = this // 分享成功后 通知h5页面(h5有配置xxxback的话), 调用之后需要手动删除 xxxback that.refreshH5(that.data.shareData.xxxback) delete that.data.shareData.xxxback }, /** * 初始化信息 */ initData(options, userInfo = {}) { let url = decodeURIComponent(options.url); const { openid, appid, token } = userInfo; let statType = '' // 记录当前options的链接 this.data.shareData.url = url // h5链接xxxxxxx=xxxxxxxxx 标识 const navUrl = `${url}${url.indexOf('?') > -1 ? '&' : '?'}xxxxxxx=${token}&dotStatType=${statType}` this.setData({ url: navUrl }) }, // 接收h5发送的数据 getMessage(e) { const that = this const data = e.detail.data let action = '' // 注意:每次发送数据后数据会添加到e.detail.data中的数组, // 并不会清除掉上一次传递的数据,所以我们取数组的最后一位 if(data.length > 0) { let item = data[data.length - 1] action = item.action switch(action) { case 'share': that.dealH5Share(item) break case 'saveFormId': // TODO that.dealSaveFormId(item) break } } }, // 处理接收到h5数据 分享操作 dealH5Share(data) { const that = this if(data) { that.data.shareData = data } }, // 处理接收到h5数据 保存formId操作 (待拓展) dealSaveFormId() { // TODO debugger }, // 刷新H5页面当前 refreshH5(xxxback) { if(typeof xxxback != 'object') { return false } const oldUrl = this.data.url let newUrl = oldUrl const oldParams = ParseURL(oldUrl) // 删除历史 oldParams.xxxback && (newUrl = newUrl.replace(`xxxback=${oldParams.xxxback}`, ``)) newUrl += `&xxxback=${(JSON.stringify(xxxback))}` this.setData({ url: newUrl }) } H5分享相关改造 /** * 获取指定的URL参数值 * 参数:paramName URL参数 * 调用方法:getQueryParam("name") * 返回值:tyler */ function _getQueryParam(paramName) { paramValue = "", isFound = !1; if (window.location.search.indexOf("?") == 0 && window.location.search.indexOf("=") > 1) { arrSource = decodeURIComponent(window.location.search).substring(1, window.location.search.length).split("&"), i = 0; while (i < arrSource.length && !isFound) arrSource[i].indexOf("=") > 0 && arrSource[i].split("=")[0].toLowerCase() == paramName.toLowerCase() && (paramValue = arrSource[i].split("=")[1], isFound = !0), i++ } return paramValue == "" && (paramValue = null), paramValue } // 判断是否是小程序环境 function IsMiniProgramEnv(fun) { // 通过navigator.userAgent 判断 var bl = navigator.userAgent && navigator.userAgent.indexOf('miniProgram') > -1 if (typeof fun == 'function') { fun(bl) } } // 初始化执行 IsMiniProgramEnv(function (bl) { if (bl) { IsInMiniProgram = true // 判断是否是小程序环境 _initMiniData() } }) // 设置小程序分享 function SetMiniProgramShare(url, title, imgUrl, fun) { if (title && url && imgUrl) { IsMiniProgramEnv(function (bl) { if (bl) { // 向小程序发送消息 var data = { action: 'share', // 触发修改分享参数动作 url: url, title: title, imgUrl: imgUrl } if(typeof fun === 'function') { data.xxxback = fun() || {} } wx.miniProgram.postMessage({ data: data }) } }) } } // H5跳转小程序路径 function _NavigateToMiniProgram(url) { var newUrl = '/pages/hudong/common/pages/bridge/index?url=' + encodeURIComponent(url) wx.miniProgram.navigateTo({ url: newUrl }) } function _initMiniData() { } // 重新包装链接跳转, 用于跳转业务方的小程序地址或者h5页面地址 function HrefToBusiness(url) { if(!url) { return false; } // 是小程序环境, 并且不是h5链接 if(IsInMiniProgram && url.split("?")[0].indexOf('http') == -1) { _NavigateToMiniProgram(url) } else { window.location.href = url } } webview改造原有小程序项目利弊 优点 减少小程序包大小提升开发、迭代效率大多数需求可省去审核流程,h5最新的功能就是小程序功能缺点 用户体验不如原生小程序不能用复杂的动画交互,简单页面还可以权限限制比较多,例如不能 埋点弹起授权手机号授权等h5、小程序通讯限制太多,具体可参考微信文档
2020-01-25 - APP里的内容发送到微信朋友圈,自己可以看到但是别人都看不到?
请问一下各位大佬,从我们APP中分享到朋友圈的内容用户都看不到是什么原因呢? 自己是可以看到的,单独发送微信也是可以看到的。 求救
2020-01-16 - APP内部分享到微信朋友圈,别人看不到是怎么回事?
APP内部分享到微信朋友圈,其他人都看不到我发的,请问这个是什么原因
2020-08-24 - 小程序分享卡尺寸
小程序分到群后,显示在群里面的这个小程序分享卡片的尺寸是多少?
2018-05-15 - 发送小程序订阅消息API调用QPS或者QPM的限制是多少?
https://api.weixin.qq.com/cgi-bin/message/subscribe/send 发送小程序订阅消息API调用QPS或者QPM的限制是多少? 只找到了单日调用次数上限
2020-02-04 - 微信支付SDK香港用户支付的问题
我们的app使用了微信支付 香港用户在使用的时候,能够正常唤起app支付页面 支付的时候,余额部分显示 ‘本次交易不支援’,无法选择 请问是香港微信的余额确实不支持支付吗?还是需要什么设置。
2019-12-31 - 香港用户在小程序上支付时,由于政策原因不能支付,但是已经实名认证了
[图片][图片]
2019-12-22 - #微信支付 微信支付产品QA汇总
特约商户进件 Q001:微信支付V3特约商户进件的图片上传提示商户没有权限 ; A001:查看使用的商户号是否是服务商 微信代金券 Q001:用户领券后是否可以删除(发错了不让他使用)? A001:不可以进行删除操作。目前没有这样的API与后台功能。 Q002:服务商如何绑定多个APPID? A002:服务商可通过以下流程申请绑定: 发送邮件给v_jjinglliu@tencent.com,elonhou@tencent.com,邮件名称:【服务商APPID多绑申请】商户号+商户名。邮件提供内容:申请绑定背景、APPID业务介绍、APPID、APPID主体名称、需要绑定的商户号、商户主体名称。仅支持同主体APPID及商户号绑定,每个服务商商户号最多可以绑3个APPID。 【2020-12-09更新】 服务商后台->产品中心->APPID账号管理已经支持绑定 [图片] Q003:商户号A制券,允许商户号B发券,如何配置?(例如服务商制券,在子商户的场景例如公众号、小程序里发券) A003:跨商户号发券的使用场景是,A商户号制券,在B商户的场景中发券,例如小程序。需要A开通跨商户发券制券商户号的白名单、B开通商户发券发券商户号的白名单。然后A开始制券,制券是要把B添加为“可发券商户”。然后再用B的商户号调用接口,在和B商户号有绑定关系的APPID对应的场景中发券,就可以了。 目前申请流程: 需要先开通跨商户号发券权限。发邮件给v_jjinglliu@tencent.com,anthonylin@tencent.com,说明申请原因、制券的商户号、发券商户号。邮件标题“申请跨商户号发券+商户名称”。配置批次的时候把可发券商户号填发券商户,然后调用发券接口即可。申请后会在一个工作日内开通并回复邮件。 Q004:API发券是否可以后台插入卡包? A004:需要服务商通过人工发邮件申请。发邮件给v_jjinglliu@tencent.com,elonhou@tencent.com,说明申请原因、发放场景(需要有交互示意),制券的商户号和批次号用表格的形式(两列,分别是商户号和批次号)。后续小程序发券插件上线后,可以实现自动插入卡包。 商家券 Q001:创建商家券的时候,红色圈起来的部分那几个字可以修改成品牌商户号的名字吗 [图片] A001:邮件申请流程: 发送对象:weixincard(微信卡包)weixincard@tencent.com 邮件主题:【卡券功能申请】新版卡包信息修改+【商户名称】 邮件内容: xxx(商户名称)申请修改卡包商户信息,资料如下: 公众号 APPID:xxx 修改原因:xxx 新的商户名称:xxxxxx (请控制在12个字以内且仅支持英文、数字、汉字,以及 _ · + - @ | & .) 新的商户logo:(120*120png/jpg图片附件) 关联商户号:(历史曾用所有商户号,移交给其他商家使用的除外) 关联appid:(历史曾用所有appid,移交给其他商家使用的除外) 商家主页颜色:(从已有色板中选择) 商户主页小程序资料:(最多可加入6个小程序,提供每部分小程序的名称、appid、path) 微信先享卡 Q001:… A001 支付服务商 Q001:如何查看一家公司是否是支付服务商? A001:https://pay.weixin.qq.com/index.php/partner/public/search,通过此连接输入公司名称查询 Q002:服务商如何绑定APPID A002:https://kf.qq.com/faq/200520fueQrI200520aQf6Rr.html (已支持服务商后台操作,无需邮件申请,路径->产品中心-APPID账号管理)
2020-12-09 - 同一个小程序,能关联多个微信支付商户吗?
我们公司目前在开发一款小程序,全国有上百家分店使用,门店都有自己的微信支付商户号,小程序内发生的交易会支付到对应门店的微信支付商户号里,想确认一下,一个小程序最多能关联多少个微信支付商户号? 一个小程序,可以关联多个商户号,但是从开发的角度来说,让发生的交易额直接支付到对应的商户号,开发流程会复杂很多,这里需要用到服务商分账的功能,先将交易资金存放在一个特定商户里,再由特约商户分配资金到对应的商户号。 服务商分账全流程 https://pay.weixin.qq.com/wiki/doc/api/allocation_sl.php?chapter=24_1&index=1
2020-03-31 - 如何解决境内平台直接支付境外商户的问题?
我公司是一家做电商的企业,已经通过JSAPI的方式实现了网站到境内商户的付款功能。现在我们公司在香港注册了一个境外的商户号。 我想问的是 1) 我们能不能通过我们的电商平台将款直接支付到境外香港公司的商户上? 2)对电商平台有要求吗,网站是不是也必须注册到境外(香港),或者是注册到境内境外都可以?
2019-12-16 - 微信支付境外普通商户号如何申请?
已经用境外主体(香港)申请了一个境外小程序在该小程序的微信支付菜单去申请商户号的时候,默认是申请境内的商户号,还让提交18位统一社会信用代码。如何申请境外商户号?如果无法申请境外商户号的话,境外主体小程序可以绑定境内商户号,实现支付吗?
2020-01-20 - 微信的境外支付,是不是可以用境内注册的商户号完成海外微信账户的支付功能?
目前微信商户号是在国内注册的,但是公司要向海外进行业务拓展,需要用到微信的海外支付功能,请问就用国内的微信商户号就可以完成支付还是要重新注册海外的微信商户号?
2019-12-20 - 国外公司无国内营业执照,如何做小程序怎么申请支付
现有一国外的公司,在大陆没有注册公司,无国内营业执照,但有一境外。现国外公司有银行账户为在香港的中国银行(美元账户)和菲律宾本地银行(美元账户)。 问题: 1、是否可以做小程序在国内使用?有没有相关文档说明? 2、如能使用,是否能在国内支持支付功能?有没有相关文档说明? 3、如支持,结算在香港好还是菲律宾好?开国际微信账户是在香港开,还是菲律宾开?有没有相关文档说明?
2018-07-03 - 请问境外主体能够开通小程序支付吗?
尊敬的微信开放社区成员: 你好! 近日,我们公司由于股权变更,即将注销大陆注册的公司,改用香港注册的公司作为小程序的运营主体,因此小程序的支付也需要迁移至新的香港公司。 请问,香港注册的公司可以开通小程序支付吗? 如果不可以,请问是否有特别渠道,开出相应的证明来开通香港公司的小程序支付?
2018-09-18 - 【小程序迁移】 - 目标主体为香港公司
- 需求的场景描述(希望解决的问题) 使用小程序管理后台“小程序迁移”功能,将【中国大陆公司】主体小程序迁移至【中国香港公司】主体下时遇到了问题 由于不支持输入【7位企业注册号】,仅支持输入【9位组织机构代码、18位的统一社会信用代码】 如图所示:[图片] 导致小程序迁移流程走不通 [图片] - 希望提供的能力 “小程序迁移”功能 - 支持公司主体迁移至【中国香港公司】主体下 - 备注 不知是否是操作不当,还是目前不支持,希望能尽快回复,谢谢
2018-12-10 - 香港公司实体小程序数量问题
我们公司是一个香港公司,关于微信小程序还有公众账号有一下问题: 香港公司申请小程序和公众号的数量限制分别是多少个? 香港公司申请open平台后分别最多可以绑定多少个小程序和公众号? 香港公司申请第三方平台后,可以集成多少个授权的小程序与公众号? 香港公司的第三方平台,集成的小程序可以是自己的吗? 香港公司第三方平台,绑定的授权小程序会所有的都有支持UnionID吗?
2019-06-19 - 境外主体的小程序,可以用境外主体的境内账户完成微信支付对接么?
小程序企业主体在香港,有境内注册的银行账户,可以对接微信支付完成收款么?
2020-04-24 - 香港电商小程序
各位大佬,小弟没做过境外小程序,有几个问题想咨询一下,望不吝赐教: 1.国内可以访问境外(香港)小程序吗? 2.境外(香港)小程序是依据注册主体判断还是依据其他判断,具体是? 3.境外(香港)地区小程序可以申请电商类目吗? 4.怎样申请境外(香港)小程序? 5.目前已有香港MSO拍照和微信支付商户号,境外(香港)小程序可以使用现有的微信支付吗? 5.为何我使用境外(香港)主体申请电商小程序会要求需要以下证书(见下图): [图片]
2019-07-20 - 海外主体的公众号可以关联国内主体的小程序吗?
RT
2019-10-16 - 国内主体的公司的开放平台,可否关联绑定香港公司主体的小程序?
您好我们是上海一家公司 在香港有合作公司提供小程序服务 想问下 以上海公司主体申请开放平台 可以把香港主体的小程序绑定到上海公司的开放平台上吗? 绑定海外小程序数量有什么限制呢?
2019-12-05 - 香港主体的微信支付绑定香港主体的电商小程序,是否能提供内地用户购买?
香港主体的微信支付和小程序,都已申请好。 是否能绑定同一香港主体的微信商户号和小程序?能否做成商家自营小程序?这个小程序能否提供给国内用户消费购买?我这个问题在小程序和微信支付专区都提交过,在小程序专区提交的被你们管理员移动到微信支付,然后微信支付的同学在让我去小程序专区提问。麻烦给个准确答案啊,没有准确答案给我个联系方式去问也行啊? [图片]
2020-03-02 - 香港注册的实体,走的境内版支付SDK 还是境外版支付SDK?
香港注册的主体,开通微信支付,提供给大陆用户海淘购物支付。走的境内版支付SDK 还是境外版支付SDK?还是微信跟某宝一样,香港有特殊一套接口
2020-01-02 - 微信支付SDK 境外版跟国内版有哪一些区别?
我公司最近要接入微信境外版支付,想请教下,境外版跟国内版对于iOS客户端而言都有哪些不同?需要下载两个SDK吗?
2019-01-09 - 小程序内用户帐号登录规范调整和优化建议
为更好地保护用户隐私信息,优化用户体验,平台将会对小程序内的帐号登录功能进行规范。本公告所称“帐号登录功能”是指开发者在小程序内提供帐号登录功能,包括但不限于进行的手机号登录,getuserinfo形式登录、邮箱登录等形式。具体规范要求如下: 1.服务范围开放的小程序 对于用户注册流程是对外开放、无需验证特定范围用户,且注册后即可提供线上服务的小程序,不得在用户清楚知悉、了解小程序的功能之前,要求用户进行帐号登录。 包括但不限于打开小程序后立即跳转提示登录或打开小程序后立即强制弹窗要求登录,都属于违反上述要求的情况; 以下反面示例,在用户打开小程序后立刻弹出授权登录页; [图片] 建议修改为如下正面示例形式:在体验小程序功能后,用户主动点击登录按钮后触发登录流程,且为用户提供暂不登录选项。 [图片] 2.服务范围特定的小程序 对于客观上服务范围特定、未完全开放用户注册,需通过更多方式完成身份验证后才能提供服务的小程序,可以直接引导用户进行帐号登录。例如为学校系统、员工系统、社保卡信息系统等提供服务的小程序; 下图案例为正面示例:校友管理系统,符合规范要求。 [图片] 3.仅提供注册功能小程序 对于线上仅提供注册功能,其他服务均需以其他方式提供的小程序,可在说明要求使用帐号登录功能的原因后,引导用户进行帐号注册或帐号登录。如ETC注册申请、信用卡申请; 如下反面示例,用户在进入时未获取任何信息,首页直接强制弹框要求登录注册ETC,这是不符合规范的。 [图片] 建议修改为如下正面示例所示形式:允许在首页说明注册功能后,提供登录或注册按钮供用户主动选择点击登录。 [图片] 4.提供可取消或拒绝登录选项 任何小程序调用帐号登录功能,应当为用户清晰提供可取消或拒绝的选项按钮,不得以任何方式强制用户进行帐号登录。 如下图所示反面示例,到需要登录环节直接跳转登录页面,用户只能选择点击登录或退出小程序,这不符合登录规范要求。 [图片] 建议修改为下图正面示例形式,在需帐号登录的环节,为用户主动点击登录,并提供可取消按钮,不强制登录。 [图片] 针对以上登录规范要求,平台希望开发者们能相应地调整小程序的帐号登录功能。如未满足登录规范要求,从2019年9月1日开始,平台将会在后续的代码审核环节进行规则提示和修改要求反馈。
2019-07-20 - 小程序的底层框架
一切始于双线程 技术选型 上一节《小程序的诞生》中,我们也提到了小程序的双线程设计。 目前来说,页面渲染的方式主要有三种: Web 渲染。 Native 原生渲染。 Web 与 Native 两者掺杂,也即我们常说的 Hybrid 渲染。 前面也说过,小程序最终的呈现形式,是 WebView + 原生组件,Hybrid 方式。我们结合之前对小程序的期望来看: 开发门槛:Web 门槛低,不过 Native 也有像 RN 这样的框架支持 体验:Native 体验比 Web 不要好太多,Hybrid 在一定程度上比 Web 接近原生体验 版本更新:Web 支持在线更新,Native 则需要打包到微信一起审核发布 管控和安全:Web 可跳转或是改变页面内容,存在一些不可控因素和安全风险 由于小程序的宿主是微信,如果用纯客户端原生技术来编写小程序 ,那小程序代码需要与微信代码一起编包,跟随微信发版本,这种方式跟开发节奏必然都是不对的。 所以方向应该是需要像 Web 技术那样,有一份随时可更新的资源包放在云端,通过下载到本地,动态执行后即可渲染出界面。 如果用纯 Web 技术来渲染小程序,在一些有复杂交互的页面上可能会面临一些性能问题。 这是因为在 Web 技术中,UI渲染跟 JavaScript 的脚本执行都在一个单线程中执行,这就容易导致一些逻辑任务抢占UI渲染的资源。 总地看来,小程序选择了 Hybrid 的渲染方式,可以用一种近似 Web 的方式来开发,并且还可以实现在线更新代码。 同时,引入原生组件有以下好处: 扩展 Web 的能力。比如像输入框组件(input, textarea)有更好地控制键盘的能力 体验更好,同时也减轻 WebView 的渲染工作 绕过 setData、数据通信和重渲染流程,使渲染性能更好 现在,我们还剩下一个很重要的问题:管控性和安全性。于是,双线程的设计被提出来了。 双线程的小程序 也不知道是哪位大佬,能想出双线程这样的模型,反正我是佩服得666的。 双线程是什么?我们先来看个官方的图: [图片] 小程序的渲染层和逻辑层分别由 2 个线程管理:渲染层的界面使用了 WebView 进行渲染,逻辑层采用 JsCore 线程运行 JS 脚本。 为什么要这么设计呢?前面提到的管控和安全,为了解决这些问题,我们需要阻止开发者使用一些浏览器提供的,诸如跳转页面、操作 DOM、动态执行脚本的开放性接口。 我们可以使用客户端系统的 JavaScript 引擎,iOS下的 JavaScriptCore 框架,安卓下腾讯 x5 内核提供的 JsCore 环境。通过提供一个沙箱环境来运行开发者的 JavaScript 代码来解决。这个沙箱环境只提供纯 JavaScript 的解释执行环境,没有任何浏览器相关接口。 这就是小程序双线程模型的由来: 逻辑层:创建一个单独的线程去执行 JavaScript,在这个环境下执行的都是有关小程序业务逻辑的代码 渲染层:界面渲染相关的任务全都在 WebView 线程里执行,通过逻辑层代码去控制渲染哪些界面。一个小程序存在多个界面,所以渲染层存在多个 WebView 线程 双线程通信 把开发者的 JS 逻辑代码放到单独的线程去运行,但在 Webview 线程里,开发者就没法直接操作 DOM。那要怎么去实现动态更改界面呢? 前面我们知道,逻辑层和渲染层的通信会由 Native (微信客户端)做中转,逻辑层发送网络请求也经由 Native 转发。 这是不是意味着,我们可以把 DOM 的更新通过简单的数据通信来实现呢? Virtual DOM 相信大家都已有了解,大概是这么个过程:用JS对象模拟DOM树 -> 比较两棵虚拟DOM树的差异 -> 把差异应用到真正的DOM树上。 在这里我们可以用上,如图: [图片] 在渲染层把 WXML 转化成对应的 JS 对象。 在逻辑层发生数据变更的时候,通过宿主环境提供的 setData 方法把数据从逻辑层传递到 Native,再转发到渲染层。 经过对比前后差异,把差异应用在原来的 DOM 树上,更新界面。 我们通过把 WXML 转化为数据,通过 Native 进行转发,来实现逻辑层和渲染层的交互和通信。而这样完整的一套框架,基本上都是通过小程序的基础库来完成的。 小程序的基础库 小程序的基础库是 JavaScript 编写的,它可以被注入到渲染层和逻辑层运行。主要用于: 在渲染层,提供各类组件来组建界面的元素 在逻辑层,提供各类 API 来处理各种逻辑 处理数据绑定、组件系统、事件系统、通信系统等一系列框架逻辑 由于小程序的渲染层和逻辑层是两个线程管理,两个线程各自注入了基础库。小程序的基础库不会被打包在某个小程序的代码包里边,它会被提前内置在微信客户端。 这样可以: 降低业务小程序的代码包大小 可以单独修复基础库中的 Bug,无需修改到业务小程序的代码包 Exparser 框架 Exparser 是微信小程序的组件组织框架,内置在小程序基础库中,为小程序的各种组件提供基础的支持。小程序内的所有组件,包括内置组件和自定义组件,都由 Exparser 组织管理。Exparser 特点包括: 基于 Shadow DOM 模型:模型上与 WebComponents 的 ShadowDOM 高度相似,但不依赖浏览器的原生支持,也没有其他依赖库;实现时,还针对性地增加了其他API以支持小程序组件编程。 可在纯JS环境中运行:这意味着逻辑层也具有一定的组件树组织能力。 高效轻量:性能表现好,在组件实例极多的环境下表现尤其优异,同时代码尺寸也较小。 关于基础库和 Exparser 框架,更多的也可以参考:《小程序开发指南》 结束语 这节里大概讲了小程序设计中比较重要的一个模型——双线程,关于双线程的出现、设计、数据通信,到基础库、Exparser 框架,都是一个个相关而又相互影响的选择。 关于小程序的底层框架设计,其实还涉及更多更多我们未能一时半会掌握完的内容,自定义组件、原生组件,还有他们做了很多的性能优化工作,都不是只言片语能讲完的。我们能做的,就是多去思考。
2019-02-27 - 在setData1024KB限制下如何做到无限翻页列表交互?
最近在做一个翻页交互,遇到点setData的坑,最后想了个办法给绕过去了,但我不知道各位有没有更好的办法,在这里分享下我的处理办法; 例如我有个列表,这个列表的总数据量不确定有多少,经我们产品交代,大促期间,至少会有1000条,从小程序的开发文档里可以看到setData对数据的限制是1024KB,因为之前我看文档时没有注意到这一点,所以我一开始在做分页的时候就用了错误的方法,上代码: wxml: [代码] [代码] [代码]<[代码][代码]sku-item[代码] [代码] [代码][代码]wx:for[代码][代码]=[代码][代码]"{{skuList}}"[代码][代码] [代码][代码]skuData[代码][代码]=[代码][代码]"{{item}}"[代码][代码] [代码][代码]actId[代码][代码]=[代码][代码]"{{actId}}"[代码][代码] [代码][代码]wx:key[代码][代码]=[代码][代码]"{{item.skuid}}"[代码][代码]/>[代码] [代码] [代码] js: [代码] [代码] [代码]data: {[代码] [代码] [代码][代码]skuList: [][代码][代码]},[代码][代码]loadMore: [代码][代码]function[代码][代码]() {[代码][代码] [代码][代码]request([代码][代码]function[代码][代码](res) {[代码][代码] [代码][代码]this[代码][代码].setData({[代码][代码] [代码][代码]skuList: [代码][代码]this[代码][代码].data.skuList.concat(res.list)[代码][代码] [代码][代码]});[代码][代码] [代码][代码]})[代码][代码]}[代码] [代码] [代码] 好,这样写,问题就出来了,当数据量慢慢的累积起来,就会触发1024KB阈值,后面的数据就算能取回来,也set不进去了。 于是我想了一个解决方案: 把之前的渲染流程拆成两步来做,第1步: 先想办法把每页的坑位给渲染出来,于是我搞了一个skuPage组件, 在这个组件中来单独做每页的sku渲染: wxml: [代码] [代码] [代码]<[代码][代码]sku-item[代码] [代码] [代码][代码]wx:for[代码][代码]=[代码][代码]"{{skuList}}"[代码][代码] [代码][代码]skuData[代码][代码]=[代码][代码]"{{item}}"[代码][代码] [代码][代码]actId[代码][代码]=[代码][代码]"{{actId}}"[代码][代码] [代码][代码]wx:key[代码][代码]=[代码][代码]"{{item.skuid}}"[代码][代码]/>[代码] [代码] [代码] js: [代码] [代码] [代码]data: {[代码] [代码] [代码][代码]skuList: [][代码][代码]},[代码][代码]methods: {[代码][代码] [代码][代码]setListData: [代码][代码]function[代码] [代码]() {[代码][代码] [代码][代码]let _this = [代码][代码]this[代码][代码];[代码][代码] [代码][代码]this[代码][代码].setData({[代码][代码] [代码][代码]skuList: app.globalData.skuList[代码][代码] [代码][代码]});[代码][代码] [代码][代码]app.globalData.skuList = [];[代码][代码] [代码][代码]}[代码][代码]},[代码][代码]ready: [代码][代码]function[代码][代码]() {[代码][代码] [代码][代码]this[代码][代码].setListData();[代码][代码]}[代码] [代码] [代码] 在外部页面中调用skuPage组件: wxml: [代码] [代码] [代码]<[代码][代码]sku-page[代码] [代码] [代码][代码]class[代码][代码]=[代码][代码]"sku-page"[代码][代码] [代码][代码]wx:for[代码][代码]=[代码][代码]"{{pageWrapCount}}"[代码][代码] [代码][代码]wx:key[代码][代码]=[代码][代码]"{{index}}"[代码][代码] [代码][代码]actId[代码][代码]=[代码][代码]"{{actId}}"[代码][代码]/>[代码] [代码] [代码] js: [代码] [代码] [代码]data: {[代码] [代码] [代码][代码]pageWrapCount: [][代码][代码]},[代码][代码]loadMore: [代码][代码]function[代码][代码]() {[代码][代码] [代码][代码]app.globalData.skuList = res.list;[代码][代码] [代码][代码]request([代码][代码]function[代码][代码](res) {[代码][代码] [代码][代码]this[代码][代码].setData({[代码][代码] [代码][代码]pageWrapCount: [代码][代码]this[代码][代码].data.pageWrapCount.concat([1])[代码][代码] [代码][代码]});[代码][代码] [代码][代码]})[代码][代码]}[代码] [代码] [代码] 好,这样我们把取回的数据先不要立马set进去,而是把它先丢在global里,然后让坑位+1,这样skuPage就会新增一个,就会触发skuPage的ready钩子函数,这个时候再在skuPage的ready钩子中,从global中把list取过来丢给skuPage组件的skuList,让skuPage组件去渲染,这样就能绕开setData的1024KB上线,因为每次针对于坑位来说 [代码] [代码] [代码]this[代码][代码].setData({[代码] [代码] [代码][代码]pageWrapCount: [代码][代码]this[代码][代码].data.pageWrapCount.concat([1])[代码][代码]});[代码] [代码] [代码] 我只对pageWrapCount数组push(1); 就算有1024KB限制,那也远远足够了,除了此种办法外,各位还有更好的办法么?欢迎共享经验
2018-05-25