个人案例
- 青寒云
工具类小程序
青寒云扫码体验
- 微信小店内容个人整理2024
一、微信小店介绍 1,微信小店是什么? 微信小店,指腾讯以微信为技术开发基础,向商家提供的商品信息展示、商品交易等功能的技术服务的店铺。 现在视频号小店可以直接升级为微信小店。 2,微信小店有什么新能力? (1)打通微信生态链 支持店铺及商品信息在公众号(订阅号、服务号)、视频号(直播、短视频)、小程序、搜一搜等多个微信场景内流转,助力商家更好地满足用户消费需求。 (2)简化商家入驻流程 升级品牌认证和店铺命名体系,降低保证金。 (3)降低开店门槛 新店铺申请无需视频号 商家只需要拥有一个经过实名认证的微信号及相关的经营资质即可开店。 3,入驻和申请 (1)注册时间 微信小店预计在2024年8月25日接受升级和新增申请。 (2)申请 在小店官网申请:https://store.weixin.qq.com/shop 或通过视频号小店升级。 (3)准备材料 微信号:拥有一个已经完成实名认证的微信号。 经营主体信息:营业执照、经营者/法定代表人及超级管理员的身份证信息。 品牌认证材料(仅限企业店):商标注册证(R标)和品牌授权书。 开店材料说明:https://support.weixin.qq.com/cgi-bin/mmsupportacctnodeweb-bin/pages/lO9SRYENEOF2ncsd 4,其他 (1)开通微信小店的数量限制 一个微信号只能申请1个微信小店, 一个营业执照最多支持开30家小店。 (2)超级管理员是谁? 用于开店的实名认证的微信号,将默认成为小店的超级管理员。 如需邀请多人共同管理店铺,超级管理员可以在小店后台「店铺管理-成员管理-小店岗位」添加岗位,并设置相应的岗位权限。 (3)个人能开店吗? 仅面向企业和个体工商户,不支持个人开店。 二、视频号小店升级微信小店 (1)升级步骤 超级管理员登陆视频号小店后台,点开弹窗确认升级。 升级为个体店仅需签署协议; 升级为企业店需要完成品牌认证和店铺重新命名,审核通过后即可升级完成。 (2)品牌管理 以前【品牌管理】里已生效的品牌,还需要重新提交授权认证码? 不需要,已生效的品牌可以选择作为认证的主品牌。 (3)本地商家(餐饮/酒旅/到综等),本次小店需要升级吗? 若商家申请入驻微信小店中的本地生活行业,本次无需升级。 (4)升级后店铺名是不是不能叫旗舰店了?我应该怎么命名? 是的,升级后的店名里不能包含“旗舰“及相关字样。升级后的命名规则,可以参考《微信小店命名规则》。 命名规则:https://support.weixin.qq.com/cgi-bin/mmsupportacctnodeweb-bin/pages/fq4QKW4vtRjiEUf4 (5)视频号小店可以不升级吗? 官方建议升级,如在9月25号后仍未升级,视频号小店新增商品上架功能将会受到影响。 (6)小店升级后保证金怎么办,是否会受影响? 小店保证金的应缴额度、收缴、提现等规则,暂不受本次小店升级的影响,请关注小店保证金相关的变更通知。 (7)升级后评分是否会受影响? 小店的dsr评分标准不变,分数也不会受到升级的影响。 (8)我的视频号小店对接的API,升级后需要重新对接吗?历史的商品数据还在吗? 小店升级不需要重新对接接口,相关数据也不会受影响。 更多信息,请参阅官方升级答疑专区:https://support.weixin.qq.com/cgi-bin/mmsupportacctnodeweb-bin/pages/JD7CunJ1YQqxaE7f
08-26 - “2024版微信小店”接入说明、指引及小程序相关开发接入指南(最近更新日期2024年9月6日,更新关联账户数量限制)
写在最前面 之前曾写过“自定义交易组件相关接入指引”,广受好评,解决了很多开发者接入时遇到的问题,当然,其中也不乏一些喂不饱的白眼狼,得到便利还反咬一口,无耻至极,内容如有错误请指正,请文明交流! 本文会尽可能跟随官方功能迭代而更新内容 有问题可以跟帖回复,尽可能的给你解决(解决不了也没办法🤷♀️) 良言一句三冬暖,恶语伤人六月寒。 腾讯在2024年8月12日发布公告:腾讯计划自08月25日起,正式支持商家将视频号小店升级成微信小店。公告原文->点我查看 本文主要介绍24版的“微信小店”的升级内容及对接过程中各流程的注意事项与易错点(暂不包含新店开店流程),文档篇幅较长,如无需查看完整文档可以使用浏览器自带页面搜索功能进行关键字搜索(快捷键Ctrl+F )。 本文更新日志(后续会对本文变动内容进行标注) 2024.09.06 更新微信小店关联账号数量新规则 2024.08.27 小程序内嵌入商品跟佣问题修复 2024.08.26 更新客服、小程序内嵌入商品跟佣相关内容 2024.08.25 本文发布 1、“原视频号小店”升级“24版微信小店”后新增内容: 1.1 店铺管理新增“主页管理”入口 升级“微信小店”后,在管理后台->店铺管理会新增一个“主页管理”,相当于店铺有了一个首页,目前支持配置精选展示位、商品商品分类、主页背景图以及推荐商品排序 “小店”主页商品排序 调整店铺主页销售中商品的默认展示顺序,可以按照序号排序,数字越小越靠前;同时也支持对单个商品进行置顶或隐藏(图一为后台操作排序,图二圈中部分为对应排序展示) [图片] [图片] 注意事项及其他说明 最多可以置顶50个商品 后序置顶商品会在前序置顶前展示 “小店”主页商品分类 可以在主页创建分类并关联商品,当前支持2级分类 [图片] 注意事项及其他说明 1)分类目前只支持上移/下移排序,暂不支持置顶操作 2)单个分类不能超过10个汉字,支持emoji(这个好评) 3)一二级分类暂未测试到数量上限,不过不建议单个一级分类下配置二级分类过多,有可能会影响其他分类展示,尤其是该分类在第一位的时候 4)分类名称会有内容审核,敏感词及平台不允许发布的内容无法进行创建 5)一个商品是支持挂在多个分类下 主页背景图 可配置一张主页背景图,会按16:9比例展示在主页顶部(自己店铺上传的还在审核,先放官方示意图) [图片] 注意事项及其他说明 1)图片仅支持JPEG、JPG、PNG、BMP格式,大小不超过10M 2)背景图片需审核,带二维码、违反公序良序及其他违反法律法规的内容会被驳回 精选展示位 在主页店铺信息下展示推荐内容,目前支持配置展示商品、指定视频号视频、单篇公众号内容三种内容,样式目前只有大图和小图两种展示方式。 用户端展示商品内容示例-小图模式: [图片] 用户端展示视频号内容示例-小图模式 [图片] 用户端展示公众号内容示例-小图模式 [图片] 用户端展示商品内容示例-大图模式 [图片] 用户端展示视频号内容示例-大图模式 [图片] 用户端展示公众号内容示例-大图模式 [图片] 注意事项及其他说明 1)图片仅支持JPEG、JPG、PNG、BMP格式,测试图片可以超过10M(后续是否会改不清楚,不过图片过大加载是真的慢) 2)展示内容会根据展示内容拉取对应商品首图、视频号视频封面以及公众号文章封面,也可以自行上传图片,这里需要注意的点是即使你的图片在商品可以过审核,但在主页推荐不一定能过审核,两者审核尺度不同 3)小图模式至少配置3个展示位才可以保存,而大图模式配置1个展示位就可以,最多允许配置5个展示位 4)商品仅支持配置自己店铺内商品,视频号内容支持配置任意视频号博主任意公开视频,公众号内容支持选择任意公众号任意公开内容 5)无论大图模式还是小图模式,目前仅支持配置1:1的图片,后续是否优化暂不可知 1.2 客服由企业微信客服切换为小店客服 类似原小程序客服,可通过网页和手机端接收、处理客户咨询。目前已支持查询咨询客户下单信息,向咨询用户发送商品、订单消息,配置快捷短语等,基础功能可以满足大部分用户需求,终于可以不用再去付费买三方客服应用了,这个要👍。 注:这里截图不放自己店铺了,涉及用户隐私太多,图示为官方示意图 1.2 PC端: [图片] 1.2 移动端: [图片] 注意事项及其他说明 客服功能存量商户升级指引"->点我查看"(需升级为微信小店后操作) 1.3 新增店铺关联账号 关联账号可以直接售卖小店内的商品,目前支持关联5个视频号与5个公众号,分别可设置1个对外展示账号。 对外展示账号样式-示例图(目前不会显示视频号、公众号名称,只有入口) [图片] 注意事项及其他说明 1)对外展示账号可以进行修改,每种对外展示类型账号每年3次修改机会。 2)配置关联账号后,该账号可在视频号带货中心>橱窗管理中管理带货商品 3)关联账号详细说明及要求:“->点我查看” 4)如果在电脑上打开了客服网页版且在活跃中,当前手机上是不会重复接收到消息推送,预计9月份会有客服PC端和手机APP推出 5)若微信小店店铺开店满30天,且近30天内DSR均大于等于4.6分,关联账号数量可提升至视频号和公众号各10个。(2024.09.06更新) 2、小程序侧新增能力 2.1 小程序支持内嵌微信小店首页,展示小店首页,并进行跳转交易 store-home 开发文档地址:->点我直达 小程序嵌入微信小店首页组件样式 [图片] 注意事项及其他说明 1)基础库需要3.5.5,否则真机调试不显示,可以在开发者工具选择3.5.5版本进行推送 [图片] 2)支持任意升级微信小店后的任意微信小店APPID 3)内嵌入微信小店首页时会有一个“小店”文字显示在下方,可以通过下述方式屏蔽, .wx_store_home .wx_store_home_img_desc { display: none; } 4)第3点中的代码同时也支持屏蔽组件其他类型信息 wx_store_home_info wx_store_home_img_box wx_store_home_info_logo wx_store_home_img_box wx_store_home_info_title wx_store_home_info_title_text wx_store_home_info_history 2.2 小程序内嵌微信小店商品,展示小店商品,并进行跳转交易且支持小店优选联盟带货跟佣功能。 store-product 开发文档地址:->点我直达 小程序内嵌微信小店商品组件样式 [图片] 注意事项及其他说明 1)基础库需要3.5.5,否则真机调试不显示 2)支持任意升级微信小店后的任意微信小店商品ID,这里需要使用微信小店商品id,不支持商户自定义商品ID 3)如果商品违规下架,内嵌商品会直接显示商品违规下架 4)商品组件也可以参考店铺主页代码,屏蔽对应组件内容信息 5)跟佣还未测试,稍后补充 2.2.1 小程序内嵌微信小店商品优选联盟带货跟佣 2024.08.26 14:00:00 目前带货跟佣测试不通,视频号助手API接口实际请求返回无“product_promotion_link”参数,接口返回参数“promotion_key”值类似“product_promotion_link”,疑似为“product_promotion_link”信息。 在小程序前端测试中,store-product组件包含“product_promotion_link”参数时,无法展示对应小店商品,改为“promotion_key”可以正常显示。 目前测试来看小程序侧并不会校验跟佣信息是否正确,建议自己开发测试时一定要慎重一下此处… 2024.08.27 17:30:00 跟佣测试成功,视频号助手API接口实际请求返回无“product_promotion_link”参数,接口返回参数“promotion_key”即为store-product组件的product_promotion_link参数。 注意:文档写的是product-promotion-link,实际应为product_promotion_link,如果使用product-promotion-link,在前端是不会展示对应商品的。 3、搜一搜新增“小店”分类 截止文章更新,目前只支持根据关键词搜索到店铺,暂不支持搜索到商品 [图片] 持续更新中…
09-06 - 可以在这里备案?
微信后台一直审核中,我可以去这里备案吗?是一样的吗? [图片]
2023-10-26 - 「笔记」小程序备案驳回原因整理(不定期更新)
修改字段 待完善原因 修改建议 主体备案证件OR主办单位 证件 主办单位证件涉及前置或专项审批-你单位名称/经营范围/小程序名称/小程序服务内容涉及食品经营 你单位涉及食品相关内容,需要提供《食品经营许可证》、《食品生产许可证》或《仅销售预包装食品经营者备案信息采集表》请通过主体其他补充材料接口上传。 主体备案证件OR主办单位证件 主体证件图片不清晰 请上传清晰完整、不遮挡关键信息/图像、边角齐全、在有效期内的主体有效证件。 主体备案证件OR主办单位证件 主体证件边角不齐全 请上传清晰完整、不遮挡关键信息/图像、边角齐全、在有效期内的主体有效证件。 主体备案证件OR主办单位证件 主体负责人证件非原件彩色扫描件或拍照件 请上传清晰完整、不遮挡关键信息/图像、边角齐全、在有效期内的主体负责人有效证件彩色扫描件或者彩色拍照件。 主体备案证件OR主办单位证件 主办单位证件涉及前置或专项审批-你单位涉及危险化学品 经营范围涉及危化品的,需提供《危险化学品经营许可证》,如实际小程序不涉及的可提供情况说明书,并上传在小程序其他材料位置。 主体备案证件OR主办单位证件 主办单位证件涉及前置或专项审批-北京涉及金融相关关键字 你单位名称/经营范围涉及“金融”相关前置审批关键字。 注:承诺书需上传在小程序其他材料接口。 主体备案证件OR主办单位证件 主办单位证件涉及前置或专项审批-单位名称/经营范围涉及“文化”相关前置审批关键字 你单位名称/经营范围涉及“文化”相关前置审批关键字,如小程序实际经营相关内容,请提供文化和旅游厅审批的《网络文化经营许可证》,前置审批项需选择“文化”;如小程序内容不涉及,需在小程序备注中详细备注小程序从事内容,并承诺不涉及文化前置审批内容。 主体备案证件OR主办单位证件 主办单位证件涉及前置或专项审批-单位名称/经营范国涉及“药品和医疗器械”相关前置审批关键字 你单位名称/经营范围涉及“药品和医疗器械”相关前置审批关键字,如小程序实际经营相关内容,请提供食品药品监督管理局审批的《互联网药品信息服务资格证书》,前置审批项需选择“药品和医疗器械”如小程序内容不涉及,需在小程序备注中详细备注小程序从事内容,并承诺不涉及药品和医疗器械前置审批内容。 主体备案证件OR主办单位证件 主办单位证件涉及前置或专项审批-贵州涉及前置审批关键字 你单位名称、经营范围涉及前置审批关键字,如涉及请配合提供前置审批文件,如实际小程序内容不涉及需配合提供承诺书,承诺书模板下载链接:https://developers.weixin.qq.com/miniprogram/product/record_material.html 注:承诺书需上传在小程序其他材料接口。 主体备案证件OR主办单位证件 你单位名称/经营范围/小程序名称/小程序服务内容涉及食品经营 你单位涉及食品相关内容,需要提供《食品经营许可证》或《预包装食品经营许可证》,请通过主体其他补充材料接口上传。 主体备案证件OR主办单位证件 你单位涉及食品经营 管局要求如涉及食品经营需要提供食品经营许可证,请通过补充材料接口上传。 主体备案证件OR主办单位证件 备案主体涉及特殊关键字 备案主体为律师事务所的,需提供字迹清晰、页面完整的《律师事务所执业许可证》副本进行备案,上传附件应包含许可证副本首页、登记事项首页、最新年审页与变更登记名称、住所页;请通过主体其他补充材料接口传,为了保证清晰度,切勿拼图上传。 主体备案证件OR主办单位证件 备案主体涉及特殊关键字-经营范围涉及“出版”相关关键字 你单位名称/经营范围涉及“出版”相关前置审批关键字,需要提供《互联网出版物许可证》材料。 主体备案证件OR主办单位证件 湖北涉及电子商务或互联网销售 你单位名称/小程序名称/小程序服务内容/经营范围涉及电子商务或百联网销售,如实际小程序内容涉及需配合提供《增值电信业务经营许可证》如不涉及请配合提供“电子商务情况说明书”,说明下模板下载链接:https://developers.weixin.qq.com/miniprogram/product/record_material.html 注:说明书需上传在小程序其他材料接口。 主体备案证件OR主办单位证件 湖南涉及前置审批关键词-涉及出版前置审批关键字 小程序名称、服务内容不涉及前置审批,仅经营范围涉及前置审批关键字,需要备注说明小程序实际从事内容,并需要用户咨询相关前置审批部门后回复无需办理的,需按照格式注明:咨询单位(前置审批主管部门名称) ,电话***,回复无需办理前置审批。(内容主管部门、咨询电话信息,仅供参考,以实际情况为准 咨询部门:湖南省新闻出版局、省电影局 咨询电话:根据用户所在地自助查询) 主体备案证件OR主办单位证件 湖南涉及前置审批关键词-涉及教育、培训等关键字 小程序名称、服务内容不涉及前置审批,仅经营范围涉及前置审批关键字,需要备注说明小程序实际从事内容,并需要用户咨询相关前置审批部门后回复无需办理的,需按照格式注明:咨询单位(前置审批主管部门名称) ,电话***,回复无需办理前置审批。(内容主管部门、咨询电话信息,仅供参考,以实际情况为准 咨询部门:当地教育主管部门 咨询电话:根据所在地自助查询) 主体备案证件OR主办单位证件 湖南涉及前置审批关键词-涉及文化前置审批关键字 小程序名称、服务内容不涉及前置审批,仅经营范围涉及前置审批关键字,需要备注说明小程序实际从事内容,并需要用户咨询相关前警审批部门后回复无需办理的,需按照格式注明:咨询单位(前置审批主管部门名称) ,电话***,回复无需办理前置审批(内容主管部门、咨询电话信息,仅供参考,以实际情况为准。 咨询部门:湖南省文化和旅游厅咨询电话:0731-82213010) 主体备案证件OR主办单位证件 湖南涉及前置审批关键词-涉及金融前置审批关键字 小程序名称、服务内容不涉及前置审批,仅经营范围涉及前置审批关键字,需要备注说明小程序实际从事内容,并需要用户咨询相关前置审批部门后回复无需办理的,需按照格式注明:咨询****单位(前置审批主管部门名称),电话*****,回复无需办理前置审批。 (内容主管部门、咨询电话信息,仅供参考,以实际情况为准 咨询部门:当地金融局 咨询电话:根据所在地自助查询) 主体类型 主体 性质选择错误 你的主体性质选择错误.请根据你提供的证件选择正确的主体性质。 主体类型 主体性质选择错误 你的主体性质选择错误,请根据你提供的证件选择正确的主体性质。 主体补充材料 你提供的补充材料不符合要求 你提供的补充材料不符合要求,请确保你提供的补充材料清晰完整,内容与实际情况相符(包括但不限于材料内容、法人签字、盖章、写日期等信息均符合正常逻辑,且有效期不小于60天)注:如涉及到需要勾选的地方,请根据订单中实际情况勾选,不勾、错勾均不可以。 主体补充材料 补充材料上传位置错误 请将该材料上传至小程序 其他补充材料接口。 主体负责人应急联系方式 应急联系方式不符合要求-天津政企要求:一、应急联系方式需为本单位员工,二、应急联系方式需按要求备注 应急联系方式需为本单位员工,且需要在小程序备注中备注:应急联系电话手机号使用人为XXX公司员工XXX。 主体负责人有效证件类型 主体负责人信息真实性核验不通过-负责人证件号码 不能为其他主体备案过 请提供未备案过的主体负责人信息 主体负责人有效证件类型 负责人证件号码不能为其他主体备案过 请提供末备案过的主体负责人信息。 主体负责人证件 水印遮挡有效字体 或水印内容有误 请上传清晰完、不遮挡关键信息/图像边角齐全、在有效期内的主体负责人有效证件;且水印内容与小程序备案有关。 主体负责人证件 证件不能添加水印/公章 订单中的图片必须为彩色原件拍照件或彩色扫描件,请勿添加水印或公章,请修改后重新提交。 主体负责人证件 请负责人提供补充材料 请主体负责人提交在本单位缴纳至少3个月的社保证明或本行政区域内的居住证。 主办单位名称 主办单位证件涉及前置或专项审批-广东单位名称涉及金融关键字 1、请优先提供金融办等金融监管部门的批文。2、如果确认无法拿不到的金融文件的,需提供一份情况说明书,内容必须写清楚“咨询单位、部门、电话,接电人的答复和态度是什么,以及介绍公司是做什么的,并承诺不利用互联网从事金融服务,不做网贷,不做P2P”等,如果违反需承担关闭小程序、注销备案、主体进入黑名单处罚。 3、法人手写签字或签名章(尽量正楷)、盖单位公章、写日期并上传在主体其他补充材料。 主办单位名称 备案主体涉及特殊关键字-广东涉及非学科类校外培训需提供承诺书 承诺书内容需包含:1)写清楚小程序具体从事内容是什么,并承诺不涉及学科类校外培训活动等。2)单独起一段(文字不得修改):我单位/公司(按实际情况选择不能都保留)承诺末经教育部门批准不从事学科类校外培训活动,如有违背接受被注销备案、关停小程序等处理措施。3)公司落款,加盖公司公章、日期 注:承诺书需上传至小程序其他补充材料接口。 主办单位名称 备案主体涉及特殊关键字-经营范围涉及“电影、电视”关键字 经营范围涉及“电影、电视”关键字请提供《不涉及电影电视情况说明书》,并上传至小程序补充材料接口。承诺内容应包含小程序实际经营内容与用途,并承诺实际不涉及电影、电视节目、影视制作等需主管部门前置审批的相关内容;承诺书须有单位法定代表人签字,加盖公司公章,日期,方视为有效。 主办单位名称 备案主体涉及特殊关键字-经营范围涉及”金融“关键字 经营范围涉及“金融”关键字请提供《不涉及金融情况说明书》,并上传至小程序补充材料接口。承诺内容应包含: 小程序实际经营内容xxxxx与用途xxxxxx,并承诺实际不涉及互联网金融等需主管部门前置审批的相关内容:承诺书须有单位法定代表人签字 ,加盖公司公章,日期方视为有效。 主办单位名称 经营范围涉及“教育”关键字 经营范围涉及“教育”关键字请提供《不涉及教育情况说明书》,并上传至小程序补充材料接口。承诺内容应包含:小程序实际经营内容xxxxx与用途xxxxxx,并承诺实际不步及学科培训、校外培训等需主管部门前置审批的相关内容;承诺书须有单位法定代表人签字,加盖公司公章,日期,方视为有效。 主办单位名称 经营范围涉及“文化”关键字 经营范围涉及“文化”关键字如小程序涉及请配合提供前置审批文件,如不涉及请提供《不涉及文化情况说明书》,并上传至小程序补充材料接口。承诺内容应包含:小程序实际经营内容与用途,并承诺实际不涉及网络文化等需主管部门前置审批的相关内容: 承诺书须有单位法定代表人签字,加盖公司公章,日期,方视为有效。 主办单位名称 经营范围涉及”药品和医疗器械“关键字 经营范围涉及”药品和医疗器械“关键字请提供《不涉及药品和医疗器械情况说明书》,并上传至小程序补充材料接口。承诺内容应包含:小程序实际经营内容xxxxx与用途xxxxxx,并承诺实际不涉及药品、医疗器械等需主管部门前置审批的相关内容;承诺书须有单位法定代表人签字,加盖公司公章日期,方视为有效。 主办单位证件类型 主体证 件类型选择错误 请将主体证件类型修改为和主体证件一致。 主办单位通信地址 主办单位通讯地址不详细 通讯地址需精确到具体的门牌号,例如:xx省xx市xxx县xx路xx号xx号楼xx单元xx室,且不能使用特殊符号(如:2#楼2-3-301),如果已经是最详细的地址,无门牌号的,请在主体备注中说明“通信地址已为最详细”。 人脸核身 活体核验照片衣着不符合要求 请小程序负责人在纯白色背景下(如白色墙体)拍摄,注意背景无杂物、露出清晰的五官和双肩、表情自然、穿着正常应季服装等。 其他 小程序主办者冲突 小程序主办者冲突,修改建议:请核实您在核实已备案成功的信息已当前填写的备案信息否一致后在平台重新提交报备申请。 其他 身份验证未通过 请确保订单中小程序负责人的身份证必须为最新,请修改后重新提交;如确认订单中的身份证均为最新,请配合按照以下流程操作:1、下载CTID APP并使用nfc读卡方式开通网证,然后重新提交订单即可 2、重新提交后仍因此问题多次被退回的,建议咨询证件对应部门。 前置审批材料 小程序服务内容涉及前置审批-四川、广东、上海涉及视频、短剧相关前置审批 涉及视频类请提供《信息网络传播视听节目许可证》,前置审批项选择“广播电视节目”,服务类目选择“休闲娱乐-视频”,《信息网络传播视听节目许可证》上传至前置审批位置。 小程序名称 小 程序名称非纯中文 小程序名称非中文时,必须在小程序备注位置写明小程序中文名称及小程序主要服务内容,并在备注中添加“承诺遵守中华人民共和国法律法规”,填写小程序名称的中文注释。 小程序名称 小程序名称/服务内容涉及教育、校外培训等内容 如小程序内容涉及校外培训等内容必须提供对应资质:学科类培训-教育部门审批的证;文旅部门负责文化艺术类培训机构;体育部门负责体育类培训机构;科技部门负责科技类培训机构:请根据你单位涉及的培训内容,提供正确的资质文件,并上传在小程序其他补充材料接口;如小程序实际内容并不涉及,请修改小程序名称服务内容、备注等信息。 小程序名称 小程序名称不符合个人备案 要求 小程序名称涉及企业/单位/商城等非个人性质,请修改为与实际小程序业务有关的名称;如果你是企业小程序,请使用企业证件进行备案。参考指引:https://developers.weixin.qq.com/miniprogram/product/record/receord_category.html 小程序名称 小程序名称与单位名称无关 你的小程序名称与单位名称无关联或涉及其他单位,请将小程序名称修改为与本单位实际情况一致,且具有实际意义,并在小程序备注中详细描述小程序经营内容。 小程序名称 小程序名称与单位经营范围无关 按照管局要求,小程序名称需要与备案主体性质相符合,通过名称可以看出小程序的具体含义,并在小程序备注中详细描述小程序的涉及内容。 小程序名称 小程序名称与单位经营范围无关 你的小程序名称与企业经营范围无关联,请将小程序名称修改为符合企业经营范围,且具有实际意义,并在小程序备注中详细描述小程序经营内容。 小程序名称 小程序名称涉及前置审批-福建小程序名称涉及剧本杀 小程序名称或备注涉及剧本杀,请提供属地文旅部门下发的备案文件;如不涉及请修改小程序名称或备注。 小程序名称 小程序名称涉及前置审批内容 小程序名称涉及前置审批/专项审批相关关键字(新闻/金融/宗教/医疗器械/网约车/校外培训/广播电影电视节目/文化/出版等),请上传对应前置审批资质;若实际不涉及,请修改为不涉及前置审批关键字的名称。 小程序名称 小程序名称重复 同一个主体下,该App,小程序或快应用上报的名称已存在或已提交备案申请,请勿重复报备;请修改后重新提交。 小程序名称 小程序备案个数较多-备案小程序较多 请配合提供《情况说明书》,内容需包含小程序实际经营内容、承诺“遵守互联网信息服务相关法律法规和行政管理规定,按照备案项目范围提供互联网信息服务,不发布未经许可和法律法规禁止发布的信息”,并法人签字、加盖公司公章写日期,上传至小程序其他材料接口。 小程序名称 非国家级单位小程序命名不符合要求 非国家级单位,不得以中国、中华中央、人民、人大、国家等字头命名。 小程序备注 个人小程序备注不符合要求 小程序备注不符合个人性质,不能涉及企业或经营性等情况,请修改为符合个人性质的备注或删减备注。 小程序备注 四川不涉及前置审批备注要求 小程序主要从事内容为******,承诺不涉及*****等前置审批内容。 小程序备注 小程序不涉及前置审批备注要求-不涉及前置审批备注要求 请补充填写备注,格式参考:“小程序主要从事内容为*******,承诺不涉及*****等前置审批内容” (注:切勿一句话描述为公司旗下产品或公司项目等无实际意义的内容) 小程序备注 小程序名称/小程序服务内容不符合主体性质 小程序名称或小程序服务内容与你当前备案的主体性质不相符,请在备注中详细描述具体含义及小程序后期从事的内容。 小程序备注 小程序备注不符合要求 小程序备注不符合要求,请修改或删减备注。 小程序备注 小程序备注与企业性质不符合 小程序从事业务必须依照营业执照经营范围来开展,不得超范围经营(且不能照抄经营范围填写在备注中,切勿涉及烟草、危化品等不能互联网经营的业务),请详细描述小程序实际从事内容,修改后重新提交。 小程序备注 河南小程序备注 请务必清晰备注小程序实际经营内容。(注:切勿一句话描述为公司旗下产品或公司项目等无实际意义的内容) 小程序补充材料 你提供的补充材料不符合要求 你提供的补充材料不符合要求,请确保你提供的补充材料清晰完整目在有效期内。 小程序负责人姓名 小程序负责人必须为法人 根据管局要求,小程序负责人须为单位的法定代表人,请将小程序负责人信息修改为单位法定代表人的信息。 小程序负责人手机号码 小程序负责人联系方式不能为其他主体备案过 该手机号码已被其他主办单位备案使用,且与你的信息不一致,请提供小程序负责人使用的、未备案过的有效手机号码。 小程序负责人手机号码 手机号码无人接听 请在订单审核期间保持电话畅通并注意接听电话,审核员需与你电话沟通核实备案信息有关情况。 小程序负责人有效证件号码 小程序负责人证件号码不能为其他主体备案过 请提供未备案过的小程序负责人信息,建议本单位/公司具体负责小程序管理、小程序维护的相关人员。 小程序负责人有效证件号码 小程序负责人证件号码不能为其他主体备案过 请提供未备案过的小程序负责人信息,建议本单位/公司具体负责小程序管理、小程序维护的相关人员。 小程序负责人法人授权书 上海小程序负责人授权书不符合要求 请使用上海小程序负责人授权书模板,小程序负责人授权书内容填写与实际负责人信息一致,授权书内容清晰完整,并且需要法人手写签字(尽量正楷)、公章清晰完整、填写日期。授权模板下载链接:https://developers.weixin.qq.com/miniprogram/product/record_material.html 小程序负责人法人授权书 小程序负责人授权书不符合要求 请确保小程序负责人授权书内容填写与实际负责人信息致,授权书内容清晰完整,并且需要法人手写签字(尽量正楷)、公章清晰完整、填写日期。 小程序负责人法人授权书 授权书内容不符合要求-小程序负责人授权书日期不符合要求 授权书必须填写日期,且有效期不小于60天。 小程序负责人电子邮箱 小程序负责人电子邮件不能为其他主体备案过 该手机号码已被其他主办单位备案使用,且与你的信息不一致,请提供小程序负责人使用的、未备案过的电子邮件。 小程序负责人证件 小程序负责人年龄不符合要求 小程序负责人年龄不符合要求(男不大于60周岁,女不大于55周岁),请修改负责人后重新提交。 小程序负责人证件 负责人证件非最新 请确保订单中的身份证必须为最新,请修改后重新提交请上传最新的负责人有效证件。 承诺书 互联网信息服务备案承诺书不符合企业要求 按照属地管局要求,请正确填写承诺书模板信息,请法人签字,并保持正楷签字、使用备案主体公章且清晰、如实写明日期(有效期不小于60天)内容清晰完整。(注:如个体工商户和无公章,需写身份证号、按手印,并需要在主体备注“个体工商户无公章”)(承诺书模板下载链接:https://developers.weixin.qq.com/miniprogram/product/record_material.html) 服务内容类型 小程序服务内容 不符合企业性质 请修改服务内容符合企业性质,需在你单位营业范围内开展工作;参考指引:https://developers.weixin.qq.com/miniprogram/product/record/receord_category.html 服务内容类型 小程序服务内容不符合个人性质 请修改服务内容符合个人性质,或者使用企业证件进行备案;参考指引:https://developers.weixin.qq.com/miniprogram/product/record/receord_category.html 服务内容类型 小程序服务内容不符合企业性质 请修改服务内容符合企业性质需在你单位营业范围内开展工作。 服务内容类型 小程序服务内容不符合企业性质 请修改服务内容符合企业性质,需在你单位营业范围内开展工作;参考指引:https://developers.weixin.qq.com/miniprogram/product/record/receord_category.html 服务内容类型 小程序服务内容选择错误 请根据小程序实际从事内容选择正确的小程序服务内容。 法人授权书 授权书内容不符合要求-主体负责人授权书日期不符合要求 授权书必须填写日期,且有效期不小于60天。 法人授权书 授权书模板不符合要求 你提供的授权书模板不符合要求,请提供符合要求的模板,模板请参考:https://developers.weixin.qq.com/miniprogram/product/record_material.html - 小程序主办者冲突 放弃备案并重提,修改备案类型为新增小程序或无主体新增小程序。 - 其他-身份验证未通过 请确保订单中的主体负责人身份证有效期必须为最新,请修改后重新提交;如确认订单中的身份证均为最新,请配合按照以下流程操作: 1、下载CTID APP并使用nfc读卡方式开通网证,录制网证视频留存,然后重新提交订单;2、重新提交后仍因此问题多次被退回的,将视频发给前端客服,位置小程序发布流程-小程序信息/程序类目 – 查询详情 联系客服按钮。 - 单位名称或证件类型及证件号码与已备案信息不一致 你本次申请备案的主体在工信部备案系统已有备案信息,且与微信平台提交的主体证件信息(单位名称或证件类型及号码)不一致,导致工信部备案系统校验冲突。需要你返回原接入商平台核实后变更主体备案信息,确认与微信平台提交的主体证件信息(单位名称、证件类型、证件号码)保持一致后,重新在微信平台提交小程序备案申请。 - 同一主体同一时间不能有多个流程中的备案 你的主体在其他平台(或接入商)已有等待管局审核中的首次备案申请(示例:当前你的主体有网站APP或小程序正在等待管局审核中),故需要退回当前备案订单待管局审核通过获得主体备案号后,重新在微信平台提交备案申请。 - 同一主体同一时间不能有多个流程中的备案 管局系统驳回:网站主办者冲突(主办者名称或证件类型及号码),请核实后再次报备。修改意见:同一主体同一时间不能有多个流程中的备案,建议放弃当前订单,待你流程中其他订单管局审核有结果了之后,再提交当前订单。 - 备案主体冲突 订单提交失败,请核实你单位是否已取得备案号,并确认之前备案信息是否为最新,如信息不一致,请至原接入商将备案信息变更为最新信息之后,待管局审核通过,再来提交当前订单。 - 小程序主办者冲突 你的主体证件已经在其他平台备案,不能同时在微信平台提交首次备案,请核实后在平台重新提交报备申请。 - 短信核验未通过(自动驳回) 你的订单未完成工信部的短信验证,已被管局系统驳回;请重新提交订单后,在收到工信部系统下发短信验证码的24小时内,按照短信提示的流程进行短信验证。 - 系统校验备案类型错误 您单位之前备案成功过两个网站,您此次订单理应是无主体新增备案,然而您的订单是首次备案,这是系统校验错误,请重新提交订单让系统重新校验正确就好。非常不好意思,请系统又未校验正确,麻烦您再次提交。 - 身份证校验未通过 请确保订单中的身份证必须为最新,请修改后重新提交。 - 其他 根据《中华人民共和国网络安全法》中落实网络实名制要求,请提交法定代表人或者网站负责人在本单位缴纳至少3个月的的社保证明或本行政区域内居住证。 - 其他 主体负责人证件与系统信息不一致。 - 其他 主办单位名称/经营范围涉及前置审批;请核实是否从事相关互联网前置审批服务业务,如从事请出具前置审批文件,如不从事需详细备注。 - 其他 已开通网站打开为违规站,请关闭。 - 其他 请提供相应建站依据。 - 其他 调用公安身份证接口核验证件真实性未通过未通过信息为服务负责人xx:(请确定是不是最新的身份证)。 - 其他 同一个主体下,该App,小程序或快应用上报的名称已存在或已提交备案申请,请勿重复报备。 - 其他 企业名称或申报的小程序服务内容或涉及“游戏”,根据《互联网信息服务管理办法》《网络出版服务管理规定》,请如实填写服务内容并在前置审批栏上传许可文件,如不涉及,请正确选择小程序服务内容并提交小程序服务内容不涉及相关前置审批的情况说明,情况说明需加盖公章。 - 其他 单位名称、经营范围、涉及金融关键词的必须提供金融审批文件,暂时不支持写承诺书。 - 其他 主办单位通用信息地址填写的与实际不符。 - 其他 管局驳回原因:(1003)网站主办者冲突-单位名称或证件类型及证件号码与已备家信息不一致,修改建议:你本次申请备案的主体在工信部备案系统已有备案信息,且与微信平台提交的主体证件信息(单位名称或证件类型及号码)不一致,导致工信部备案系统校验冲突。需要你返回原接入商平台核实后变更主体备案信息,确认与微信平台提交的主体证件信息(单位名称、证件类型、证件号码)保持一致后,重新在微信平台提交小程序备案申请。请查看原接入商中填写的主体证件类型是不是:民办非企业单位主体证件号码,注意大小写是否一致。 备注:不同地区备案要求不完全一致,排序不分先后,以上数据来源于开放社区仅供参考,如有新增驳回原因可以留言补充。
03-05 - 我这mpvue的demo页的列表,咋就总不出来呢?真相原来是。。。
问题原帖: https://developers.weixin.qq.com/community/develop/doc/0004a24a948a40e3cda937c9657000 第一步,下载这位同学的代码到本地,然后npm install -> npm run dev -> 开发者工具导入项目 [图片] 这代码写的也没毛病啊,接着查看组件List的代码 [图片] 这也写的没毛病,真奇怪。 接着我新建了一个项目,执行vue create binnie-app, 然后编写相同的代码,运行之后可以显示列表,猜测mpvue可以是对list做处理了, 然后我把mpvue项目的importList 改成了 KList, 竟然能显示了,肯定是保留关键字了。最后搜索mpvue常见问题发现list果然在保留关键字中。 链接:http://mpvue.com/qa.html 总结:没用过mpvue的我,碰见这个问题,差点以为自己不会vue了。在这里建议大家用框架前,先查一下有什么常见问题或坑。 推荐使用binnie小姐姐同款的kbone(Web 与小程序同构解决方案) kbone参考文章: https://developers.weixin.qq.com/community/develop/article/doc/00020a7c280268018ea91fc3c51013 https://developers.weixin.qq.com/community/develop/article/doc/0008424ea884e83b47895f5c45b813
2019-12-29 - super 码农 copy 2
最近有不少同学不会写某个功能,在社区里发帖要代码的,还请大家先思考一下,发帖子的时候请带上自己的思路,而不是直接要代码,多思考对自己有帮助。 所谓没吃过猪肉,也得要见过猪跑啊。虽然今年猪肉特别贵。 言归正传,刚接触开发的同学,先学会百度,绝大部分碰到的问题或者要开发的功能,别人都碰到过,也做过。 比如服务号消息配置,大家碰到的token验证失败,access_token访问超限这些,github、码云上面都有封装好的代码,开箱即用。初次接触服务号开发,坑会很多,很浪费时间。 开发越久,头发越少,且行且珍惜。 [图片] 示例代码链接:https://developers.weixin.qq.com/s/zlh6FBmb7qbb 参考项目:https://github.com/Binaryify/vue-tetris ps: 大自然的搬运工。 我于杀戮之中盛放,一如黎明中的花朵。
2019-09-23 - 如何接入微信公众平台开发
在微信开放社区发现了不少同学都卡在token验证失败了,很多都是代码写的有问题,本人没碰到过代码写对还失败的 ---- 本文只介绍验证服务器地址,其它功能不做描述。---- 接入概述 接入微信公众平台开发,开发者需要按照如下步骤完成: 填写服务器配置(不做描述) 验证服务器地址的有效性 依据接口文档实现业务逻辑(不做描述) 校验规则: 将token、timestamp、nonce三个参数进行字典序排序 将三个参数字符串拼接成一个字符串进行sha1加密 开发者获得加密后的字符串可与signature对比,标识该请求来源于微信 详细文档链接,请参考:https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Access_Overview.html 校验规则很简单,照着规则来就行了。 项目都是本地的,服务器URL需要外网80端口,所以用了natapp或者花生壳,具体怎么使用百度一下就可以了。 写了两个版本的java、nodejs,问题大多数都是java同学。为了方便演示没有提取工具类,token也是没有写在配置文件中,仅供参考。 java spring boot示例代码 修改application.yml [代码]server.port=80[代码] [图片] nodejs egg示例代码 修改config.default.js [代码]config.cluster = { listen: { path: "", port: 80, hostname: "" } }[代码] port改成80端口 egg https://eggjs.org/zh-cn/intro/quickstart.html [图片] 代码经过验证的,都是可以通过token验证的,有问题还没解决或者准备接入认证同学,可以参考一下代码,少走弯路 补充:golang版本 [图片] © 2019 BINNIE 吉祥 严禁做笔记
2019-12-31 - got请求出现incorrect header check的解决方案
云开发确实简单,但是对于没有基础的同学,直接上手,报个错会摸不到头脑 我也是第一次碰见这个错误,直接帮其它社区的同学回答的时候,我是回复的是使用 request 库。今天研究一下 如何排查问题: 遇到该报错,先在社区查查有没有相同的问题,没有的话,去github上找找,在issues搜索框里搜索,果然有这个错误。添加decompress: false,问题得到解决。 自己碰到的问题,基本上别人也碰见过,如果别人也没碰见过,那就是疑难杂症了。 github issues : https://github.com/sindresorhus/got/issues/677 社区相关帖子:https://developers.weixin.qq.com/community/develop/doc/00042a44bf0a28f52ae98b15151400?jumpto=reply&parent_commentid=000ac852e084a05620e9fe228518&commentid=000ca69333cba00030e95c1b55b0 [图片] [图片]
2020-02-10 - 小程序备案每天都上限导致无法备案,每天早上九点半就上限了?
[图片] 为什么小程序备案每天都显示“当然备案小程序数量已超出系统限制,请明天重试”一天从早到晚有空就刷新从来没能进到备案入口,请问各位怎么解决这个问题,是bug嘛,但刚提交完资质的小程序却可以直接进行备案,之前提交完资质的都是这种情况
2023-09-20 - 添加页面安全水印
背景 小程序需要做一个内部工具,但敏感信息为了防止工作人员随意截屏转发,需要在页面添加水印标识员工工号 实现 wxml: [代码]<view class="watermark"> <block wx:for="{{30}}"> <view class="watermark-row"> <span class="watermark-col" wx:for="{{5}}">{{userId}}</span> </view> </block> </view> [代码] css: [代码].watermark { position: fixed; width: 200vw; height: 150vh; top: -20vw; left: -50vw; color: gray; font-size: 14px; opacity: 0.1; z-index: 1000000; // 放在顶层 pointer-events: none; // 点击穿透,不影响页面交互 transform: rotate(-20deg); // 水印倾斜角度 } .watermark-col { display: inline-block; padding: 50rpx 40rpx; } .watermark-row { white-space: nowrap; } .watermark-row:nth-child(2n+1) { transform: translateX(10%); // 奇偶数行水印错开 } [代码] 效果 [图片] TIPS 可以封装成组件在需要的页面引用
2023-09-12 - 不是 客户地址疫情管控 发不了货 还要封号?
不是 客户地址疫情管控 发不了货 还要封号?
2022-12-26 - 商家转账到零钱规则改版解读
老规矩,看完记得点赞+收藏 一、重大利好 1.1 原收款用户账户限制功能下线 即取消原有单个用户单日付款10次次数限制,改为单日向单用户最高可转2万元(不可提高),收款次数无限制 图为原收款用户账户限制功能 [图片] 1.2 由原单笔最低付款限额0.3元调整至最低单笔付款限额为0.1元,一个字:“省钱”! [图片] 1.3 取消原开通90/30天限制,改为按场景提交申请 [图片] [图片] [图片] 二、用户侧主要改动 总结就一点:当商家单笔转账给用户金额<0.3元时,转账到账通知为简化版消息 [图片] 三、商家侧主要改动 3.1 api改动 3.1.1 发起商家转账接口新增transfer_scene_id字段,用于指定该笔转账使用的转账场景ID,场景ID在商家转账开通后可以获取到,新规则生效后开通“商家转账”产品功能该字段必传,规则前开通“商家转账”产品功能暂时不强制传该参数,建议还是去商户后台及时添加付款场景避免后续变动对自身业务带来影响 [图片] 3.1.3 单个批次转账的明细数量提升至最多支持1000笔,建议对数据进行兼容,避免后台页面发放后通过API拉取信息时出现报错 3.2 业务侧改动 3.2.1 取消原有统一的单笔、单用户付款额度与次数限制,新增以用户转账的不同场景维度对应不同的单笔、单日限额,单个商户号最多可申请添加三个使用场景 [图片] 3.2.2 单笔付款最低金额由原0.3元/笔调降为0.1元/笔 注意:小于0.3元的付款单不支持实名校验及申请电子回单 [图片] 3.2.3 商户号默认单日最高转账额度为10万元,自主申请最高可调整至100万元;商户号单日向单用户最高转账额度为2万元,不再支持提高。 注:提升额度需要先提升账户安全等级,可在账户中心->安全中心进行操作 [图片] 3.2.4 转账给员工与转账给合作伙伴场景需要在商户平台->「商家转账到零钱」添加收款用户openid及姓名,仅可向列表中已添加且姓名一致性校验通过的用户转账。 注意:若不添加或实名不通过,则无法转账成功。商户在进行转账以及转账校验前,应确保所收集及传输的第三方信息已合法获得用户授权。 [图片] 3.2.5 商家转账提供了全新升级的安全防控体系,商户可以针对付款出资验密确认、付款资金专款专用(基本账户收款,运营账户出资),满足合规及安全需求 注意:当前每日付款出资验密确认只可以下发50次,针对小额高频及夜间出款等情况可设置合理的免密额度,设置后在免密额度内的无需确认即可出资。请谨慎选择提高免密金额,在免密金额内仍有可能因平台安全监测发起验密,转账后需留意验密消息。 3.2.6 开通要求 暂时不支持小微商户、个体工商户 商户号历史无风险行为 开通环节需提交转账场景证明资料,并签订转账场景真实性承诺函 3.2.7 账单查询调整 支持下载5年内账单,支持下载2年内电子回单。业务账单格式优化(如下图)。 [图片][图片] 四、其他问题 4.1 申请开通描述写的很详细为什么还会一直被驳回? 你所认为写的详细≠满足业务审核所要求的“详细”,大概率你写的是一堆废话 可以参考页面示例根据自己业务场景进行详细描述 转账场景与实际业务场景不匹配 所提供业务场景无法核实 4.2 无法通过基本账户出资以后,如何实现自动向运营账户充值? 在产品中心开通「转账充值」产品,开通后可以得到一个与主体同名的银行卡号,然后使用银行的自动划拨或者定期付款产品,配置对应规则转账到该账户即可,对应功能不同银行产品叫法不同,具体可咨询自己开户银行是否支持该业务 看到这里,你不扫个码? [图片]
2022-12-05 - 【公众号账号迁移】转移过来的新用户是否会给我们推送关注事件?
请问转移过来的新用户是否会给我们服务端推送关注事件呢
2022-07-14 - 还在为开发调试头疼?来来来,这里有一份微信支付APIv3脚本,真金白银开源了!
脚本名称: Name:微信支付 APIv3 脚本说明: 本脚本是基于 微信支付 APIv3 的 Postman请求前置脚本(Pre-Request Script)进行完善,补充了微信支付普通商户所有已知公开接口,每个接口请求预置了请求参数示例与请求成功返回的参数示例,帮助商户开发者、测试人员以及小白用户也可以快速上手。 仅修改原脚本变量为常用叫法,无其他修改部分: merchantId->mchid merchantSerialNo->merchant_serial_no merchantPrivateKey->apiclient_key.pem 使用前提条件 postman,建议注册一个账户,便于使用它各种功能,例如同步。 有一个微信支付商户号,支持微信支付直连普通商户、微信支付直连特约商户,不支持微信二级子商户。 商户 API 私钥与商户证书序列号:商户API私钥是在商家平台申请商户API证书时,会生成商户私钥,并保存在本地证书文件夹的文件 apiclient_key.pem 中,商户商户序列号可在商家平台->账户中心->API安全->管理API证书查询到。 快速开始 1、使用Fork 方式导入脚本 1.1、点击[图片]进入向导,如下图所示。 [图片] 1.2:点击 Fork Collection 进入下一步,填入标签 Fork Label 并选择目的工作台 Workspace。一般情况下,导入个人工作台 My Workspace 即可。 如未登录账户,会跳转到账户登录页面,如无账户建议先去注册一个 [图片] 1.3点击 Fork Collection 完成导入。在你指定的 workspace 中可以看到《微信支付 APIv3》了。 [图片] 2、配置Environment 环境(Environment) 是一组变量 (Varibles) 的集合。 脚本从环境中读取变量,用来计算请求的签名。 你可以从《微信支付 APIv3》提供的 商户参数模版 中 fork 一个空环境到自己的工作台。 [图片] 接下来,在你工作台的 Enviroments 中找到新建的环境,点击 Add a new varialbe 添加新的变量: 变量名 是否必填 描述 备注 server_url 必填 微信支付接口域名 固定值:https://api.mch.weixin.qq.com mchid 必填 微信支付商户号 纯数字 merchant_serial_no 必填 商户 API 证书序列号 apiclient_key.pem 必填 PEM 格式的商户 API 私钥 以 -----BEGIN PRIVATE KEY----- 开始的 PEM 格式的商户 API 私钥。 appid 必填 用于微信支付接口请求中的APPID APPID需要与填写的mchid有绑定关系 openid 选填 用于微信支付接口请求中的openid 如不配置全局变量,请求时需要将参数中的变量openid替换为实际openid值 一组常见配置如下图所示: [图片] 3、发送测试请求 此处建议,使用桌面版 Postman app 发送请求,速度更快,体验更好! 现在回到工作台的请求构造界面,填入请求方法、URL、请求参数、Body 等参数。 工作台预置了微信支付普通商户所有请求样例供开发者参考,开发者也可以参考请求样例,构造自己的请求。 最后,选择你之前配置的 Environment,再点击地址栏右侧的Send按钮,发送请求。 [图片] 常见问题 1、发送请求时遇到错误提示“Error: Too few bytes to parse DER.”或者“Too few bytes to read ASN.1 value.” A:通常是环境 Environments 里配置的变量 merchantPrivateKey 填写有误导致的。脚本接收的私钥,以 -----BEGIN PRIVATEKEY----- 开始,以 -----END PRIVATE KEY----- 结束的一串字符串。 2、为什么我发送请求很慢? A:如果你使用的网页版 Postman,请使用桌面版 Postman app。因为浏览器中跨域资源共享(CORS)的限制,网页版发送请求是由 Postman 后台中转的。 WeChatPay Developers QQ Group ID:684379275
2022-11-08 - 视频号小店-常见问题汇总
一、视频号小店是什么? 1.1 视频号小店是什么?● 视频号小店是微信视频号团队为商家提供商品信息展示、商品交易等产品能力的技术服务,全方位支持商家在视频号场景内开店经营。 二、如何开通视频号小店?2.1 开通流程包括哪些?● 「视频号小店开店」—「选择企业/个体工商户类型」 —「完成开张任务」—「开店成功」 ● 详情开通流程【视频号小店教程】企业&个体工商户 - 开店指引(对外)点击查看。 2.2 没有营业执照可以开通视频号小店吗?● 目前视频号小店系统仅支持企业&个体户申请资质入驻,故营业执照是必须提交的资质材料。 2.3 开通视频号小店有数量限制吗?● 一个视频号只能申请一个视频号小店。 2.4 视频号小店支持注销吗? ● 开店完成后暂不支持注销,开店完成前可以注销。 三、如何登陆视频号小店?3.1 视频号小店怎么登陆? ● 「电脑浏览器打开https://channels.weixin.qq.com/shop 」> 「打开微信」> 「扫码二维码」 3.2 可以支持手机登陆视频号小店管理后台吗?● 已实现双端互通,支持网页端、移动端登陆及管理。 3.3 谁可以扫码登陆视频号小店?● 注册视频号小店的微信号、超级管理员、添加的其他管理人员。 四、开店任务常见问题4.1 主体信息4.1.1 营业执照信息审核不通过怎么办?● 请根据营业执照驳回原因,仔细核对填写的相关信息是否准确。保证:营业执照证书未过期、清晰可见。 ● 一个营业执照支持开5家店铺,超过该数量会驳回。 4.1.2 商户简称怎么填?● 商户简称会在支付完成页向买家展示,填写商户名称即可。 4.2 超级管理员信息4.2.1 超级管理员要填谁?● 超级管理员信息需要填写注册微信号时的身份信息。 ● 视频号小店超级管理员和视频号管理员也必须是同一个人。 4.2.2 超级管理员可以更换吗?● 视频号小店已上线更换超级管理员的功能,按照路径可以进行更换新的超级管理员,原管理员的帐号会与小店解除绑定关系,谢谢。 路径: 登录视频号小店后台-店铺管理-基础信息-小店超级管理员-右上角修改。 4.2.3 填写超级管理员的时候要注意什么?● 填写超级管理员信息时,务必注意填写真实姓名、身份证号,否则无法完成校验。 4.2.4 视频号小店可以多人管理吗?怎么进行多人管理?● 企业店支持多人管理。在“店铺管理-成员管理”中,添加岗位和关联成员即可,可以添加不同岗位,设置岗位权限。 4.3 验证账户4.3.1 怎么验证账户?● 验证账户有两种方法,任选其一即可。 (1)法人验证:使用法人微信号扫描二维码即可验证成功。 (2)汇款验证:根据页面提示小额打款至指定账户,验证成功后,打款金额会原路退回。 4.3.2 验证账户有有效期吗?● 若30天内一直未完成验证,将自动驳回申请单。若未超过30天,申请单被审核驳回,可再次提交申请单,完成账户验证流程。 4.4 店铺运营4.4.1 视频号小店后台怎么使用?● 视频号小店店铺运营详情可以查看:【视频号小店教程】企业&个体工商户 - 店铺运营(对外) 4.5 商户号 4.5.1 注册视频号小店是否需要新开一个商户号?能否绑定原有的微信小商店的商户号? ● 需要新开一个新的商户号。 五、视频号小店怎么申请类目资质?5.1 类目资质要求及申请指引5.1.1 开放类目范围共开放超过2000个类目,一级类目包括:宠物生活、厨具、家用电器、手机通讯、数码、电脑&办公、服饰内衣、鞋靴、个人护理、母婴、美妆护肤、家纺、家居日用、家具、家庭清洁&纸品、家装建材、工业品、汽车用品、玩具乐器、运动户外、箱包皮具、酒类、食品饮料、钟表、农资园艺、生鲜、二手、生活服务、图书、艺术品、教育培训。 详细类目开放范围请点击链接查看:开放类目公告 5.1.2 类目资质要求详情请查看【视频号橱窗】管理规则合集(可对外) 中 3.1 店铺与类目开放板块的规则。 5.1.3 类目资质申请指引详细类目资质申请指引请查看: 视频号小店-商家指南-「类目资质」开通指引(对外) 六、视频号小店结算规则 6.1 结算费用 ● 交易手续费以商品实际订单成交金额为基数计算,腾讯目前未收取费用,财付通将按照《微信支付服务协议》收取商品订单实际成交金额0.6%的交易手续费。 6.2 货款结算周期及提现方式● 商家接入微信视频号小店后,将通过财付通提供的微信支付功能开通一个新的微信支付商户号。商家可在商户号后台进行资金管理,也可直接在视频号小店商家后台进行账单查询和资金提现。 详情的结算规则请查看:视频号小店结算规则 七、视频号小店商品如何关联上视频号橱窗? ● 详细流程请点击:如何在视频号的直播和短视频上架视频号小店商品?
2023-02-24 - 就是想问各位开发大佬们视频号不能公众号身份这个更新是暂时的还是永久不再开放了?
各位开发者大佬你们好,我一个公众号运营小白、就是单纯想问一下麻烦开发者大佬如果以后公众号不能在以视频号展现的话公众号该如何发展 ?
2022-07-22 - 小程序联盟账号如何注销?
小程序联盟账号如何注销?后台没有找到任何设置名字 和 注销的地方啊
2022-03-18 - 个人店迁移至企业店功能指引
一、为什么要迁移? 为方便个人主体店铺转变为非个人主体店铺,小商店推出个人店迁移至企业店功能。小商店非个人主体包括个体工商户、企业、事业单位、社会组织等,非个人主体开店所需资料查看营业执照要求。 我们将辅助商家迁移: 店铺信息商品信息运费模版邀请过往的店员、客服以及视频号推广员但订单及资金数据无法迁移,需要在个人店处理。请各位店主提前安排好个人店铺的经营管理工作。 二、怎么进入迁移流程 2.1 方式一:前往小商店助手,登陆你希望迁移的个人店,点击迁移功能。 [图片] 方式二:复制这段文字到微信,发送给文件传输助手即可进入小商店助手,选择一个个人店就可以进入迁移流程 #小程序://小商店助手/6qlw2Hn6JhZlW4f [图片] 2.2 进入迁移介绍页,了解功能详情。如果没有营业执照,可以点击前往服务平台购买工商代办服务,找服务商帮忙办理营业执照。如果有营业执照,点击下方的迁移店铺。 [图片] 2.3 选择企业店并进入下一步,若店铺数量到达上限之后,需要前往shop.weixin.qq.com 注销未完成开店任务的店铺。更多细节,请查看注销指引。 [图片] 2.4 进入企业店,完成开店任务。系统将默认帮助商家迁移原店铺的头像名称,并将原店铺名称改为xxx店铺(已迁移)。如果不希望更改原店铺名称的商家,可以选择重新填写新店铺名称。不知道怎么完成开店任务的商家,可以查看开店指引。 [图片] 2.5 完成开店任务后,系统将自动迁移商品至待上架。如果只修改价格或库存时,将优先审核迁移商品,所以尽量不要修改标题图片等信息。 [图片] 2.6 同时,系统将自动邀请之前个人店的店员、客服以及视频号推广员重新成为新店的成员。各位商家请及时通知之前的成员接受邀请,一起来管理新的店铺 [图片] 更多疑问请点击此链接进行咨询
2022-05-11 - 新版自定义交易组件接入指引(更新售后流程相关内容)
自定义交易组件 本文主要介绍新版自定义交易组件的业务流程及各流程的注意事项,文档篇幅较长,如无需查看完整文档可以使用浏览器自带页面搜索功能进行关键字搜索(快捷键Ctrl+F )。 在开始开发前应确认以下必要前置条件是否完成: 1、开通场景经营商户号; 2、部分接口强制校验来源IP白名单,白名单配置方式: 1)服务商配置方式"点我查看" 2)普通小程序:登录小程序管理后台->开发管理->开发设置->“开发者ID”下的“IP白名单” 3、因视频号场景受控订单无微信支付回调,支付结果等事件是通过小程序消息推送进行下发的,需要登录小程序管理后台后,在「开发」-「开发设置」-「消息推送」中启用并设置消息推送配置,开发者接收到的消息需要解密, 消息加解密说明可在开发文档查询。 1、业务流程图 1.1 关键流程逻辑 [图片] 1.2 售后流程 [图片] 1.3 主要业务变动 [图片] 2、接入流程详细说明 整体接入流程 注:本文2.1-2.2为前置必做流程,完成后才可以进行接口调试 [图片] 2.1 开通自定义交易组件 2.1.1 公众平台后台开通 登录公众平台,点击功能下方的“交易组件”,点击“开通”阅读并同意开通协议后即可进行下一步操作。[图片] 开通后页面如图所示[图片] 2.1.2 接口申请开通 调用接口 “shop/register/apply” 申请开通自定义版交易组件,请求成功后将发送“法务协议确认”到管理员微信,管理员需要在“24小时内”点击该模板消息,并确认服务协议。服务协议签署成功后,开发者可以通过“获取接入状态接口(可点击跳转)”或“”事件回调“进行开通状态判断,若状态为“已开通”,开发者才可以继续调用后续接口进行调试接入。[图片][图片][图片] 2.1.3 自定义交易组件“升级版”跟升级前的自定义交易组件有什么区别,哪些接口需要进行升级? 1.新支付接口,必须走新商户号。 2.取消订单, 小程序(小程序内以及发现-小程序我的订单)和视频号双向可取消,之前只可以在小程序上取消,然后同步给视频号状态。 3.申请退款,小程序和视频号双向可申请退款。 4.申请退货退款,小程序和视频号双向可申请退货退款,之前只有小程序上操作。 5.未付款订单,小程序和视频号 可在各自订单中心重新支付,同步状态。 6.确认收货,小程序和视频号双向可确认收货。 7.同步发货状态接口更新。 2.2 开通场景经营所需商户号 视频号场景下,会通过开通商户号、补齐资料,获得一个新的电商收付通的商户号。商家在视频号内的交易资金流,需要使用这个新商户号。 准备事项:需准备营业执照、法人身份证、商户号超级管理员手机号、邮箱信息 注意事项:小程序超管将作为微信支付商户号的超级管理员,如管理员已离职、管理员曾变更过姓名未在小程序后台更新等情况,将影响商户号的签约,请确认无误后再进行商户号申请。 2.2.1 通过公众平台后台申请 在小程序官方后台自定义交易组件页面,点击商户号申请所对应的“去开通”按钮进入商户号申请页面,共计三部分(不想开商户号了,暂时不放图): 2.2.1.1 填写基础信息 此部分主要为上传营业执照、法人身份证、填写商户号超管信息 2.2.1.2验证账户小额打款/法人验证 此部分会有两种情况,如为“小额打款”验证方式,在页面输入收到的打款金额即可;如为法人验证,需要使用实名认证为法人同名微信扫码进行验证。 2.2.1.3确认账户真实性。 点击“去签署”按钮会展示签约二维码,使用超管微信进行扫码,用于确认经营意愿并签署协议,完成商户号注册。 2.2.2 通过API接口申请 调用“提交支付资质”接口,提交场景经营所需商户号申请,提交成功后,商户申请是没有事件回调的,需要服务商主动调用“状态查询接口”查询申请单进度,申请单状态同“电商收付通二级商户进件申请单状态查询”。此处不做过多描述,有问题可以留言,后续视情况补充更新。 2.2.3 开通场景经营商户常见问题 2.2.3.1 Q:新版交易组件需要重新申请商户号吗?是否可以使用原有商户号? A:不可以,新版交易组件必须要申请开通场景专用商户号 2.2.3.2 Q:新版场景专用商户号费率是多少,是否有优惠,结算周期是多久? A:商户号费率为0.6%,无费率优惠,结算周期为7+7日,即用户收货后7天后结算。 2.2.3.3 Q:申请新商户号时,最后一步签约遇到“微信实名信息与管理员信息不一致”是什么原因? A:申请新的场景专用商户号时,“超级管理员”这一项不支持修改,默认为小程序“超级管理员”实名信息,如需修改,需要为该用户前往成员管理为小程序绑定超级管理员。 2.2.3.4 Q:申请新的商户号时,为什么不能修改主体信息? A:“当前主体”这一项不支持修改,因为商户号主体必须和该小程序注册主体保持一致。 2.2.3.5 Q:通过新版自定义交易组件申请的场景专用商户号是否对跨境类小程序(自助报关)有影响? A:会,二级商户当前暂不支持自助清关接口调用,留意后续更新通知 2.2.3.6 Q:新商户号是否支持分账功能? A:即将支持,敬请期待。 2.3 上传商品并通过审核,完成商品接口调用(仅有API接入方式) 基础流程,不做过多说明,只写流程、常见错误和注意事项 2.3.1 添加商品流程: (1)首先去“获取类目详情”,与自己的系统商品类目相匹配 (2)查看对应类目是否需要行业资质,如果需要,请上传相关资质 (3)“上传相关类目资质”获得对应类目的使用权限 (4)如果商品有品牌,“上传品牌信息”获得品牌的使用权限 (5)调用“添加商品”接口将商品进行上传 2.3.2 SPU接口常见错误及注意事项 2.3.2.1 Q:自定义交易组件提交上传类目资质时报错{“errcode”: 1000009, “errmsg”: “调用的类目id不存在”} A: 调用获取类目详情,看对应““qualification_type"与"product_qualification_type"参数是否为"0”,为"0"无需上传类目资质 2.3.2.2 Q:调用自定义交易组件“添加商品”接口shop/spu/add时报错“该账号客服方式必须包含微信客服/小程序客服” {“errcode”:1040042,“errmsg”:"该账号客服方式必须包含微信客服/小程序客服”} A11:需要在MP后台配置微信客服/小程序客服后,然后通过“更新商家信息”接口更新商家信息 [图片] 调用“获取商家信息”接口应返回一下内容才为成功,“service_agent_type”字段需要同时包含0,1,2三个值 [图片] 2.3.2.3 Q:类目审核成功,但是添加商品报错,{“errcode”:1000005,“errmsg”:"该商品使用了未申请通过的类目,请先申请类目且通过后再提审商品 "} A: 检查是否取消开通过,取消开通会清空品牌类目。对于服务商,可以监听账户接入回调事件,目前只有取消开通回调。 2.3.2.4 Q:调用自定义组件上传图片接口报错{“errcode”:1070001,“errmsg”:"文件/图片为空 "} A25:检查请求报文协议,需[代码]Content-Type: multipart/form-data[代码] 2.4 调试支付校验,完成订单接口调用 2.4.1 支付流程: (1)按照"开发指引"修改基础库配置 (2)在小程序中调用"生成订单"接口生成一笔订单 (3)完成订单的支付(视频号场景需要调用生成支付参数后完成收银台的拉起,其他场景按照已有业务逻辑进行支付) (4)调用"同步订单支付结果"接口同步订单的支付结果(二级商户单无需同步支付结果,系统自动流转订单状态) 注意: 这里两个接口都需要调用,以同步订单结果为最后确认步骤,视频号场景则以支付成功作为最终确认步骤。 基础库拉起收银台接口改造后需要发版才可以生效。 完成接口调用后,点击完成,切换状态。 2.4.2 订单接口接口常见错误及注意事项 2.4.2.1 Q:二级商户号订单支付流程与原有订单支付流程有什么区别? A17:主要区别是:二级商户号订单调起支付所需参数是通过“生成支付参数”获取,无需同步支付结果;原流程调起支付是需要通过微信支付统一下单获取,需要同步支付结果。 2.4.2.2 Q:调用自定义交易组件“创建订单”接口shop/order/add时报错“不支持的发货方式” {“errcode”:1010036,“errmsg”:"不支持的发货方式“} A:视频号场景当前只支持“正常快递”方式,其他请留意后续更新。 2.4.2.3 Q:自定义交易组件申请视频号专用商户号后,唤起支付报错: “商户号该产品权限未开通” A:需要先调用“生成订单”接口,生成订单时将fund_type设为1,然后调用“生成支付参数”接口获取调取支付所需参数,不要调用微信支付统一下单接口获取调用支付参数 2.4.2.4 Q:自定义交易组件二级商户单调起支付时报错“JSAPI缺少参数total_fee” A:生成支付参数失败,没返回正确的预支付 ID,重新调用生成支付参数接口获取新的支付参数即可 2.4.2.5 Q:自定义交易组件调用同步订单支付结果时报错 {“errcode”:990022,“errmsg”:"暂不支持操作“} A:二级商户单无需同步支付结果,付款成功后系统自动流转订单状态并下发支付结果回调事件。 2.5 调试发货接口,完成物流相关接口调用 2.5.1 发货流程 (1)先调用获取快递公司列表接口获取快递公司信息 (2)调用"订单发货"接口,完成发货 2.5.2 发货接口常见错误及注意事项 注意事项: 视频号订单状态流转不可逆的,当finish_all_delivery=0时,订单状态流转到21(部分发货), 当finish_all_delivery=1时,订单状态从20(待发货)/ 21(部分发货)流转到30(待收货),部分发货时finish_all_delivery一定要传0,最后一次发货才可以传1,切记!切记!切记!!! 2.5.2.1 Q:调用自定义交易组件“创建订单”接口shop/order/add时报错“不支持的发货方式” {“errcode”:1010036,“errmsg”:"不支持的发货方式“} A:视频号场景当前只支持“正常快递”方式,其他请留意后续更新。 2.5.2.2 Q:当自定义交易组件订单只存在一个SKU,发货时误操作为部分发货,订单状态码流转为21时,在既不能确认收货、也不能退款的情况下应该如何处理? A:按照截图示例传参,即可完成发货,订单状态由21转为30,订单状态变更后就可以正常流转 注:传参时order_id与out_order_id二选一传参 [图片] 2.6 调试售后接口,完成售后接口调用 2.6.1 售后流程、超时时间及售后事件和API、回调的对应关系 看本文1.2 售后流程图 用户及商户处理售后超时时间 类型 超时时间 商家处理退款超时 48小时 商家处理退货超时 48小时 用户超时未申请平台接入 7天 用户上传退货物流超时 7天 商家超时未确认收货 10天 售后事件和API、回调的对应关系 事件 API 触发回调 说明 用户申请退款 用户提交售后申请 用户提交售后申请回调 - 用户申请退货 用户提交售后申请 用户提交售后申请回调 - 用户修改申请 用户更新售后申请 用户更新售后申请回调 - 用户取消申请 用户取消售后申请 用户取消售后申请回调 - 用户申请平台介入 无API,只能由用户在微信侧触发 暂无 - 用户超时未申请平台介入(7天) - 用户申请平台介入超时回调 - 用户上传退货物流 用户上传物流信息 用户上传退货物流回调(待商家确认收货) - 用户超时未上传退货物流(7天) - 用户上传退货物流超时回调 - 用户确认退款凭证 无API,只能由用户在微信侧触发 用户确认退款凭证回调 - 商家同意退款 同意退款 - - 商家处理退款超时(48小时) - 商家处理退款请求超时回调 - 商家同意退货 同意退货 - - 商家处理退货超时(48小时) - 商家处理退货申请超时回调 - 商家拒绝退款 拒绝售后 - - 商家拒绝退货 拒绝售后 - - 商家上传退款凭证 上传退款凭证 - 商家确认收货 同意退款 商家确认收到的货没问题后,调用同意退款API表示确认收货,如果有问题就调用拒绝售后API 商家超时未确认收货(10天) - 商家确认收货超时回调 - 平台退款成功 - 平台退款成功回调 - 平台退款失败 - 平台退款失败回调(待商家线下退款) - 平台判定用户责任 - 纠纷事件更新售后单状态回调 纠纷事件通知请见纠纷回调 平台判定商家退款 - 纠纷事件更新售后单状态回调 纠纷事件通知请见纠纷回调 平台判定商家退货 - 纠纷事件更新售后单状态回调 纠纷事件通知请见纠纷回调 2.6.2 售后接口常见错误及注意事项 注意事项 新旧接口不可混用,新售后接口无法处理旧接口订单,否则会出现很多意想不到的错误 2.6.2.1 枚举值定义 (1)AfterSalesReason 枚举值 描述 1 排错/多拍 2 不想要了 3 无快递信息 4 包裹为空 5 已拒签包裹 6 快递长时间未送达 7 与商品描述不符 8 质量问题 9 卖家发错货 10 三无产品 11 假冒产品 12 其他 (2)AfterSalesState 枚举值 描述 1 用户取消 2 商家受理退款申请中 4 商家拒绝退款 5 商家拒绝退货退款 6 待买家退货 7 售后单关闭 8 待商家收货 11 平台退款中 13 退款成功 21 平台受理退款申请中 22 平台介入处理完成 23 商家受理退货申请中 24 平台受理退货申请中 2.6.2.2 Q:调用自定义交易组件售后相关接口:“创建售后单”、“用户取消售后单”、“用户上传物流信息”、“获取售后单列表”、“获取售后单详情”、“同意退款“、”同意退货“、“拒绝售后”、“上传退款凭证”、“更新售后单”等接口时报错{“errcode”: 48001,“errmsg”: “api unauthorized”} A18:未开通视频号场景经营商户号,需要先开通场景经营商户号才可以调用。 2.6.2.3 Q:调用自定义交易组件创建售后接口ecaftersale/add时报错2747002,参数错误{“errcode”:2747002,“errmsg”:"参数错误 "} A9:1.请检查“orderamt”参数,传参金额应不含邮费。 2.新旧接口不可混合调用,新接口不支持对旧接口生成的订单创建售后。 2.6.2.4 Q:调用自定义交易组件创建售后接口ecaftersale/add时报47001错误{“errcode”:47001,“errmsg”:"data format error "} A:请检查“product_info”字段,注意对应类型为“object”。 2.6.2.5 Q:调用自定义交易组件“同意退款”接口shop/ecaftersale/acceptrefund时报错“同意退款失败” {“errcode”:9700209,“errmsg”:"同意退款失败 退款失败“} A:1.该问题是订单流转状态不对导致,请严格按照文档流程进行操作调用; 2.新旧接口混合调用也会报此错误 3.“orderamt"传参为"0” 2.6.2.6 Q:用自定义交易组件创建售后接口ecaftersale/add时是报错“售后金额不合法,大于最大可退款金额”{“errcode”:2747014,“errmsg”:" 售后金额不合法,大于最大可退款金额"} A:1.请确认请求创建售后时"orderamt"金额是否大于下单时"sku_real_price"金额 2.订单已进行部分退款 码字中 稍后回来
2022-11-16 - 新版交易组件接入的指引与Q&A(本文不在更新,看文章内新地址)
本文不在更新,请看新版自定义交易组件接入指引 看帖不点赞,bug千千万 需要先申请开通“交易组件场景专用商户号”才可以完成新版交易组件场景接入(申请场景经营商户号这是必要条件),进行接入时一定要按照文档流程顺序进行接入,不要新旧接口混合调用,否则无法正常跑通完整流程,切记!切记!切记! 先配个图证明新版接入已完成 [图片] 有新问题可以留言,有准确答案(方案)后补充更新 一、升级版自定义交易组件接入说明 1、组件介绍 若商家此前已经完成视频号接入小程序,在小程序中调用升级版自定义交易组件组件后,可在保留原有的界面、功能及交易链路的情况下接入微信视频号场景。通过调用商品上传、订单生成、状态同步等接口,实现在视频号场景中交易资金流、售后、交易纠纷、客服等能力的标准化。 2、功能特点 可在视频号场景实现商品展示和带货等功能 未来可支持更多直播营销玩法(券、 秒杀、预售等) 支持小程序客服组件,商家能更方便收到用户的客服咨询 订单中心显示更完善的订单信息,用户可自行查看订单状态 支持用户在视频号订单中心继续付款、发起售后 3、上线案例 升级版自定义交易组件为商户提供保障用户体验的直播电商全链路能力: 可以使用微信支付商户号,资金结算更规范。 小程序和视频号的订单进行了双向打通,用户可以任选在小程序或视频号订单中心处理订单,例如重新发起支付、确认收货等,大大提升用户体验。 通过打通小程序客服组件,增强了商家处理商品咨询的能力。 [图片][图片][图片] 4、接入流程及官方文档 注意:整个接入流程需要15-30个工作日不等,建议提前准备商品的品牌、资质、类目信息,与开发调试并行,避免延误直播带货计划。 详情见:接入视频号指引 5、关键流程逻辑 注意“橙色”为新加入部分: [图片] [图片] 二、接入过程中常见问题 有新问题可以留言,有准确答案(方案)后补充更新 Q1:新版交易组件需要重新申请商户号吗?是否可以使用原有商户号? A1:不可以,新版交易组件必须要申请开通场景专用商户号 Q2:新版场景专用商户号费率是多少,是否有优惠,结算周期是多久? A2:商户号费率为0.6%,无费率优惠,结算周期为7+7日,即用户收货后7天后结算。 Q3:申请新商户号时,最后一步签约遇到“微信实名信息与管理员信息不一致”是什么原因? A3:申请新的场景专用商户号时,“超级管理员”这一项不支持修改,默认为小程序“超级管理员”实名信息,如需修改,需要为该用户前往成员管理为小程序绑定超级管理员。 Q4:申请新的商户号时,为什么不能修改主体信息? A4:“当前主体”这一项不支持修改,因为商户号主体必须和该小程序注册主体保持一致。 Q5:通过新版自定义交易组件申请的场景专用商户号是否对跨境类小程序(自助报关)有影响? A5:会,二级商户当前暂不支持自助清关接口调用,留意后续更新通知 Q6:自定义交易组件“升级版”跟升级前的自定义交易组件有什么区别,哪些接口需要升级? A6: 新支付接口,必须走新商户号。 取消订单, 小程序(小程序内以及发现-小程序我的订单)和视频号双向可取消,之前只可以在小程序上取消,然后同步给视频号状态。 申请退款,小程序和视频号双向可申请退款。 申请退货退款,小程序和视频号双向可申请退货退款,之前只有小程序上操作。 未付款订单,小程序和视频号 可在各自订单中心重新支付,同步状态。 确认收货,小程序和视频号双向可确认收货。 同步发货状态接口更新。 Q7:自定义交易组件验收流程走完后, 在MP后台点击完成依旧提示"检测到你未完成此项步骤, 请确认后重试"是什么原因? A7:需要通过调用新接口进行验收才可以通过。 Q8:调用自定义交易组件创建售后接口ecaftersale/add时报47001错误{“errcode”:47001,“errmsg”:"data format error "} A8:请检查“product_info”字段,注意对应类型为“object”。 Q9:调用自定义交易组件创建售后接口ecaftersale/add时报错2747002,参数错误{“errcode”:2747002,“errmsg”:"参数错误 "} A9:1.请检查“orderamt”参数,传参金额应不含邮费。 2.新旧接口不可混合调用,新接口不支持对旧接口生成的订单创建售后。 3.一个商品仅可以有一笔在流程的售后单,已创建或售后完结也会报次错误。 Q10:调用自定义交易组件“同意退货”接口ecaftersale/acceptreturn时报错“同意退货失败没有默认退货地址,需要在接口中传入” {“errcode”:9700210,“errmsg”:“errmsg” =>”同意退货失败没有默认退货地址,需要在接口中传入"} A10:需要调用“更新商家信息”接口,补充默认退货地址 Q11:调用自定义交易组件“添加商品”接口shop/spu/add时报错“该账号客服方式必须包含微信客服/小程序客服” {“errcode”:1040042,“errmsg”:"该账号客服方式必须包含微信客服/小程序客服”} A11:需要在MP后台配置微信客服/小程序客服后,然后通过“更新商家信息”接口更新商家信息[图片] 调用“获取商家信息”接口应返回一下内容才为成功,“service_agent_type”字段需要同时包含0,1,2三个值 [图片] Q12:调用自定义交易组件“创建订单”接口shop/order/add时报错“不支持的发货方式” {“errcode”:1010036,“errmsg”:"不支持的发货方式“} A12:视频号场景当前只支持“正常快递”方式,其他请留意后续更新。 Q13:自定义交易组件“创建售后单”接口中“refund_reason_type”字段 定义见枚举值定义 “emAfterSalesReason ”,“emAfterSalesReason”对应枚举值是什么? A13:INCORRECT_SELECTION = 1; // 拍错/多拍 NO_LONGER_WANT = 2; // 不想要了 NO_EXPRESS_INFO = 3; // 无快递信息 EMPTY_PACKAGE = 4; // 包裹为空 REJECT_RECEIVE_PACKAGE = 5; // 已拒签包裹 NOT_DELIVERED_TOO_LONG = 6; // 快递长时间未送达 NOT_MATCH_PRODUCT_DESC = 7; // 与商品描述不符 QUALITY_ISSUE = 8; // 质量问题 SEND_WRONG_GOODS = 9; // 卖家发错货 THREE_NO_PRODUCT = 10; // 三无产品 FAKE_PRODUCT = 11; // 假冒产品 OTHERS = 12; // 其它 Q14:自定义交易组件“获取售后单详情”接口中“status”字段 定义见枚举值定义 “AfterSalesState ”,“AfterSalesState”对应枚举值是什么? A14:AFTERSALESTATUS_INVALID = 0; USER_CANCELD = 1; // 用户取消申请 MERCHANT_PROCESSING = 2; // 商家受理中 MERCHANT_REJECT_REFUND = 4; // 商家拒绝退款 MERCHANT_REJECT_RETURN = 5; // 商家拒绝退货退款 USER_WAIT_RETURN = 6; // 待买家退货 RETURN_CLOSED = 7; // 退货退款关闭 MERCHANT_WAIT_RECEIPT = 8; // 待商家收货 MERCHANT_OVERDUE_REFUND = 12; // 商家逾期未退款 MERCHANT_REFUND_SUCCESS = 13; // 退款完成 MERCHANT_RETURN_SUCCESS = 14; // 退货退款完成 PLATFORM_REFUNDING = 15; // 平台退款中 PLATFORM_REFUND_FAIL = 16; // 平台退款失败 USER_WAIT_CONFIRM = 17; // 待用户确认 MERCHANT_REFUND_RETRY_FAIL = 18; // 商家打款失败,客服关闭售后 MERCHANT_FAIL = 19; // 售后关闭 Q15:自定义交易组件申请视频号专用商户号后,唤起支付报错: “商户号该产品权限未开通” A15:需要先调用“生成订单”接口,然后调用“生成支付参数”接口获取调取支付所需参数,不要调用微信支付统一下单接口获取调用支付参数 Q16:调用自定义交易组件“同意退款”接口shop/ecaftersale/acceptrefund时报错“同意退款失败” {“errcode”:9700209,“errmsg”:"同意退款失败 退款失败“} A:该问题是订单流转状态不对导致,请严格按照文档流程进行操作调用;新旧接口混合调用也会报此错误。 Q17:二级商户号订单支付流程与原有订单支付流程有什么区别? A17:主要区别是:二级商户号订单调起支付所需参数是通过“生成支付参数”获取,无需同步支付结果;原流程调起支付是需要通过微信支付统一下单获取,需要同步支付结果。 Q18:调用自定义交易组件售后相关接口:“创建售后单”、“用户取消售后单”、“用户上传物流信息”、“获取售后单列表”、“获取售后单详情”、“同意退款“、”同意退货“、“拒绝售后”、“上传退款凭证”、“更新售后单”等接口时报错{“errcode”: 48001,“errmsg”: “api unauthorized”} A18:未开通视频号场景经营商户号,需要先开通场景经营商户号才可以调用。 Q19:自定义交易组件二级商户单调起支付时报错“JSAPI缺少参数total_fee” A19:生成支付参数失败,没返回正确的预支付 ID,重新调用生成支付参数接口获取新的支付参数即可 Q20:调用自定义交易组件接口报错{“errcode”:61007,“errmsg”:“api is unauthorized to component”} A20:没有完成服务商授权。 Q21:已经开通了自定义交易组件,调用接口还是报错48001 A21:接口鉴权有本地缓存,一般最多10分钟,请稍后再试。 Q22:调用自定义组件接口报错“json异常” A22:结构体比较复杂,请检查字段层级。划重点: json不支持注释!!!json不支持注释!!!json不支持注释!!! Q23:调用自定义组件接口报错{“errcode”:1000000,“errmsg”:“订单状态流转异常”} A23: 订单严格按照:创建、支付、发货、收货的事件流转,如果已经取消,则不能继续流转。 Q24:调用自定义组件上传图片接口报错{“errcode”:1070008,“errmsg”:"获取图片失败,请使用流式上传 "} A24:一般是图片url在微信侧获取不刀,可能为图片cdn设置了白名单或者cdn服务商把微信出口ip 给“ban”了 Q25:调用自定义组件上传图片接口报错{“errcode”:1070001,“errmsg”:"文件/图片为空 "} A25:检查请求报文协议,需[代码]Content-Type: multipart/form-data[代码] Q26:调用自定义组件上传图片接口报错{“errcode”:1000035,“errmsg”:"无效链接 "} A26:请检查图片链接是否为有效链接 Q27:自定义交易组件接入后没有收到事件回调消息 A27:使用公众平台调试工具确保回调链路正常。事件消息如下 [图片] Q28:视频号橱窗管理获取不到对应小程序 A28:1、检查是否开通视频号场景;2、检查是否绑定了推广员(非小程序超管需要绑定推广员) 持续更新中~~~
2022-04-14 - 业主委员会注册订阅号,没有组织机构代码怎么办?
我想以其他组织这项来申请业主委员会的订阅号,但我们没有组织机构代码,我们业委会有备案,有银行开户,我看了有的业委会公众号是可以没有组织机构代码的,但我们在注册过程中页面上必须要求填组织机构代码,不然不让通过。 [图片] [图片]
2021-03-22 - 视频号企业认证流程和费用?
要做的视频号和公众号不是一个名字,只能通过提交材料方式申请吧? 第三步中联系人姓名需要和申请函里的一致吗? 通过提交材料认证,填写发票只是填写我公司名称、税号吗?最后费用多少? 能不能弄个清晰的流程说明。。。提交一项才知道下面要提交什么。。。客服邮箱形同虚设根本没人回复 [图片] [图片]
2021-11-10 - 怎样注销微信小商店?
我想注销微信小商店,可是怎么就找不到注销的地方?谁知道,麻烦指教一下。谢谢
2022-02-09 - 小程序微信广告接入的 user_action_set_id ,返回您请求的接口不支持幂等,什么原因?
url: 'https://api.weixin.qq.com/marketing/user_action_sets/add?version=v1.0&access_token=' + access_token, method:"POST", header: { 'content-type': 'application/json' // 默认值 }, -data:{ type: 'COMPLETE_ORDER', name: '下单', description: 'COMPLETE_ORDER' }; 调用接口,微信返回 { errcode: 900312010, errmsg: 'The api you requested does not support idempotence.', message_cn: '您请求的接口不支持幂等。' } 我的wxappId是 wx7558e8d436bbd647 ,请问下是什么原因,谢谢
2021-12-27 - 使用wechatpay-php,以函数链的形式,从APIv3流式下载交易帐单
APIv3的变化 相较于APIv2,新的实现,把一步下载交易帐单,接口层面拆分成了两步,即: 申请交易帐单下载地址 从申请到的下载地址,下载交易帐单 并且,两步下载,均是APIv3规范,即请求需要添加签名头[代码]Authorization[代码],第二步因为是 文件流,开发规范说明需要用第一步获取到的返回值(含文件[代码]csv[代码]格式的[代码]sha1[代码]签名)做验签。 分解 一步获取不到文件,第二步强依赖第一步的返回值,而且帐单文件下载地址,有效期还只有30秒,这用链式去组装,是再合适不过了。我们用自然语言来分解这个需求,如下: (异步)HTTP请求 [代码]v3/bill/tradebill[代码] 交易帐单下载地址接口; 以第一步的返回值,解析获取到的 [代码]download_url[代码],并且一直把这一步的返回值传递给其他函数处理; 解析[代码]download_url[代码],拆分出 [代码]base_uri[代码], [代码]pathname[代码] 及 [代码]query[代码] 参数,并合并前一步的结果,传递给下一个函数处理; 根据前俩函数的综合返回值,作为请求入参,流式及压缩模式获取帐单文件并落盘,落盘后的文件句柄,合并至前一步返回值; 根据上一步的落盘文件句柄,以第二步接口返回的摘要值,流式验签; 把上述拆解步骤,组装成一个链,使用[代码]GuzzleHttp\Promise[代码]来等待执行结果; 前置条件 安装软件包 [代码]composer require wechatpay/wechatpay [代码] 程序实现 [代码]<?php // filename: bill.all.php require_once('./vendor/autoload.php'); //帐单日期 YYYY-mm-dd 格式 $billDate = '2021-11-27'; //帐单保存文件地址 $csvFilePath = './bills/all.2021-11-27.csv.gz'; $merchantPrivateKeyFilePath = 'file:///path/to/merchant/apiclient_key.pem'; $platformCertificateFilePath = 'file:///path/to/wechatpay/cert.pem'; $privateKey = \WeChatPay\Crypto\Rsa::from($merchantPrivateKeyFilePath, \WeChatPay\Crypto\Rsa::KEY_TYPE_PRIVATE); $publicKey = \WeChatPay\Crypto\Rsa::from($platformCertificateFilePath, \WeChatPay\Crypto\Rsa::KEY_TYPE_PUBLIC); $platformCertificateSerial = \WeChatPay\Util\PemUtil::parseCertificateSerialNo($platformCertificateFilePath); $instance = \WeChatPay\Builder::factory([ 'mchid' => '190000****', 'serial' => '3775B6A45ACD588826D15E583A95F5DD********', 'privateKey' => $privateKey, 'certs' => [$platformCertificateSerial => $publicKey], ]); $instance ->v3->bill->tradebill // 1. 发起异步请求 ->getAsync([ 'query' => [ 'bill_date' => $billDate, 'bill_type' => 'ALL', 'tar_type' => 'GZIP', ], ]) // 2. 自定义返回值并补上账单日期 ->then(static function(\Psr\Http\Message\ResponseInterface $response) use ($billDate): array { $target = (array) json_decode($response->getBody()->getContents(), true); return $target + ['bill_date' => $billDate]; }) // 3. 转换及解析返回的URI ->then(static function(array $middle): array { $previous = new \GuzzleHttp\Psr7\Uri($middle['download_url'] ?? ''); $baseUri = $previous->composeComponents($previous->getScheme(), $previous->getAuthority(), '/', '', ''); return $middle + [ 'base_uri' => $baseUri, 'query' => $previous->getQuery(), 'pathname' => ltrim($previous->getPath(), '/') ]; }) // 4. 临时关闭内置验证器,流式下载账单 ->then(static function(array $download) use ($instance, $csvFilePath): array { $handler = clone $instance->getDriver()->select()->getConfig('handler'); $handler->remove('verifier'); $savedTo = \GuzzleHttp\Psr7\Utils::tryFopen($csvFilePath, 'w+'); $stream = \GuzzleHttp\Psr7\Utils::streamFor($savedTo); $instance ->chain($download['pathname']) ->get([ 'sink' => $stream, 'handler' => $handler, 'query' => $download['query'], 'base_uri' => $download['base_uri'], ]); return $download + ['stream' => $stream]; }) // 5. 从第一步获取的帐单哈希签名及上一步的文件流,验证存储的文件签名是否相符 ->then(static function(array $verify): ?string { $hashAlgo = strtolower($verify['hash_type'] ?? 'sha1'); $hashValue = $verify['hash_value'] ?? null; $stream = $verify['stream']; $signature = \GuzzleHttp\Psr7\Utils::hash(new \GuzzleHttp\Psr7\InflateStream($stream), $hashAlgo); if (\WeChatPay\Crypto\Hash::equals($signature, $hashValue)) { $stream->close(); return sprintf('Verified (%s) with %s digest(%s) OK', $stream->getMetadata('uri'), $hashAlgo, $hashValue); } // TODO: 更多逻辑,比如验签失败,删除掉已存的文件等 $stream->close(); throw new \UnexpectedValueException('Bad digest verification'); }) // 6. 等待1-5链接的步骤执行完毕 ->wait(); [代码] 运行 [代码]php bill.all.php [代码] 商户如果没有交易帐单,程序则在[代码]1.[代码]步骤即抛异常(HTTP状态码是[代码]400[代码]),2、3、4、5步骤均不会执行;第5步是个本地验签逻辑,比较获取到的[代码]csv[代码]文件摘要是否与第一步获取的一致,如果不一致也抛送出异常。 程序运行基本上是静默的(没有问题),获取到的文件存储路径为 [代码]./bills/2021-11-27.csv.gz[代码] 结束 帐单下载后的解析,其实已经在软件包仓库的测试用例里已经写过了,也是流式解析,有兴趣可以翻这里看源码实现。 最后 代码折叠后的样例如下图: [图片]
2021-11-29 - 小程序开通云闪付支付后常见问题Q&A
看完记得点赞收藏好评一键三连 Q1:小程序如何开通云闪付支付功能? A1:超级管理员扫码登录商户平台「点我访问」,点击「产品中心」->「开发配置」->「支付方式配置」->「开通“云闪付付款”功能」 小提示:支付方式配置在页面最底部 [图片] Q2:开通“云闪付付款”功能后小程序需要做开发对接吗? A2:不需要,开通“云闪付付款”功能后,商户号绑定的小程序默认就支持云闪付付款了,无需做任何开发对接,原有系统无需调整。 Q3:用户使用云闪付付款,商户收款手续费是多少? A3:与商户号原费率保持一致,举例:用户在商户A小程序使用云闪付支付100元,商户A当前费率为0.6%,则应收手续费应收为1000.6%=0.6元。 Q4:用户使用云闪付付款,商户收款资金在什么时间结算到商家银行卡? A4:用户使用云闪付付款实时到微信支付商户号,根据商户号原结算周期结算。举例:用户在商户A小程序使用云闪付支付100元,商户A当前结算周期为T+1并开通自动提现功能,则在用户付款时间后一个工作日自动提现到商户银行卡。 Q5:用户使用云闪付付款的订单应如何进行查询? A5:1.在商户后台通过交易账单中的「付款银行」字段来检索对应的订单 扫码登录商户平台-交易中心-交易账单-下载交易账单,「付款银行字段」取值为:UPQUICKPASS_CREDIT和UPQUICKPASS_DEBIT的,即为用户使用云闪付付款的交易 [图片] [图片] 2.微信端可以通过商家助手小程序查看,访问「微信支付商家助手小程序」,点击「收款记录」,付款人展示为“云闪付用户”的,即为用户使用云闪付进行付款的交易。[图片] Q6:小程序“云闪付付款”功能是否支持服务商模式? A5:支持 Q7:某个小程序可以单独关闭用户使用云闪付付款功能吗? A7:可以,商户可以在商户平台指定小程序关闭该功能,并查看已关闭的小程序列表。超级管理员扫码登录商户平台「点我访问」,点击「产品中心」->「开发配置」->「支付方式配置」->「新增关闭云闪付APPID」,添加成功后该小程序用户将不再支持云闪付付款 小提示:支付方式配置在页面最底部 [图片] Q8:用户在小程序使用云闪付付款是否支持云闪付优惠? A8:支持云闪付通用优惠或全场优惠 Q9:用户使用云闪付付款后支付结果通知没有「attach」字段返回是什么原因? A9:已知问题,已排期修复 Q10 :商户后台开通了“云闪付付款”功能,为什么小程序支付时没有云闪付付款功能入口呢? A:1、手机需要安装云闪付APP 2、云闪付付款选项需要调起微信支付后才会让用户选择,当小程序自身功能有多项支付选择时,需要选择「微信支付」后才可会有云闪付付款选择[图片] [图片] Q11:用户在小程序使用“云闪付”付款后,服务商还有技术服务费吗? A:满足基础技术服务费和行业政策要求的,保持不变 Q12:商户后台开通配置云闪付后,支付时没有云闪付付款选择如何排查? A: 1.商户在后台关闭了此功能; 2.用户手机有安装云闪付app; 3.如属于以下场景,也不会展示云闪付:境外交易、指定身份支付、未成年支付、支付中签约; 4.商户号为新开通商户或近期无交易,要有稳定的流水后才会开启入口; 5.开通了“自助清关”产品不会展示云闪付; 6.电商收付通托管模式的商户不会展示云闪付; 7.小微商户(注:商业版小微灰度内测阶段)不会展示云闪付。 如有更多疑问可以跟帖回复,也可以拨打95017进行咨询
2021-12-31 - 微信小程序如何配置银联云闪付支付
前言: 早在9月30号,微信派公众号就发布了腾讯微信支付与银联云闪付深化支付合作与互联互通的声明,原文地址 那么问题来了,微信小程序怎么配置支持云闪付支付呢? 简简单单就一步,就可以让小程序支持云闪付支付了 登录微信支付商户后台->「产品中心」->「开发配置」页面最底部找到「支付方式配置」,点击「开启」就可以了,无需开发,无需额外配置,只要用户手机安装了云闪付app,在小程序支付时,就可以选择云闪付付款。 [图片] 注意事项 1、当前只支持小程序使用云闪付付款,微信app需要更新到最新版 2、开通后默认商户号绑定的所有小程序均开启支持云闪付支付,如有部分小程序不想开通云闪付付款,可以指定小程序appid不开启云闪付支付 [图片] 3、支持服务商模式 4、配置成功后支持停用 5、原有接口无需改动 6、如用户使用云闪付付款,中途取消付款,是会返回在选择支付方式页面 7、支持云闪付优惠 以下为实际支付测试截图 [图片][图片] [图片] 配置了没有云闪付入口等常见问题请看下面地址 https://developers.weixin.qq.com/community/develop/article/doc/000ac04bca8558f9991df282651413
2021-12-29 - 公众号草稿箱文章如何获取永久链接
最近很多人公众号图文素材升级为草稿箱后,自定义菜单、自动回复里如果用到原来的图文素材永久链接的, 瞬间觉得一脸懵逼不知道咋办了。 好的,本文就告诉你一个简单的办法解决问题: 重要的事情只说一遍:关键是怎么拿到草稿箱里文章的永久链接! 步骤1:登录公众号后台,把原来的图文素材导入到草稿箱:[图片]我随便选了一篇以前的图文素材文章: [图片] 步骤2:登录第三方网站智未来页面模板,授权一下即可获取草稿箱永久链接:[图片] 授权后随便建立一个模板然后去到草稿箱文章页面: [图片] 点编辑页面模板,: [图片] 点添加文章,去到草稿箱: [图片][图片] 点开草稿箱文章后,复制这个地址就是这个文章的永久链接了。[图片] 然后你把这个地址放到你自定义菜单地址或者自动回复的文字,只要你草稿箱这个文章永远不要发布,随时改动并保存,这个永久地址是永远不会变的,这也就相当于升级草稿箱前的图文素材的效果了。。 [图片] 当然还有更好用的例如你直接用智未来模板把你草稿箱的文章管理成一个页面,然后子菜单绑定一个智未来模板,那就跟之前的图文素材没啥区别了,要群发的文章你可以另起一个草稿文章群发(群发后文章会自动删除),子菜单可以设置成如下的例子页面: [视频] 视频例子的文章,可以来自草稿箱,也可以是群发的或者发布的,都可以用智未来管理的。做成微网站也可以。个人号可以用他的小程序模板。
2021-10-17 - 菜单名称违反公众平台规则怎么更改?
[图片]您好,这是我们公众平台发布在子菜单上所遇到的状况,以前包括上一周发布时并未遇到这种情况,我们发布的文字和图片除了日期不一样,并无不同,但是这周无法发布,提示“菜单名称违反公众平台协议......”。试过多次更改无果,这个公众号是政府部门用来发布信息,还请告知需要怎么更改才可以发布?非常感谢!
2021-11-11 - wxvpkg 版本问题?
初学者,win10 x64系统, 刚安装了 1.05.2110110_x64 版本,申请了AppID,启动开发平台,创建小程序,提示错误: Error: wxvpkg unrecognized version: 576872819 [图片]
2021-10-22 - 视频号的一些建议
在视频号做了一年多了从最初的短视频到现在的直播,现在有一些自己觉得挺好的想法推荐给官方 建议微信首页加入一个类似订阅号消息的文件夹给到视频号,就叫【视频号消息】,这个文件夹下大概内容有: 1、视频号私信的官方视频号团队内容,例如:公众号认证成功/失败消息、[新功能]和粉丝加好友、机构合作等官方消息,加入到微信首页。主要内容为视频号官方动态,要不然很多主播、博主不知道。 2、把主播页面里的常用功能迁移过来,例如:直播抽奖记录、视频号私信等 3、视频号私信做好分类,是我的粉丝私信我还是我私信别的主播等 现在我们很多主播会在直播间进行抽奖,直播结束发奖品很麻烦,需要点击的路径很长。还有私信粉丝的路径也很长。不如放在首页方便,这是我最近的最大感受。
2021-10-19 - 微信支付商户经营工具-「企业付款到银行卡」产品说明及开通使用
1、功能说明 企业付款到银行卡微信支付提供由商户直接付钱至指定银行卡账户的能力,支持平台操作及接口调用两种方式,资金到账速度快,使用及查询方便。主要用来解决合理的商户对用户付款需求。 产品特点 目前支持17家银行,更多银行逐步开放 目前支持付款至对私银行储蓄卡账户 发起方式灵活,可通过页面或接口发起 通过指定收款户名、卡号、银行信息实现付款 每笔会收取一定金额的手续费 2、适用场景 费用报销 保险理赔 用户佣金提现 彩票兑奖 3、开通条件 结算周期为T+1的商户,需满足三个条件: 1)商户号入驻满90天 2)截止今日往回推30天连续不间断保持有交易。 3)保持正常健康交易 其他说明 1、连续30天交易无金额限制,请保持正常交易。 2、同一主体下,若有一个商户号满足企业付款到银行卡开通条件,其余商户号也一样可以开通,没有30天/90天的限制。 4、为什么会有30天/90天的限制 此项规定是根据中国人民银行文件银发〔2016〕261号文件的通知 详见第二项的第十二条说明 [图片] 更多可以看公告原文:点我查看 5、企业付款到零钱的限额说明 针对同一个商户,所有付款来源加总限制(商户平台&接口): 1)每个商户号每天可以出款100万元 2)单商户给同一银行卡付款每天限额2万元(部分商户号为5万元,可申请提升) 3)单笔付款最低额度:0.01元(范围:企业付款api、商户平台企业付款) 备注:开发文档的链接:https://pay.weixin.qq.com/wiki/doc/api/tools/mch_pay.php?chapter=24_2 6、写在最后 其实你们更想知道的是「何为健康交易」,那就简单透露一点点吧 1)符合行业属性的交易(自己领悟,你那么聪明一定可以悟到的) 2)符合用户消费习惯的交易(自己领悟,你那么聪明一定可以悟到的) 如果有问题可以跟帖回复,也可以私信,欢迎交流沟通 最后的最后,告诫开通了朋友千万不要拿去做坏事哦 本文还会更新其他内容,可以收藏一下下~~~ 更多商户相关文档可查看:https://developers.weixin.qq.com/community/develop/article/doc/000ce0be104fe8db37fbf478b5b813
2021-04-28 - 微信支付商户风控处理-「企业付款」补充说明业务模式及资金结算清分路径、企业付款用途范本(简版)
前言 当遇到企业付款产品冻结,申诉时需要提交补充说明业务模式及资金结算清分路径、企业付款用途 (包括企业付款场景 ,付款用途,付款规则)时,很多人不知道该如何去写,现在提供一个参考说明 商户企业付款产品交易场景说明 商户名称:(商户主体名称) 商户号:(需要处理风控的微信支付商户号) 联系人姓名:(可以为法人,也可以为其他处理风控人员的姓名) 联系人电话:(对应联系人手机号) 使用产品:______________________________(企业付款到零钱/企业红包/企业付款到银行卡,多个就写多个) 本公司承诺,《商户企业付款产品交易场景说明》所述内容均属实,财付通有权进行不定期检查,如发现本公司存在隐瞒事实的行为,财付通有权按照《微信支付服务协议》的约定采取延迟资金结算、关闭支付权限等措施,并中止或终止提供支付服务。 【交易款项】 1.请简要介绍贵司主营业务、说明贵司使用企业付款到零钱/企业红包/企业付款到银行卡向用户支付的是何种款项,付款金额是否有规律或特征(如交易款项结算,营销活动推广奖励,提成/佣金,劳务报酬/薪酬等); 【付款原因】 2.贵司基于什么原因向这些用户付款,公司与个人收款用户之间为何种关系(此处应详细描述付款原因,付款原因应可理解、逻辑应自洽); 【资金来源】 3.请简要说明贵司使用企业付款支付出去的资金来源是什么(充值/收款户); 【交易时间】 4.企业付款的交易频次及时间(付款交易是否有时间分布上的规律,什么时间付,多久付一次); 【收款人信息】 5.企业付款交易通过什么方式获取收款人微信的openID或银行账号 (此处应详细描述openID的获取方式,并提供APP/小程序/公众号的具体名称)。
2021-04-29 - 微信支付商户风控处理-「企业付款订单交易场景说明」应该怎么写(适用于电商类商户)
前言 当遇到企业付款产品冻结,申诉时需要提交补充说明业务模式及资金结算清分路径、企业付款用途 (包括企业付款场景 ,付款用途,付款规则)时,可以按下述模板进行提交,适用于电商类商户 关于企业付款订单交易场景的说明 财付通支付科技有限公司: 本公司「填写商户公司名称」接入贵司的微信支付服务,贵司为本公司配置商户号为「填写微信支付商户号」,本公司向贵公司申报将微信支付服务用于「填写商户的业务范围」,现本公司就以下付款交易订单进行场景说明: 付款订单号 交易金额 付款场景(售后退款,好评返现,补差价或原价返利 ) 支撑材料 付款订单号:「此处填写付款订单号」 支撑证据:「此处按《付款订单场景与所需资料清单中》的要求,按顺序提供支撑证据」 付款订单号:「此处填写付款订单号」 支撑证据:「此处按《付款订单场景与所需资料清单中》的要求,按顺序提供支撑证据」 付款订单号:「此处填写付款订单号」 支撑证据:「此处按《付款订单场景与所需资料清单中》的要求,按顺序提供支撑证据」 本公司承诺上述内容真实有效,如有不实陈述,本公司同意贵公司有权按照《微信支付服务协议》的约定采取延迟资金结算、关闭支付权限等措施,并中止或终止提供支付服务,同意贵公司有权拒绝本公司后续提交的任何新服务申请(包括直接或间接方式)。 特此承诺并说明。 承诺人(盖章):「填写商户公司名称」 法定代表人(签字): 日期: 附: 付款订单场景与所需资料清单 细分场景 支撑资料清单 售后退款 1.付款交易对应的电商商品链接 <br> 2.电商平台卖家后台系统订单记录截图<br>3.买方与客服的完整聊天记录<br>4.退货物流信息 好评返现 1.付款交易对应的电商商品链接 <br> 2.电商平台卖家后台系统订单记录截图<br>3.买方与客服的完整聊天记录<br>4.电商平台好评截图 补差价 1.付款交易对应的电商商品链接 <br> 2.电商平台卖家后台系统订单记录截图<br>3.买方与客服的完整聊天记录<br>4.补差价规则说明 原价返利 1.付款交易对应的电商商品链接 <br> 2.电商平台卖家后台系统订单记录截图<br>3.买方与客服的完整聊天记录<br>4.原价返利规则说明 编号 资料内容 内容说明 1 付款交易对应的电商商品链接 应为可访问的有效商品链接 2 电商平台卖家后台系统订单记录截图 应包含买方信息、订单编号、订单价格、收件人地址、发放物流信息 3 电商平台好评截图 好评返现场景下,应提供电商平台商品评价中该用户的评价内容截图 4 补差价规则说明 补差价场景下,应说明何种因素产生的价差,买方何时、通过什么途径获取补差价信息 5 原价返利规则说明 应说明基于什么目的进行原价返利,适用于哪些产品,消费者如何参加原价返利活动,活动持续时间等信息 6 买方与客服的完整聊天记录 (1)买方与电商平台客服的聊天记录(如无法提供电商平台聊天记录,应说明原因,例如随货附带的好评返现卡片,卡片福袋客服微信二维码或联系方式<br>(2)买方与客服微信的聊天记录<br>(3)微信聊天记录应能证明付款交易的收款方与聊天记录的微信用户为同一人 写在最后 合理利用微信支付商户,且用且珍惜
2021-04-29 - 微信支付商户经营工具-「微信收款商业版」产品简介
建议先收藏,后面在看,51假期期间更新 简介 微信收款商业版是一款可自助开通、免开发、无技术门槛的微信支付收款产品。商户无需开发,一键开通,即刻拥有丰富的经营收款能力,并支持顾客使用信用卡支付。 注:微信收款商业版开通后,商户可通过商业版小程序在微信中轻松管理,智慧经营,使用商业版所有丰富功能。 悄悄的告诉你 通过服务商开通的商户,还可以使用微信收款商业版PC收银台哦(目前只支持win系统) 产品特点 多模式收款(顾客扫收款码、商业版扫付款码、机具收款、PC收银) 多门店经营、店长/店员管理 收款通知、语音播报 精准查账、经营分析 会员管理、活动配置 社群营销、线上名片 收款积分、积分换礼 开通方式 商户后台开通 开通操作说明 前提条件: ① 已申请开通商户号 ② 请使用管理员帐号登录商户平台。商户平台链接:https://pay.weixin.qq.com 第一步:申请。 请登录【商户平台】->【产品中心】->【微信收款商业版】->【申请开通】,可申请微信收款商业版功能 。 [图片] 第二步:签约。 阅读合同协议,勾选《微信支付“微信收款商业版”功能使用确认函》,点击“确定签署”按钮。 第三步:配置。 1) 在【账户中心】->【微信收款商业版】->【设置管理员】,弹出二维码,使用微信扫码即可成为微信收款商业版管理员。 设置管理员后,管理员用微信扫描“收款码”即可进入微信收款商业版管理页,在移动端查看收款列表、收款汇总,还可以实现店员和收款码等功能的管理。 [图片] 2)管理员设置成功后,管理员微信移动端会跳转至设置成功页面,并可立即在移动端进行店员设置管理。也可扫描“收款二维码”,在移动端管理店员和收款码 。店员通过微信扫描“收款二维码”,在移动端查看收款列表和收款汇总。 [图片] 第四步:下载。 在【账户中心】->【微信收款商业版】页面,可以下载二维码,即可进行收款。 [图片] 手机端全新开通 第一步:进入【微信支付】公众号申请 使用手机登录微信,进入微信支付公众号点击自定义菜单底部“其他帮助”-“成为商家”申请;也可扫描下方二维码,进行“成为商家”的申请。 [图片] 第二步:提交申请资料 点击申请后,在手机端完成信息填写并提交。 [图片] 第三步:回填打款金额,完成签约成功开通商户号 待资料审核通过后,在手机端回填打款金额,完成签约,成功开通商户号即可使用微信收款商业版。 [图片] 第四步:使用微信收款商业版 在微信收款商业版主页,添加门店、设置店员,申请官方物料或打印收款二维码摆放在收银处。 [图片] 温馨提示:微信收款商业版功能申请成功后,收款码立牌等物料可在【微信收款商业版】小程序->【物料商城】中直接选购。 已有商户号手机端开通 微信搜索「微信收款商业版」小程序,绑定已有商户号即可 1分钱物料 所有新开微信收款商业版用户,在小程序内物料商城可以享受1分钱物料礼包 写在最后 假期感冒不在状态,后面抽时间重新维护本篇文章
2021-05-06 - 微信支付服务商成长历程-「酒店押金」产品介绍
感冒中。。。我就先搬开发文档,此功能需要服务商下商户才可以开通,需要服务商事先开通「服务商酒店押金」产品权限 产品简介 酒店押金,是微信支付官方推出的关于押金缴纳、消费、退款于一体的专用资金解决方案,商户开发使用便捷,保持了与银行传统预授权相同的体验。用户将看到微信支付官方的“押金支付”“押金冻结”“押金消费”“押金退还”的消息通知。 产品特点 对于酒店侧 1、一次入住一笔资金账单 2、对账清晰 3、前台可完成操作,无需退款权限 对于用户侧 1、押金状态清晰可见 2、押金消费内容清晰 业务场景 传统酒店入住支付模式: [图片] 微信支付酒店押金方案: [图片] 微信酒店押金支付流程 支付押金 [图片] 1、用户提供微信付款码给酒店前台进行押金支付 2、押金支付成功,微信客户端向用户展示支付结果 3、微信客户端展示支付凭证 4、点击支付凭证查看订单详情 支持从 APP/JSAPI/小程序 场景调起押金支付收银台,流程如下: [图片] 退还未消费部分押金 [图片] 1、商户申请消费押金并扣款成功后,微信支付将扣款后剩余金额退还给用户 2、押金订单详情页 3、微信客户端展示退款凭证 特别说明 酒店押金有有效期是30天,若在有效期内未调用押金消费接口,确认消费金额的话,押金将全部退还用户 服务商调押金消费的接口后,押金未消费的剩余金额将自动退还用户 用户支付押金的资金,不体现在酒店的资金账单中,资金账单里仅体现押金消费的资金及消费后又退款的资金流水 如何免开发接入使用押金方案 内容请关注 https://developers.weixin.qq.com/community/develop/article/doc/000e663ce2ce683b30fb16dab51013
2021-05-05 - 微信开放平台创建移动应用没有找到微信支付接口?
[图片] 这是我在微信开放平台(我们是香港企业帐号)创建的移动应用已经通过审核了,并在境外微信支付已经绑定了此appid 但是在接口信息没有找到微信支付接口,请问是为什么?
2021-05-12 - 为 wechatpay-php 增加IDE提示的接口描述包 iwechatpay/openapi 介绍
继 wechatpay/wechapay:v1.3.0 正式发布已经有一段时间了,这个版本上增加了一个特性,就是 增加IDE提示[代码]OpenAPI\V2[代码]&[代码]OpenAPI\V3[代码]的两个入口,在经过认真思考之后,现在是时候给大家介绍这款接口描述包了。 先看示例 [图片] [图片] [图片] 原理解构 这个原理其实很多同学都用过,即代码注释 [代码]* property[代码] 属性,IDE都能够识别出来,遂把这个能力也[代码]Chainable[代码]起来,让接口描述,也成线性增长,从顶层,一层一层推演至最终HTTP VERBS(俗称:套娃模式)。 例如: V3.php 文件样本,如下: [代码]<?php declare(strict_types=1);/* Generated file. DO NOT EDIT! */ namespace WeChatPay\OpenAPI; /** * @property-read V3\Pay $pay * @property-read V3\Certificates $certificates */ interface V3 { } [代码] 示例这个 [代码]interface[代码] (接口)有两个动态属性,而动态属性的类型,全命名空间模式下,是继承 [代码]WeChatPay\OpenAPI[代码] 命名空间的,即分别推演至 [代码]WeChatPay\OpenAPI\V3\Pay[代码] 接口及 [代码]WeChatPay\OpenAPI\V3\Certificates[代码] 接口,例如 [代码]V3/Certificates.php[代码] 文件,内容即如下: [代码]<?php declare(strict_types=1);/* Generated file. DO NOT EDIT! */ namespace WeChatPay\OpenAPI\V3; use Psr\Http\Message\ResponseInterface; use GuzzleHttp\Promise\PromiseInterface; /** * 这是一个纯接口描述文件,由程序自动生成,旨在为IDE提供结构提示,无他用。 */ interface Certificates { /** * 获取平台证书列表(同步模式) * @param array<string,mixed> $options * @link https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/ecommerce/applyments/chapter3_3.shtml */ public function get(array $options = []): ResponseInterface; /** * 获取平台证书列表(异步模式) * @param array<string,mixed> $options * @link https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/ecommerce/applyments/chapter3_3.shtml#async */ public function getAsync(array $options = []): PromiseInterface; } [代码] 而 [代码]V3/Pay.php[代码] 文件内容,如下: [代码]<?php declare(strict_types=1);/* Generated file. DO NOT EDIT! */ namespace WeChatPay\OpenAPI\V3; /** * 这是一个纯接口描述文件,由程序自动生成,旨在为IDE提供结构提示,无他用。 * @property-read Pay\Transactions $transactions * @property-read Pay\Partner $partner */ interface Pay { } [代码] 其又是一个接口链的描述文件,使用了顶层[代码]Chainable[代码]的描述方法,有两个动态属性,属性类型分别是 [代码]\WeChatPay\OpenAPI\V3\Pay\Transactions[代码] 及 [代码]\WeChatPay\OpenAPI\V3\Pay\Partner[代码] 接口,IDE会「智能」的解析这个链,就如开头展示所示,套娃模式 就完成了。 经测试,在 [代码]PHPStorm[代码] 及 [代码]Visual Studio Code[代码] 可正常链上几乎所有接口,请求参数描述也可以无脑式,从对应的方法中直接拷贝出去(没有任何方言的完整数据结构),当自有项目的数据接口参照。 最后 项目地址: https://github.com/TheNorthMemory/wechatpay-openapi ,composer源: https://packagist.org/packages/iwechatpay/openapi 欢迎体验此款 链式开发倍增器 工具包。
2021-09-27 - 请问这种小程序为什么不封,有关系吗,竞猜?
投诉【appid:wx4692f08fa6ad3bc2】涉嫌违反微信小程序6.1 违反国家法律法规禁止的内容,应该封号处理!这种也能上线吗,线上投诉多次了!无投诉结果,希望官方一视同仁。[图片] 微信公众号推送链接,管理人员可跳转自己体验是不是竞猜:https://mp.weixin.qq.com/s/Xjs0CbDPzzlImpwL1bARyg
2021-09-27 - 发布与群发有何异同?
公众号发布文章与群发文章有何不同?为什么同一内容发布后发布记录显示已发布,但关注者看不到。但用群发就可以看到。同时我也注意到群发每天只限一次,而发布没有发布次数。
2021-09-21 - 微信支付优惠扣除逻辑
一、优惠券叠加使用逻辑1)不同商户创建的全场优惠(包括券和立减)默认叠加使用 假设:某笔订单可以享受全场优惠a(A商户创建,互斥使用)、全场优惠b(B商户创建,互斥使用)、全场优惠c(C商户创建,互斥使用) 则:该笔订单会同时享受 a + b + c,共3个优惠 2)同一商户创建的全场券可配置叠加使用或互斥使用,单笔订单可以核销同一商户创建的所有叠加券 + 互斥券中的一个 假设:某笔订单可以享受同一商户创建的全场券a(叠加使用)、全场券b(叠加使用)、全场券c(互斥使用)、全场券d(互斥使用) 则:该笔订单会享受 a + b + c或d中的一个,共3个优惠 3)同一商户创建的全场立减可配置叠加使用或互斥使用,单笔订单可以核销同一商户创建的所有叠加立减 + 互斥立减中的一个 假设:某笔订单可以享受同一商户创建的全场立减a(叠加使用)、全场立减b(叠加使用)、全场立减c(互斥使用)、全场立减d(互斥使用) 则:该笔订单会享受 a + b + c或d中的一个,共3个优惠 4)同一商户创建的全场立减和全场券默认叠加使用 假设:某笔订单可以享受同一商户创建的全场券a(互斥使用)、全场立减b(互斥使用) 则:该笔订单会享受 a + b,共2个优惠 5)一笔订单中,同一商品(sku维度)只能享受一个单品优惠(包括券和立减),不同的商品可以享受不同的单品优惠 假设:某笔订单可以享受单品优惠a(sku:01),单品优惠b(sku:02),单品优惠c(sku:02) 则:则该笔订单会享受 a + b或c中的一个,共2个优惠 6)若某笔订单享受了全场优惠(包括券和立减),且其中至少一个全场优惠是叠加使用的,则该笔订单才能叠加使用单品优惠 假设:某笔订单可以享受全场优惠a(叠加使用),全场优惠b(互斥使用),单品优惠c 若该笔订单享受a,则可同时享受c;若该笔订单享受b,则不可同时享受c;若该笔订单享受a+b,则可同时享受c * 指定支付方式(例如指定银行卡)的优惠需关注: 优惠是否可以叠加使用,是以制券商户号维度进行判断的,与批次指定的支付方式无关。若多个指定了支付方式的全场优惠配置了不可叠加使用,即使这几个优惠指定的支付方式不同,用户也只能享受其中一个。 举例:某笔订单可以享受全场优惠a(指定了A银行信用卡,互斥使用),全场优惠b(指定了A银行储蓄卡,互斥使用),则无论主扫或被扫,用户都只能享受a或b中的一个,且由系统指定,用户无法切换优惠。 所以,若同时存在多银行或多卡种的活动,建议将其均配置为 [可叠加使用] 。 二、优惠时的优先级当用户有多个优惠,且多个优惠不能同时使用时,优惠的使用顺序如下: 面额越高优先级越高门槛越高优先级越高过期时间越近优先级越高领券时间越近优先级越高批次ID越小优先级越高 当用户有多个可叠加使用的优惠,但订单无法满足叠加使用的条件时,优惠的使用顺序如下: 面额越高优先级越高门槛越高优先级越高当面额与门槛均相同时,则随机使用顺序,此时不判断过期时间与领取时间。 三、一笔订单最多可使用的优惠数单笔订单最多可以使用20个单品优惠,以及8个全场优惠。 当订单可用的全场券超过8张时,微信支付将筛选可用券中面额最高的8张进行优惠计算,故无法保证得出最优解。
2021-01-16 - 微信卡券退出历史舞台后,继任产品「微信支付代金券」和「微信支付商家券」该如何选择
前言 公众平台在2021年02月26日发布了新公告「微信卡券将不再支持新创建“优惠券”通知」,原文点我直达 ,在微信卡券的「优惠券」退出历史舞台后,对于在微信生态内发放优惠券的需求,微信支付优惠券:商家券或支付券(即代金券)我们该如何去选择呢,且听我细细道来。 一、 产品简介 1.1 公众平台卡券 微信卡券功能是腾讯为商户提供的一套完整的电子卡券解决方案,商户可在法律允许的范围内通过该功能实现电子卡券生成、下发、领取、核销的闭环,并使用对账、卡券管理等配套功能,结合SNS、LBS等能力,更可在多渠道投放,进而拉新留存,沉淀用户。通过实现电子卡券的创建、投放、领取、使用,并配套数据对账、门店管理等功能,连接商家与用户 微信卡券功能可分为API接口功能和公众平台卡券功能,使用两种功能均可实现卡券生成、下发、领取、核销,有开发意愿的商户可使用API接口功能,无开发意愿商户可使用公众平台卡券功能 1.2 微信支付代金券 微信支付代金券是微信支付面向商户提供的一种营销工具。商户创建代金券后,可以发送给用户,当用户使用微信支付交易时,代金券会伴随交易自动核销/抵扣,帮忙商户便捷地落地营销活动 微信支付代金券分为全场券和单品券,全场券是基于商户交易订单进行减价,而单品券是基于订单中指定商品减价(下单时需上传单品信息)。全场券只可以配置满减券,单品券可以配置满减券和换购券。 1.3 微信支付商家券 微信支付商家券是微信支付为商户提供的电子优惠券解决方案,商家可在微信支付允许的范围内通过该功能实现商家优惠券信息生成、下发、领取、核销的闭环,并使用数据对账、券信息查询等配套功能完成商家券的管理操作。 微信支付商家券功能当前暂时仅提供API接口功能,有开发意愿的服务商或者商户可使用API接口完成商家券创建、发放、领取、核销、数据对账等全链路操作。未来微信支付将会为无开发意愿的商家提供商户平台页面配置商家券以及对应管理功能。 二、产品开通 2.1 公众平台卡券 已不支持新开,存量券可以通过接口进行修改、删除,不再支持新创建 2.2 微信支付代金券 微信支付代金券拥有两种产品模式,需要分别开通对应功能 开通预充值代金券权限 登录微信支付商户平台,进入「产品中心」->「我的产品」,开通「预充值代金券」产品权限 [图片] 开通免充值代金券权限 登录微信支付商户平台,进入「产品中心」->「我的产品」,开通「免充值代金券」产品权限 [图片] 注:免充值代金券当前开通还需要进行接口升级验收。 「点我查询升级进度」「点我查看免充值产品功能开通指引」 2.3 微信支付商家券 当前仅支持接口创建,无需特别开通功能,拥有微信支付商户号、微信支付服务商商户号均可使用。 三、产品特色 3.1 公众平台卡券 我可以省略吗? 3.2 微信支付代金券 微信支付代金券支持全场满减券、单品满减券、单品换购券,满足大多数日常营销需求。 营销活动除了基础的制券、发券,还包含使用优惠计算、退款、对账等复杂的流程。微信支付提供了完整的方案,可供商户/服务商使用。 商户可以在任意场景(例如:小程序、H5、APP等)调用API发券,也可以定义活动形式(例如:全员发券、新用户发券、抽奖发券等)。 可插入卡包,在券过期前,用户会收到过期提醒,提升核销转化率。 具备安全防刷能力,阻止黑产的不法行为,为营销资金保驾护航。 3.3 微信支付商家券 微信支付商家券可插入用户微信卡包,在券即将过期前,会收到过期提醒通知。通过消息通知,增强用户对商家券优惠感知,提升券的核销转化率,为商家带来更多的交易收益。 微信支付商家券支持在商家自有场景中发放(例如:商家小程序、H5网页、APP、公众号推文),还支持在微信支付流量场景中做投放(例如:附近发券、支付有礼、朋友圈等渠道)。流量渠道的丰富,极大的提升商家优惠所触及到的用户范围。 具备安全防刷能力,阻止黑产的不法行为,为商家营销资金保驾护航。 商家券可跳转商家自有“公众号”、“小程序”和“营销馆”,让用户更容易连接到商家的服务,获取更多商家品牌信息和活动优惠信息。 四、产品解析 4.1 「券」功能使用对象 4.1.1公众平台卡券 我想省略偷个懒 4.1.2 微信支付代金券 面向微信支付商户、微信支付服务商,使用前需要拥有微信支付商户号或微信支付服务商商户号。 4.1.3微信支付商家券 当前仅面向具备开发能力的微信支付商户、微信支付服务商,使用前需要拥有微信支付商户号或微信支付服务商商户号,并具备开发能力。 4.2 「券」的创建方式 4.2.1公众平台卡券 略······偷个懒 4.2.2 微信支付代金券 支持API创建 支持商户平台自助创建 微信支付商户后台->营销中心->创建全场/单品券 注:创建预充值代金券时,需要事先在商户后台->交易中心->充值/转入,充值代金券的活动预算,否则无法创建。 4.2.3微信支付商家券 当前仅支持API创建 后续会支持商户平台自助创建 「券」的业务模式 4.3 「券」的类型 4.3.1公众平台卡券 略······偷个懒 4.3.2 微信支付代金券 全场满减券 满X元减X元(例如:满10元减5元券),商户可在券的“适用范围”字段里向用户说明,券的适用商品情况(例如:“全场商品适用,特价商品除外”或“XX品牌商品适用”)。 单品营销 基于sku 商品编码(即:barcode id)的营销活劢(发单品券、单品实时立减/折扣等),单品营销是面向商品的营销,营销规则的配置基于商品而变。商品具有“多品类,多品牌,多业务线”特征,单品营销是同商品营销规则的集合。 单品满减券 基于单品,以固定金额进行优惠,如 5 元牛奶代金券,则购买牛奶可优惠 5元;商户可在券的“适用范围”字段里向用户说明,券的适用商品情况(例如:“XX品牌商品适用,不适用与XX商品同享优惠”)。 单品换购券 基于单品,以指定金额购买商品,需用户提前领券。如 5 元牛奶换购券,则凭券可以以 5 元的价格购买牛奶。商户可在券的“适用范围”字段里向用户说明,券的适用商品情况(例如:“XX品牌商品适用,不适用与XX商品”)。 注:以上代金券如部分商品不适用或不叠加可使用订单优惠标记功能,券需要消费者提前领取才可以在支付时自动抵扣(需满足优惠条件)。 4.3.3微信支付商家券 满减券 满X元减X元(例如:满10元减5元券),商户可在券的“适用范围”字段里向用户说明,券的适用商品情况(例如:“全场商品适用,特价商品除外”或“XX品牌商品适用”)。 换购券 满X元换商品,商户可以用换购券包装出时尚百货常见的“小样(单品)免费兑换券”(例如:2元换可乐)或“减至券“;商户可在券的“适用范围”字段里向用户说明,券的适用商品情况(例如:“XX品牌商品适用,不适用与XX商品”)。 折扣券 满X元享受X折,商户可在券的“适用范围”字段里向用户说明,券的适用商品情况(例如:“全场商品适用,特价商品除外”或“XX品牌商品适用”),包装出全场折扣券或者指定单品折扣券。 4.4 「券」的发放 4.4.1公众平台卡券 老规矩,略 4.4.2微信支付代金券 商家自有流量场景 4.4.3微信支付商家券 商家自有流量场景 微信支付流量场景 微信公众平台流量场景
2021-04-12 - 微信支付商户经营工具-「企业付款」与「现金红包」产品对比
产品 企业付款到零钱 企业付款到银行卡 现金/小程序红包 手续费 目前微信支付企业付款至用户零钱不收取费用 每笔按付款金额收取手续费,按金额0.1%收取,最低1元,最高25元 目前微信支付现金/小程序红包不收取费用 开通条件 1)入驻满足90天;2)截止今日往回推30天有连续不间断的交易;3)交易需为正常的健康交易。 1)入驻满足90天;2)截止今日往回推30天有连续不间断的交易;3)交易需为正常的健康交易。 1)入驻满足90天;2)截止今日往回推30天有连续不间断的交易;3)交易需为正常的健康交易。 发放方式 1)商户后台,2)接口发放 1)商户后台,2)接口发放 1)商户后台,2)接口发放,3)营销规则“满额送”发放,4)服务商代为实现 到账时效 正常情况下企业付款至用户零钱为准实时到账,付款后稍等片刻用户即可收到付款 付款到账时效为1-3日,最快次日到账 用户领取后,立即到用户零钱 付款给同一用户单笔最大额度 单笔上限:2万元 单笔上限:2万元 单笔上限:200元 付款给同一用户单笔最小额度 单笔最低额度:0.3元 单笔最低额度:0.01元 单笔最低额度:1元 付款给同一用户单日最大额度 单日上限:2万元 单日上限:2万元 单日上限:1000元 商户对外日付款总额度 日付款总金额:100万元 日付款总金额:100万元 日发放总金额:100万元 是否支持额度特殊申请 支持 支持 支持
2021-05-03 - 微信支付商户经营工具-「批量付款到零钱」产品
感冒中。。。我就先搬开发文档 简介 批量转账到零钱提供商户同时向多个用户微信零钱转账的能力。具有高效、免费、快速到账、安全等优点。商户可以使用批量转账到零钱用于费用报销、员工福利等场景,提高财务人员转账效率。 如何快速开通 灵活用工类企业、HRsaas类企业可以私信沟通(提供公司名称、联系方式、业务使用场景) 产品特点 高效:支持页面上传文件,免开发,一键向多人转账。 清晰:支持汇总及明细对账。 免费:不收取转账手续费,节约成本。 快速:转账后及时到账用户微信零钱;微信消息触达,用户及时获知入账详情。 安全:提供多种安全工具,确保资金安全。如:按需调整转账额度;支持收款账户限制;支持安全防刷,拦截恶意用户、小号、机器号码;支持实名校验; 开通条件 1)商户号入驻满90天 2)截止今日往回推30天连续不间断保持有交易。 3)保持正常健康交易 无需以上三种条件开通说明 特殊行业可由服务商代为申请,1-3个工作日开通该功能,无需以上三种条件 适用场景 1、主播/骑手/灵活用工佣金发放 主播在直播平台小程序申请打赏收入提现,提现收入使用批量付款发放给主播。 2、企业自有小程序/APP进行报销、工资发放等 企业员工在企业自有小程序完成报销款项申请,企业内部完成审核后,由企业通过批量付款功能发起批量转账到给员工。 限时活动:免费提现 政策有效期: 2021年1月1日-2021年12月31日,提现免费券入账日起一年内有效,单用户单年从单商户最多获得20万免费提现额度。 额度如何发放 额度发放是随批量转账付款时发放,如1月20日批量付款到个人的零钱账户1w元,用户将收到1w的免费提现额度,有效期自1月20日一年。若1月29日此用户又收到8K元,当日又会收到8K的免费提现额度,有效期自1月29日起一年。 提现额度发放截图展示 [图片] 写在最后 更多内容请关注 https://developers.weixin.qq.com/community/develop/article/doc/000e663ce2ce683b30fb16dab51013
2021-05-04 - 微信支付服务商-「微信支付分停车服务」产品介绍及政策说明
1. 简介 为提升停车场景下的支付便捷性,提高通行效率,微信支付为支付分分数达标的车主用户提供“先离场后扣费”服务,基于用户微信帐户和车牌的绑定关系,离场时对绑定账户自动扣费。用户一次开通,支持停车场均可使用。 1.1. 微信支付分关联性: a 仅限微信支付分达标的用户开通使用(分数门槛500); b 用户多次使用并按时完成订单支付有助于提升微信支付分; c 用户欠费后未按时还款,将记入微信支付分未按时支付记录。 2. 名词解释 名词 解释说明 微信支付分停车 基于用户微信帐户和车牌的绑定关系,为支付分分数达标的用户提供的在停车场景的先离场后扣费服务。 微信支付分停车场 即支持“微信支付分停车”的停车场,开通微信支付分停车的用户进入该类停车场时,微信支付会向用户发送入场提醒,用户离场时会自动抬杆放行并自动扣费,部分微信支付分停车场会有明确的“微信支付分停车”物料标识。 微信支付分 微信支付分是对个人支付行为的综合评价,主要由以下信息评估得出● 身份特质:稳定的实名信息以及个人基本信息 ● 支付行为:与使用微信支付相关的消费等行为 微信车主服务 微信车主服务是微信支付基于用户微信账户与车辆的绑定关系,通过车辆识别进行自动扣费的支付服务平台,目前提供停车、高速、加油场景的支付服务,微信支付分停车是微信车主服务平台下的一种服务能力。 垫资与欠费 在车主服务的“先通行后扣费”服务中,存在用户帐户资金不足无法完成支付服务的情况。微信侧提供垫资能力,先行垫付资金,保证商户及时收到款项。在用户端感知为“扣款失败”、“订单未支付”,微信车主服务将持续向用户发送扣款失败提醒,并尝试自动扣费,直到该笔订单支付完成。 3. 产品优势 [图片] 高效通行效率:用户开通服务后,在支持的停车场缴费时无需扫码,离场时识别车牌自动扣费,解决用户在出口扫码缴费造成的拥堵问题。 商家收款保证:在先离场后扣费的模式中,存在用户帐户资金不足无法支付服务的情况。微信提供垫资能力,先行垫付资金,确保收款的商户可以实收资金。 累积微信支付分:微信支付分500分以上用户优享,良好的支付行为记录将有助于提升用户的支付分。 4. 产品流程 4.1. 用户开通流程 用户通过线下物料进入商户停车缴费页面,在线开通微信支付分停车服务。开通后当笔订单即可使用服务。[图片] 4.2. 用户使用流程 用户在标有“微信支付分停车”的停车场离开时可直接驶出,离场后自动支付停车费。[图片] 4.3. 垫资流程 垫资:在先离场后扣费的模式中,存在用户帐户资金不足无法支付服务的情况。微信提供垫资能力,先行垫付资金,确保收款的商户可以实收资金,从而用户可以通行。 还款:支付失败后垫资的交易,用户实际并未完成支付,因此订单垫资后,商户可在小程序或app上展示用户的欠费状态引导完成欠费补缴,引导用户完成欠费补缴。用户还款行为将计入支付分守约记录并影响支付分与其后续的服务使用。[图片] 4.4. 用户管理流程 用户可在车主服务小程序进行车牌服务管理、扣费管理等。[图片] 5. 权限申请 微信支付分停车服务为先离场后扣费服务,商户需先申请该权限,以实现用户无需输入密码即可完成扣款服务的功能。 在该模式下,存在用户帐户资金不足以完成支付服务的情况。垫资能力可保证商户实收款项,避免出现坏账。 5.1. 确认是否符合申请要求 入驻后需根据指引认证客服电话:商家客服电话自助修改指引 5.2. 发起申请邮件 审核时间为7个工作日左右 5.3. 邮寄协议原文件 微信支付对接人收到邮件后发起内部流程,内部流程完毕后,会回复PDF版协议,打印PDF版协议并盖章,按照回复邮件中的快递地址邮寄,微信侧收到后进行协议归档,完成权限配置并邮件回复。 6. 政策相关 政策介绍 https://pay.weixin.qq.com/index.php/extend/commissionapply/show_commission_special_industry_qa?t=1
2021-07-13 - 微信支付企业付款到零钱提额指引
说明 根据相关规定,商户在申请提升付款额度时,需说明具体的付款用途和场景。请参考本指引提供材料进行提额申请。 本文章是正常途径申请提额,非通过BD或运营特殊申请指引 申请方式 下载企业付款到零钱提额申请表,参照说明填写表格后,按照以下标题、正文和附件格式将表格发送至指定邮箱,微信支付将在7个工作日内审核并通过邮件返回审核结果。 注意:无论审核结果为通过或驳回,审核人员都将进行回复,请勿重复提交同一申请或催审,以免审核效率降低。 -邮箱地址:WeChatPayFunds@tencent.com 邮件标题:【企业付款到零钱提额申请】-商户简称 正文内容: 1、商户号 2、商户名称 附件内容: 企业付款到零钱提额申请表 请将附件命名为“【企业付款到零钱提额申请表】-商户简称-日期”,例如“【企业付款到零钱提额申请表】-腾讯科技-20210907” 申请说明和示例 对于申请表的填写请参考以下说明和示例,按要求填写。 第一部分:基础申请信息(必填) 1)、商户号 示例:1901001234 2)、商户名称 示例: 商户全称:****科技有限公司 商户简称:**生活 3)、付款场景 说明:请参考以下分类,选择最适合实际付款场景的分类。若无适合场景,可选择其他并进行说明。 [图片] 示例: 付款给用户-线上现金营销 4)、付款原因说明 说明:对所选付款场景进行详细阐述,包括付款原因以及付款的业务流程。 示例:本公司经营在线充值卡回收业务,主要品牌为“XXX"。普通用户C在网站注册后,可以将个人持有的充值卡卡密录入系统,委托平台售卖。同时平台对接XX话费充值等消耗渠道,当C用户提交的卡密实际消耗后,用户销卡的金额自动进入用户的账户钱包,用户可以进行提现操作。 5)、公司业务规模 说明:如果是平台型业务,描述平台所连接的两方的量级(例如电商平台的卖家和买家数量);如果是面向普通用户的业务,描述用户量级。 示例:目前业务注册用户数10w,活跃用户数5w,日均付款资金量200w/日。 第二部分:平台截图(必填) 说明:粘贴截图至表格中,必须包含以下关键页面 1)、平台首页截图: 小程序/app/h5页面/web网页,图片中尽量包含“商户名称”便于我们了解该小程序和你申请的商户号之间的关系 2)、用户获得钱的前置流程图: 体现用户获得钱的前置场景和玩法,例如分销返佣场景下,需展示“用户购买 - 分享推广 - 获取佣金”等关键流程,必要时请在图片上加上相关说明和注释(请自行合并为一张大图) 3)、用户提现流程图: 体现用户获得钱的整体付款流程,例如用户主动提现或后台系统主动付款的流程,必要时请在图片上加上相关说明和注释(请自行合并为一张大图) 示例: 图一 [图片] 图二 [图片] 图三 [图片] 第三部分:承诺函(必填) 下载下方或表格中的承诺函文档,打印后填写商户号、申请额度等信息,并加盖公司公章,然后将盖章后的承诺函扫描件粘贴至表格内。 企业付款到零钱额度调整承诺函 注意事项 请查看自己当前额度上限后,再确认是否需要提升额度。申请额度需和业务场景额度匹配,请勿申请虚高额度(提现额度查询入口:商户平台-产品中心-企业付款到零钱-设置页面,点开调整额度,坐标轴最右即为当前最高额度)[图片] 仅支持提升额度上限 ,调低额度请自行在商户后台进行操作 申请额度说明: 单日额度,最高上限100万 单笔额度及单人单日收款额度,最高上限2万 单人单日额度不可低于单笔额度 承诺函内容请勿改动,包括额度单位“万”,例如5000元可写成0.5万 个体工商户需加盖公章,如无公章,请法人手写签名并盖手印(手印需盖在签名上) 其他:附加证明(选填) 说明:若选择场景为以下几类,请在附件中上传对应的证明材料。 所选场景 附加证明 佣金报酬 人力资源许可证或劳务派遣资质或税局下发的代征代缴资质 采购货款 双方货物采购合同 服务款项 双方服务合同 政府补贴 政府合作证明文件
2021-09-07 - 微信支付商户长时间无交易或主体信息变更未及时更新被冻结支付的恢复方法
支付冻结原因: 由于商户号长时间无任何交易行为,所以微信支付根据支付服务协议3.7条内容暂停了商户的相关权限,若仍需继续使用商户号,请按以下方法操作申请恢复使用,若未收到相关通知,请联系客服反馈申请恢复(拨打95017或微信搜索「腾讯客服」)。 电脑端恢复方法 超级管理员登录商户平台,在首页“重要通知”、右上角“消息中心”或超级管理员邮件进入查看通知,根据页面提示操作申请恢复; [图片] [图片] 如无入口可以尝试扫码登录商户后台后「点我」进行尝试 手机端恢复方法 第一步:超级管理员打开“微信支付商家助手”小程序; 第二步:点击小程序顶端“小黄条”前往恢复; 第三步:点击【确认】申请恢复支付功能。 [图片] 常见问题 Q1:为什么平台提示需要签约? A:因商户平台签约记录需要重新完善,完善后微信支付提供的服务以及收取的费率不变,请尽快登录平台签署协议。 Q2:为什么我没有看到商户平台首页的重要通知? A:目前只有商户超级管理员登录,才能看到通知。 Q3:我已经登录商户平台更新资料了,为什么支付功能还未恢复? A:更新资料需要审核,请先查询资料审核是否已通过。若未通过,需要重新发起修改申请。 资料审核周期:1-3个工作日 资料审核通过:1-2个工作日恢复支付功能 Q4:电脑端已提交了资料更新,怎么查询审核进度? A:请登录商户平台,在【账户中心】->【商户信息】->“企业信息与经营信息” 页面查询。 Q5:为什么超级管理员点击“前往恢复”页面空白呢? A:请将浏览器切换到“非兼容模式”后,再试尝试点击恢复,如仍存在异常请提供截图联系客服反馈。
2021-09-13 - 埋点?数据统计?关闭浏览器前发送请求?看完这一篇搞定
点赞、收藏、评论,三连击,回家不迷路 故事是这样发生的,由于公司业务发展需要,产品需要对不同人访问做一个访问记录及访问时长,这个访问时长就很难了,从开始到结束这个过程,我们需要把时间上传服务器,如果正常埋点你会发现,还没发送完成就已经被中止了。<br> 于是我在百度上不停的查找方法,有时搜索手势不对,对收搜结果差别还是很大的,刚开始搜索我找到了一个叫[代码]onbeforeunload[代码]的事件,这是关闭浏览器前或者刷新浏览器会触发的事件,让我感觉希望的前线,具体如下: onbeforeunload 事件属性 [代码] windowwindow.onbeforeunload=function(e){ var e = window.event||e; e.returnValue=("确定离开当前页面吗?"); } [代码] 等你搬到你代码里面你会发现,确实可以阻拦浏览器关闭或者刷新,但是出现弹框后所以js都不会执行了,请求也会停留,这。。。不符合我的需求啊。onbeforeunload详情解析<hr> 无奈,我只能继续开始寻找,寻找一个适合需求的方法,几经查找几个小时,发现一个新的方法它叫[代码]navigator.sendBeacon[代码],刚开始我是一脸蒙逼的,内心不停的思索,这个玩意能满足我的需求?这么简单能发起请求?这东西怎么用,会不会很复杂?三连击连问。说实话能,解决三连问的问题 今日主角 navigator.sendBeacon(url, data) [代码]url[代码] [代码]url[代码] 参数表明 [代码]data[代码] 将要被发送到的网络地址。 [代码]data[代码] [代码]data[代码] 参数是将要发送的 [代码]ArrayBufferView[代码] 或 [代码]Blob[代码], [代码]DOMString[代码] 或者 [代码]FormData[代码] 类型的数据。 MDN文档更多详情解析 以下是几种格式传参方式: [代码]// 1. DOMString类型,该请求会自动设置请求头的 Content-Type 为 text/plain const reportData = (url, data) => { navigator.sendBeacon(url, data); }; // 2. 如果用 Blob 发送数据,这时需要我们手动设置 Blob 的 MIME type, // 一般设置为 application/x-www-form-urlencoded。 const reportData = (url, data) => { const blob = new Blob([JSON.stringify(data), { type: 'application/x-www-form-urlencoded', }]); navigator.sendBeacon(url, blob); }; // 3. 发送的是Formdata类型, // 此时该请求会自动设置请求头的 Content-Type 为 multipart/form-data。 var data = { name: '前端名狮子' , age: 20 }; const reportData = (url, data) => { const formData = new FormData(); Object.keys(data).forEach((key) => { let value = data[key]; if (typeof value !== 'string') { // formData只能append string 或 Blob value = JSON.stringify(value); } formData.append(key, value); }); navigator.sendBeacon(url, formData); }; [代码] [代码]// 监听网页关闭或刷新 window.addEventListener('unload', logData, false); function logData() { navigator.sendBeacon("/log", analyticsData); } [代码] 先讲解线上测试方法 判断是否发送成功线上测试地址 测试代码写法,如下: [代码]if ('sendBeacon' in navigator) { window.addEventListener('pagehide', function() { navigator.sendBeacon( 'https://putsreq.herokuapp.com/4GE2nVUuDoDGsNyKES2G', 'Sent by a beacon!2'); }, false); } [代码] 测试结果查看方法如下(可以结合图片): 可以查看[代码]Requests[代码]次数。 测试前,可以清空记录[代码]clear history[代码]。 查看发送请求头及内容[代码]Headers[代码]。 [图片] 可以利用浏览器自带保留请求接口或控制台输出的方法,刷新查看是否发送请求(这里需要注意几点) 1.接口查看需要先点击[代码]preserve log[代码],然后点击[代码]All[代码],在网络捉取才会出现,因为[代码]navigator.sendBeacon[代码]发送的请求类型不属于平时请求的[代码]XHR[代码]类型。 2.控制台查看需要先点击[代码]preserve log[代码],然后刷新就不会把之前输出的全部清空。 3.可以结合下面的图片进行操作,很方便。最后上传完可以叫后端查看数据是否提交成功了。 [图片] [图片] 浏览器兼容性 [图片] 本人掘金号 喜欢记得点个赞,谢谢
2021-08-04 - 微信账号注销需要取消绑定微信开放平台,微信开放平台官方给出不允许取消注销,那么我要怎么注销
国家工信部部长告诉我向互联网信息服务平台反映,或提供详实书面材料,向相关企业注册所在地的通信管理局反映,协调解决。 我不是微信开发者,也不是微信编辑者,由于之前不小心注册了开放平台的账号,希望官方人员帮忙协调注销账号 我提供一下开放平台账号: wecharmsgs@gmail.com l13066180038@163.com 麻烦帮忙注销一下
2021-05-18 - 公众平台/小程序服务端API的access_token的内部设计
一、背景 对于使用过公众平台的API功能的开发者来说,access_token绝对不会陌生,它就像一个打开家门的钥匙,只要拿着它,就能使用公众平台绝大部分的API功能。因此,对于开发者而言,access_token的使用方式就变得尤其的重要。在日常API接口的运营中,经常遇到各种的疑问:为什么我的access_token突然非法了?为什么刚刚拿到的access_token,用了10min就过期了?对于这些疑问,我们提供出access_token的设计方案,便于开发者对access_token使用方式上的理解。 对于access_token的获取,可以参考公众平台的官方文档:auth.getAccessToken、获取Access token 二、access_token的内部设计 2.1 access_token的时效性 众所周知,access_token是通过appid和appsecret来生成的。内部设计的步骤如下: (1)开发者通过https请求方式: GET https://API.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET,传入appid及apppsecret的参数 (2)公众平台后台会校验appid和哈希(appsecret)是否与存储匹配,若匹配,结合当前时间戳,生成新的access_token。 (3)生成新的access_token的同时,会对老的access_token的过期时间戳更新为当前时间戳。 (4)返回新的access_token给开发者。 这里以图示的方式说明一下,新旧token交替过程: [图片] 从上图需要注意的几点: (1)公众平台存储层只会存储新老两个access_token,意味着假设开发者重复调用3次接口,则会导致最早的access_token立刻失效。 (2)虽然请求新的access_token后,老的access_token过期时间会更新为当前时间,但也不会立刻失效,原理请参考 【2.2 access_token 的逐渐失效性】 (3)出于信息安全考虑,公众平台并不会明文存储appsecret,仅存储appid以及appsecret的哈希值。因此开发者要妥善保管appsecret。当appsecret疑似泄露时,需要及时登录mp.weixin.qq.com重置appsecret。 2.2 access_token 的逐渐失效性 从【access_token的时效性】了解到,当开发者请求获取新的access_token时,老的access_token过期时间会被更新为当前时间,但此时不会立刻失效,因为公众平台会提供【5分钟的新老access_token交替缓冲时间】,因此也称为access_token 的逐渐失效性。 实现的原理是: 1. 由于老的access_token过期时间戳已被刷新,所以在API接口请求期间,带上的access_token解开后,过期时间戳会加上5分钟,然后和当前设备时间进行比对,若超过当前设备时间,判断为失效。 2. 公众平台的设备会保持时钟同步,但设备之间仍然可能会存在1-2分钟的时间差异,所以【5分钟】并非绝对的时间值。当开发者获取到新的access_token后应该尽快切换到新的access_token。 [图片] 从上图需要注意的几点: (1)由于存在设备时间同步的差异,可能会导致开发者遇到拿着老的access_token请求API接口,部分请求成功,部分请求失败的情况,建议开发者获取到新的access_token后尽快使用。 (2)通过理解两个图示,对开发者来说,access_token是相当关键且不能乱调的接口,建议开发者统一管理access_token,以免造成多次请求导致access_token失效。
2021-05-11 - 公众号主页的自定义菜单和详情页的不一样,删除重新上传了也不管用,怎么解决?
详情页的自定义菜单没地方修改呀,虽然看说明文档说是和主页的自定义菜单一样,但我在后台改了只变了主页的,详情页的没变,怎么解决呢? [图片] 这是主页的自定义菜单 [图片] 这是详情页的自定义菜单。 有知道怎么解决的大佬求支招!
2020-12-21 - 自定义菜单设置后与手机端显示不同步
1、菜单未发布成功 菜单发布后会24小时内在手机端同步显示。若未显示请重新进入菜单编辑页面,页面如果提示“请设置当前菜单内容”,则代表还有菜单未完善内容,请完善菜单内容或删除空菜单后重新发布。 [图片] 菜单发布成功状态: 确认发布之后页面提示“保存并发布成功”则代表发布成功,自定义菜单左上角会提示具体所需同步时间。发布成功后,菜单状态由“菜单编辑中”变为“菜单已发布”。 [图片] 温馨提示: 1)菜单发布后,粉丝不会收到更新提示,若多次编辑,以最后一次保存为准。 2)编辑中的菜单只要完善了菜单名称即可预览,整体发布则需要每一个菜单都完善内容,否则无法发布同步至手机端。 2、后台设置的自定义菜单和公众号资料页显示不一致 如果自定义菜单内容设置的是“发送消息”,在公众号的资料页不会展示此菜单;若菜单设置的是“跳转网页”、“跳转小程序”,则会在资料页展示。 [图片] 3、使用开发模式设置自定义菜单 开发者可以通过自定义菜单接口进行个性化设置(未认证订阅号暂不支持),开发者可通过用户分组、性别、手机操作系统及地区来设置自定义菜单。设置后,不同条件的用户会看到不同的自定义菜单展示。若使用开发者模式设置菜单后显示不一致,可查看相关开发文档,检查菜单接口数据。 开发文档可点击链接查阅了解:https://mp.weixin.qq.com/wiki
2020-06-05 - 免充值产品测试验收用例的wechatpay-axios-plugin教学帖
社区内大佬们都有贡献 「免充值代金券」 的测试用例实现,这篇文章也来凑一下热闹,顺带帮你把一下为啥要做这个 「测试验收」 以及 「验收注意」 细节。 引言 官方用例文档链接 一共25页,非常详细,照着描一步步做,很快就能验收完。本篇作为「教学帖」,试着让友商们理解,这个验收的重要性,如果希望能够获取帮助直接验收,请阅读代金券接口升级验收脚本 用例组合1001+1002+1003+1004+1005。 安装nodejs sdk 本篇以 [代码]wechatpay-axios-plugin[代码] 这款npm开发包展开,详细介绍可阅读 从APIv3到APIv2再到企业微信,这款微信支付开发包的README你应该来读一读。 [代码]npm install wechatpay-axios-plugin@"v0.5.5" [代码] v0.6系列做了[代码]返回数据签名强校验[代码],以下示例代码需要做特殊处理,本篇以v0.5.5展开。 获取沙箱密钥 先要理解,沙箱环境是个仿真环境,不是生产环境,友商朋友们应该做环境隔离。起步需要商户使用生产环境的 [代码]API密钥[代码],去获取[代码]沙箱密钥[代码],后续所有[代码]沙箱环境[代码]操作都要使用由[代码]沙箱密钥[代码]生成的[代码]数据签名sign[代码]。 [代码]const { Wechatpay, Formatter } = require('wechatpay-axios-plugin'); const mchid = '你的商户号'; const secret = '你的32字节的`API密钥`字符串'; const appid = '你的APPID字符串'; const mch_id = mchid; const noop = {serial: 'any', privateKey: 'any', certs: {any: undefined}}; // 实例化一个对象 let wxpay = new Wechatpay({ secret, mchid, ...noop }); const { data: { sandbox_signkey } } = await wxpay.v2.sandboxnew.pay.getsignkey({ mch_id, nonce_str: Formatter.nonce() }); [代码] 1001 付款码(刷卡)支付 订单金额 [代码]5.01[代码] 元,其中 [代码]0.01[代码] 元使用免充值券,用户实际支付 [代码]5.00[代码] 元。验证商户具备正确解析及识别免充值代金券字段的能力。 1001.1 请求支付 [代码]// 重新实例化一个沙箱环境的对象 wxpay = new Wechatpay({ secret: sandbox_signkey, mchid, ...noop }); // 模拟一个商户订单号 let out_trade_no = `SD${+new Date()}_501`; const { data: { coupon_fee, settlement_total_fee, total_fee } } = await wxpay .v2.sandboxnew.pay.micropay({ appid, mch_id, nonce_str: Formatter.nonce(), out_trade_no, body: 'dummybot', total_fee: 501, spbill_create_ip: '127.0.0.1', auth_code: '120061098828009406' }); console.table({ 代金券金额: coupon_fee, 应结订单金额: settlement_total_fee, 订单金额: total_fee }); [代码] 打印日志应如下: [代码]┌──────┬─────┐ │ (index) │ Values │ ├──────┼─────┤ │ 代金券金额 │ '1' │ │应结订单金额 │ '500' │ │ 订单金额 │ '501' │ └──────┴─────┘ [代码] 1001.2 获取支付结果 [代码]const { data: { settlement_total_fee, total_fee, coupon_fee, coupon_fee_0, coupon_type_0, coupon_count, } } = await wxpay .v2.sandboxnew.pay.orderquery({ appid, mch_id, nonce_str: Formatter.nonce(), out_trade_no, }); console.table({ 代金券金额: coupon_fee, 应结订单金额: settlement_total_fee, 订单金额: total_fee, 单个代金券支付金额: coupon_fee_0, 代金券类型: coupon_type_0, 代金券使用数量: coupon_count }); [代码] 打印日志应如下: [代码]┌──────────┬──────┐ │ (index) │ Values │ ├──────────┼──────┤ │ 代金券金额 │ '1' │ │ 应结订单金额 │ '500' │ │ 订单金额 │ '501' │ │单个代金券支付金额 │ '1' │ │ 代金券类型 │ 'NO_CASH'│ │ 代金券使用数量 │ '1' │ └──────────┴──────┘ [代码] 1002 付款码(刷卡)支付退款 订单金额 [代码]5.02[代码] 元,其中 [代码]0.01[代码] 元使用免充值代金劵,实际支付 [代码]5.01[代码] 元,退款查询升级。 1002.1 请求支付 [代码]//模拟重置一个商户订单号 out_trade_no = `SD${+new Date()}_502`; const { data: { coupon_fee, settlement_total_fee, total_fee, } } = await wxpay .v2.sandboxnew.pay.micropay({ appid, mch_id, nonce_str: Formatter.nonce(), out_trade_no, body: 'dummybot', total_fee: 502, spbill_create_ip: '127.0.0.1', auth_code: '120061098828009406' }); console.table({ 代金券金额: coupon_fee, 应结订单金额: settlement_total_fee, 订单金额: total_fee }); [代码] 打印日志应如下: [代码]┌────────┬─────┐ │ (index) │ Values │ ├────────┼─────┤ │ 代金券金额 │ '1' │ │ 应结订单金额 │ '501' │ │ 订单金额 │ '502' │ └────────┴─────┘ [代码] 1002.2 获取支付结果 [代码]const { data: { settlement_total_fee, total_fee, coupon_fee, coupon_fee_0, coupon_type_0, coupon_count } } = await wxpay .v2.sandboxnew.pay.orderquery({ appid, mch_id, nonce_str: Formatter.nonce(), out_trade_no, }); console.table({ 商户订单号: out_trade_no, 代金券金额: coupon_fee, 应结订单金额: settlement_total_fee, 订单金额: total_fee, 单个代金券支付金额: coupon_fee_0, 代金券类型: coupon_type_0, 代金券使用数量: coupon_count }); [代码] 打印日志应如下: [代码]┌──────────┬────────────┐ │ (index) │ Values │ ├──────────┼────────────┤ │ 商户订单号 │'SD1618966329677_502'│ │ 代金券金额 │ '1' │ │ 应结订单金额 │ '501' │ │ 订单金额 │ '502' │ │单个代金券支付金额│ '1' │ │ 代金券类型 │ 'NO_CASH' │ │ 代金券使用数量 │ '1' │ └──────────┴─────────────┘ [代码] 1002.3 请求退款 [代码]const { data: { cash_refund_fee, cash_fee, refund_fee, total_fee } } = await wxpay .v2.sandboxnew.pay.refund({ appid, mch_id, nonce_str: Formatter.nonce(), out_trade_no, out_refund_no: `RD${out_trade_no}`, total_fee: 502, refund_fee: 501, }); console.table({ 退款金额: refund_fee, 标价金额: total_fee, 现金支付金额: cash_fee, 现金退款金额: cash_refund_fee, }); [代码] 打印日志应如下: [代码]┌────────┬─────┐ │ (index) │ Values │ ├────────┼────┤ │ 退款金额 │ '502' │ │ 标价金额 │ '502' │ │ 现金支付金额 │ '501' │ │ 现金退款金额 │ '501' │ └───────┴─────┘ [代码] 1002.4 获取退款结果 [代码]const { data: { settlement_total_fee, total_fee, cash_fee, settlement_refund_fee, coupon_refund_fee_0, coupon_type_0_0, coupon_refund_fee_0_0, refund_fee_0, coupon_refund_count_0, } } = await wxpay .v2.sandboxnew.pay.refundquery({ appid, mch_id, out_trade_no, nonce_str: Formatter.nonce(), }); console.table({ 应结订单金额: settlement_total_fee, 订单金额: total_fee, 现金支付金额: cash_fee, 退款金额: settlement_refund_fee, 总代金券退款金额: coupon_refund_fee_0, 代金券类型: coupon_type_0_0, 总代金券退款金额: coupon_refund_fee_0_0, 申请退款金额: refund_fee_0, 退款代金券使用数量: coupon_refund_count_0, }); [代码] 1003 JSAPI/APP/Native支付 订单金额 [代码]5.51[代码] 元,其中 [代码]0.01[代码] 元使用免充值券,实际支付 [代码]5.50[代码] 元。 验证正常支付流程,商户使用免充值代金券支付。 1003.1 统一下单 [代码]//模拟重置一个商户订单号 out_trade_no = `SD${+new Date()}_551`; const {data: { prepay_id } } = await wxpay .v2.sandboxnew.pay.unifiedorder({ appid, mch_id, out_trade_no, nonce_str: Formatter.nonce(), body: 'dummybot', total_fee: 551, notify_url: 'https://www.weixin.qq.com/wxpay/pay.php', spbill_create_ip: '127.0.0.1', trade_type: 'JSAPI' }); console.table({ 预支付交易会话标识: prepay_id }); [代码] 1003.2 获取支付结果 [代码]const { data: { out_trade_no, total_fee, cash_fee, coupon_fee, coupon_count, coupon_fee_0, coupon_type_0, coupon_fee_0 } } = wxpay .v2.sandboxnew.pay.orderquery({ appid, mch_id, out_trade_no, nonce_str: Formatter.nonce(), }); console.table({ out_trade_no, total_fee, cash_fee, coupon_fee, coupon_count, coupon_fee_0, coupon_type_0, coupon_fee_0 }); [代码] 1004 JSAPI/APP/Native支付退款 订单金额 [代码]5.52[代码] 元,其中 [代码]0.01[代码] 元使用免充值券,实际支付 [代码]5.51[代码] 元。 1004.1 统一下单 [代码]//模拟重置一个商户订单号 out_trade_no = `SD${+new Date()}_551`; const {data: { prepay_id } } = await wxpay .v2.sandboxnew.pay.unifiedorder({ appid, mch_id, out_trade_no, nonce_str: Formatter.nonce(), body: 'dummybot', total_fee: 552, notify_url: 'https://www.weixin.qq.com/wxpay/pay.php', spbill_create_ip: '127.0.0.1', trade_type: 'JSAPI' }); console.table({ 预支付交易会话标识: prepay_id }); [代码] 1004.2 获取支付结果 [代码]const { data: { out_trade_no, total_fee, cash_fee, coupon_fee, coupon_count, coupon_fee_0, coupon_type_0, coupon_fee_0 } } = wxpay .v2.sandboxnew.pay.orderquery({ appid, mch_id, out_trade_no, nonce_str: Formatter.nonce(), }); console.table({ out_trade_no, total_fee, cash_fee, coupon_fee, coupon_count, coupon_fee_0, coupon_type_0, coupon_fee_0 }); [代码] 1004.3 请求退款 [代码]const { data: { cash_refund_fee, cash_fee, refund_fee, total_fee } } = await wxpay .v2.sandboxnew.pay.refund({ appid, mch_id, nonce_str: Formatter.nonce(), out_trade_no, out_refund_no: `RD${out_trade_no}`, total_fee: 552, refund_fee: 551, }); console.table({ 退款金额: refund_fee, 标价金额: total_fee, 现金支付金额: cash_fee, 现金退款金额: cash_refund_fee, }); [代码] 打印日志应如下: [代码]┌───────┬────┐ │ (index) │ Values│ ├───────┼────┤ │ 退款金额 │ '552' │ │ 标价金额 │ '552'│ │现金支付金额│ '551' │ │现金退款金额│ '551' │ └──────┴────┘ [代码] 1004.4 获取退款结果 [代码]const { data: { settlement_total_fee, total_fee, cash_fee, settlement_refund_fee, coupon_refund_fee_0, coupon_type_0_0, coupon_refund_fee_0_0, refund_fee_0, coupon_refund_count_0, } } = await wxpay .v2.sandboxnew.pay.refundquery({ appid, mch_id, out_trade_no, nonce_str: Formatter.nonce(), }); console.table({ 应结订单金额: settlement_total_fee 订单金额: total_fee 现金支付金额: cash_fee, 退款金额: settlement_refund_fee 总代金券退款金额: coupon_refund_fee_0 代金券类型: coupon_type_0_0, 总代金券退款金额: coupon_refund_fee_0_0 申请退款金额: refund_fee_0 退款代金券使用数量: coupon_refund_count_0, }); [代码] 1005 交易对账单下载 使用了免充值券的订单,免充值券部分的金额不计入结算金额。验证商户对账能正确理解到这一点,对账无误。这里预期会返回 [代码]1269[代码] 条明细数据。 汇总结果:总交易单数,应结订单总金额,退款总金额,充值券退款总金额,手续费总金额,订单总金额,申请退款金额。 这里数据应为: [代码]1269, `10.79, `5.93, `0.24, `0.0,`11.27, `6.37 [代码] 以生产标准为例,查询当前时间偏移两天以前的账单: [代码]const { data } = await wxpay .v2.sandboxnew.pay.downloadbill({ appid, mch_id, bill_type: 'ALL', bill_date: ( new Date(+new Date() + (8 - 48)*3600*1000) ).toISOString().slice(0, 10), nonce_str: Formatter.nonce(), }, { transformResponse: [] }); console.table(data); [代码] 打印日志形如: [代码]交易时间,公众账号ID,商户号,子商户号,设备号,微信订单号,商户订单号,用户标识,交易类型,交易状态,付款银行,货币种类,应结订单金额,代金券金额,微信退款单号,商户退款单号,退款金额,充值券退款金额,退款类型,退款状态,商品名称,商户数据包,手续费,费率,订单金额,申请退款金额,费率备注 `2016-05-04 02:18:18,`wxf7c30a8258df4208,`10014843,`0,`harryma007,`4.00123E+27,`autotest_20160501030456_45023,`oT2kauIMXH398DZBeJ4m22CuSDQ0,`NATIVE,`REFUND,`PAB_DEBIT,`CNY,`0,`0,`2.00123E+27,`REF4001232001201605015390231647,`0.01,`0,`ORIGINAL,`PROCESSING,`body中文测试,`attach中文测试,`0,`0.60%,`0,`0.01,` `2016-05-04 02:18:18,`wxf7c30a8258df4208,`10014843,`0,`harryma007,`4.00123E+27,`autotest_20160501060418_79156,`oT2kauIMXH398DZBeJ4m22CuSDQ0,`NATIVE,`REFUND,`PAB_DEBIT,`CNY,`0,`0,`2.00123E+27,`REF4001232001201605015391766944,`0.01,`0,`ORIGINAL,`PROCESSING,`body中文测试,`attach中文测试,`0,`0.60%,`0,`0.01,` ... 14:51:51,`wxf7c30a8258df4208,`10014843,`0,`harryma8888,`4.00968E+27,`wxautotest1462344441,`oT2kauGtJag902bjdvevrJbpGuxo,`NATIVE,`SUCCESS,`CMBC_CREDIT,`CNY,`0.05,`0.01,`0,`0,`0,`0,`中文[body],`测试中文[attach],`0,`0.60%,`0.05,`0,` 总交易单数,应结订单总金额,退款总金额,充值券退款总金额,手续费总金额,订单总金额,申请退款总金额 1269,`10.79,`5.93,`0.24,`0,`11.27,`6.37 [代码] 一铲到底 以下是一键验收全流程的一个[代码]魔性 chain[代码]到底的实现,感谢您阅读至此。 [图片] 本文如果对你开通 「免充代金券」 功能有帮助,那就来个赞呗。
2021-05-10 - 微信支付服务商成长历程-「服务商风控专题」更新时间 2021-04-19
前言 服务商有责任和义务配合,且违规商户的数量会影响服务商渠道质量,渠道质量影响产品使用或活动资格等,务必重视。 微信支付违规商户处理规则: 常见违规的情况,和处罚措施。 https://pay.weixin.qq.com/index.php/public/apply_sign/protocol_violation 为什么要排查商户?为什么正常商户会有排查或处罚?有违规记录显示(含交易拦截-额度限制)的商户都需要处理吗? 1、 风控不是故意刁难商户,是平台方针对可疑交易的安全措施,服务商平台会显示违规,如果没有显示具体原因,就是有可疑交易,交易异常,不用乱猜原因。 2、 首先你并不知道商户实际会不会做什么“坏事”,一切源于猜测。即使看了后台该商户的订单情况,但有异常的订单大都被拦截了,所以纯粹看订单没有意义。尤其是违规和可疑交易不是只有套现这一种,还有串费率、跨类目经营等等,不是说金额大就是可疑,如果需要详细了解,建议去学风控专业知识。尽量配合平台方调单或整改即可,具体风控规则不对外。 3、 建议所有记录都要处理,或者根据商户需求来处理,比如说如果影响到了商户正常交易,或服务商排查是正常商户,可在服务商后台代商户提交申诉材料。 简述服务商风控排查思路 具体风控策略不对外。 以下仅为个人见解,非官方风控文档。 申诉资料审核周期:3-5个工作日。一般三个工作日左右,超过五个工作日,可以找拨打「95017」咨询,资料审核通过:1-2个工作日恢复支付功能。 1、微信支付异常提醒 微信支付会发异常邮件、站内信、微信群通知服务商旗下商户有疑问,去服务商平台->服务商功能->风险商户管理查看,按要求提交调单、整改材料。对于有违规的商户不要抱有侥幸心理。 注意:建议养成定期查看风险商户及商户排查的习惯,出现调单超时被处罚后再申诉会比较麻烦。 2、 对于商户需要调单、整改有疑问 一般是商户部分交易异常或者投诉较为严重,需要核查,配合提交资料即可,属于正常商户排查,不用乱猜原因。提交后显示已处理,这时候是在审资料,后续结果如有处罚会在同样位置有记录。 3、对于商户关闭支付或结算等处罚有疑问 一般是有较大范围交易异常或违规且有一定的佐证,先自行排查商户是否有问题,没有问题的话就提交申诉。申诉一般是邮件反馈结果。 4、 需邮件补充额外材料的说明 如果审核人员对提交的调单或申诉材料还有疑问的,会人工发邮件要求补充,直接回复邮件就可以,如果需要中转邮件给服务商负责的处理人的,需要带有原邮件信息,以防处理人员用商户号搜不到回复邮件。这点在服务商后台看不到动态和需要补充的内容,只会显示处理中或已处理。一般情况下处理结果会邮件回复。(如果是申诉成功,会在后台有恢复额度、支付或者其他记录) 5、 微信支付额度限制。 这是遇到可疑交易的风控拦截,比如提示:该笔交易异常、信用卡超限、超过收款限额、商户违规不支持收款等。 交易拦截数据一天整理一次,当天的拦截,第二天才能在后台看到记录。有异议同样提交申诉资料处理。 怎么区分C端拦截和B端拦截,大部分的C端的交易拦截会在拦截提示语上就有“点击查看处理办法”,且在服务商后台没有拦截记录,且一般拦截话术为该笔交易。而B端拦截一般带有“商户”字眼。请务必以实际情况为准。 6、特约商户准备在某段时间做活动或其他事情,交易量会暴增,会有风控风险吗? 理论上不会,只要是正常交易都是可以的;期间注意有没有邮件或者商户平台有没有调单通知,有的话积极配合就行,发生问题在平台上面提交申诉。 7、其他 如果已有待处理单的话,就不能提交申诉,且七天内只能申诉一次。如果时间过久,就要联系「95017」反馈。 写在最后 有问题可以点头像私信,有其他想了解的可以跟帖回复,也可以私信加群 更多服务商相关文档可查看:https://developers.weixin.qq.com/community/develop/article/doc/000e663ce2ce683b30fb16dab51013
2021-04-19 - 微信支付服务商成长历程-「做支付务必了解的央行政策文件」更新时间 2021-04-18
前言 本文主要列举七个文件,包括支付行业三座大山:央行217号文,281号文,296号文,建议重点关注,合规才能活下去(暂不含收单外包服务机构备案内容)。 1、 银支付〔2017〕14号《中国人民银行支付结算司关于开展违规“聚合支付”服务清理整治工作的通知》 2017年2月发布了《中国人民银行支付结算司关于开展违规“聚合支付”服务清理整治工作的通知》,收单机构与聚合支付技术服务商合作不得将商户资质审核、受理协议签订、资金结算、收单业务交易处理、风险监测、密钥管理等业务外包;不得允许聚合技术服务商以大商户模式入网。违规处罚对聚合支付的影响给做聚合支付“二清”的企业敲警钟。 2、中国人民银行关于持续提升收单服务水平 规范和促进收单服务市场发展的指导意见(银发〔2017〕45号) 2017年3月发布《中国人民银行关于持续提升收单服务水平规范和促进收单服务市场发展的指导意见》,其对聚合支付主要内容有: 聚合支付 (1)鼓励为特约商户提供“聚合支付”服务 (2)聚合支付需严格遵守《中国人民银行关于加强银行卡收单业务外包管理的通知》 (3)要求收单机构强化聚合支付风险管理 对聚合支付的影响 央行认可聚合支付价值,需遵守银行卡收单外包规定 3、 银行卡收单外包服务机构评级指引 2017年10月,中国支付清算协会关于印发《银行卡收单外包服务机构评级指引》,对聚合支付所归属的收单外包进行评级管理,要求按照经营规模、财务状况、业务情况、风险情况、创新业务等项目对银行卡收单外包服务机构将进行每年一次的分类评级,并将分为ABCDE共5类8级。 对聚合支付的影响 对被定义为收单外包机构的聚合支付进行8评级管理,定时抽查。 4、关于进一步加强无证经营支付业务整治工作的通知 (银办发〔2017〕217号) 2017年11月发布了《关于进一步加强无证经营支付业务整治工作的通知》,即央行217文件,加强无证机构整治,持证机构自查于2017年年底完成,人行分支机构组织检查于2018年2月底前完成,人行总行现场督查2018年4月底前完成。 对聚合支付的影响 (1)全面检查持证机构,筛查无证机构名单,聚合支付通道紧张。 (2)以查处无证机构为切入点,结合无证整治和投诉举报等线索,彻查为其提供支付服务的持证机构 5、中国人民银行关于规范支付创新业务的通知(银发〔2017〕281号) 2017年12月发布中国人民银行关于规范支付创新业务的通知,即央行281文件,其对聚合支付的主要内容有: 聚合支付 (1)聚合支付业务宣传不得使用“零扣率”、“套现”等涉嫌不正当竞争、误导消费者或者违法违规行为的文字。 (2)小微商户使用卡收单,日累计1000元、月累计1万元。 (3)加强支付系统通道管理。 对聚合支付的影响 信用卡套现业务受影响,支付通道进一步紧张。 6、 《条码支付业务规范(试行)》(银发〔2017〕296号) 2017年12月印发《条码支付业务规范(试行)》的通知,即央行296文件,其主要内容有: 条码支付 (1)开展条码支付业务需要同时具备网络支付牌照和收单牌照 (2)2018年4月1日后,固态二维码单日累计限额500元。 对聚合支付的影响 聚合支付业务限额,合规性存疑。 7、 中国人民银行办公厅关于加强条码支付安全管理的通知(银办发〔2017〕242号) 2017年12月,中国人民银行办公厅关于《加强条码支付安全管理》的通知,对条码支付各项技术和安全指标进行规定。 对聚合支付的影响 聚合支付需要符合安全规定。 聚合支付的未来 在合法合规经营的条件下,聚合支付仍然有很好的发展前景。首先,存在即是合理的,在当前的支付环境下,聚合支付实现了“一码通”,提升了支付体验。其次,聚合支付可以减少收单设备重复布放,降低了支付机构的成本,存在市场空间。只要聚合支付走专业化之路,结合自身优势资源挖掘潜力拓展新的业务才能越走越远。 更多服务商相关文档可查看:https://developers.weixin.qq.com/community/develop/article/doc/000e663ce2ce683b30fb16dab51013
2021-04-18 - 微信支付商户免充值代金券接口升级验收脚本 用例组合1001+1002+1003+1004+1005(强迫症专用)
为什么要进行接口升级验收 商户开通免充值类产品功能后,微信支付接口和账单格式会有调整,商户内部系统需要适配升级后的接口参数。 注:本文所提供脚本代码需要电脑安装python环境才可以运行。 注意:一键验收脚本虽好,自己应用层代码也需要改哦 如何进行接口升级 准备事项 1) 微信支付商户号 -2)微信支付商户号对应32位秘钥 以下是升级脚本代码,替换自己的商户号和密钥运行即可 运行后可以在下面链接查询验收结果,脚本执行遇到报错或遇到网络问题可以多次运行直到成功 https://pay.weixin.qq.com/wiki/doc/api/tools/sp_coupon.php?chapter=15_6&index=4 [代码]import time from xml.dom import minidom import hashlib from heapq import heappush, heappop from collections import OrderedDict import requests SandBox_Url = 'https://api.mch.weixin.qq.com/sandboxnew/pay/getsignkey' MicroPay_Url = "https://api.mch.weixin.qq.com/sandboxnew/pay/micropay" UnifiedOrder_Url = "https://api.mch.weixin.qq.com/sandboxnew/pay/unifiedorder" OrderQuery_Url = "https://api.mch.weixin.qq.com/sandboxnew/pay/orderquery" ReFund_Url = "https://api.mch.weixin.qq.com/sandboxnew/pay/refund" RefundQuery_Url = "https://api.mch.weixin.qq.com/sandboxnew/pay/refundquery" DownloadBill_Url = "https://api.mch.weixin.qq.com/sandboxnew/pay/downloadbill" nonce_str = "5K8264ILTKCH16CQ2502SI8ZNMTM67VS" if __name__ == '__main__': mch_id = "" wxpay_key = "" def get_sign_key(mch_id, key): template = "<xml><mch_id><![CDATA[{0}]]></mch_id>" \ "<nonce_str><![CDATA[{1}]]></nonce_str>" \ "<sign><![CDATA[{2}]]></sign></xml>" nonce_str = "5K8264ILTKCH16CQ2502SI8ZNMTM67VS" encrypted_str = "mch_id=" + mch_id + "&nonce_str=" + nonce_str + "&key=" + key m = hashlib.md5() m.update(encrypted_str.encode('utf-8')) sign_key_request_data = template.format(mch_id, nonce_str, m.hexdigest().upper()) result = requests.post(SandBox_Url, sign_key_request_data) dom = minidom.parseString(result.content) root = dom.documentElement sandbox_signkey = '' if root.getElementsByTagName("return_code")[0].childNodes[0].nodeValue == "FAIL": retmsg = root.getElementsByTagName("return_msg")[0].childNodes[0].nodeValue raise RuntimeError("请求出了点小错误:" + retmsg) else: sandbox_signkey = root.getElementsByTagName("sandbox_signkey")[0].childNodes[0].nodeValue print("亲,这就是你的沙箱密钥了哦: \n" + sandbox_signkey) return sandbox_signkey def to_tree_map(param_map): keys = param_map.keys() heap = [] for item in keys: heappush(heap, item) sort = [] while heap: sort.append(heappop(heap)) res_map = OrderedDict() for key in sort: res_map[key] = param_map.get(key) return res_map def build_xml(param, wxpay_key): tree_map = to_tree_map(param) encrypted_str = "" for k in tree_map: encrypted_str += "{}={}&".format(k, tree_map[k]) encrypted_str = encrypted_str + "key=" + wxpay_key m = hashlib.md5() m.update(encrypted_str.encode('utf-8')) sign = m.hexdigest().upper() param.update(sign=sign) complete_tree_map = to_tree_map(param) xml = "<xml>" for k in complete_tree_map: xml += "<{}><![CDATA[{}]]></{}>".format(k, complete_tree_map[k], k) xml += "</xml>" return xml def request_handler(url, xml, desc): result = requests.post(url, xml) print(desc + "我才不是请求结果呢:\n" + result.content.decode("utf-8")) def upgrade(mch_id, wxpay_key): if mch_id == "": raise RuntimeError("出差错了哦,亲,你的商户号在哪呢?不填写商户号亲亲是要给空气去验收吗?") if wxpay_key == "": raise RuntimeError("出差错了哦,亲,你不填写商户密钥怎么继续呢,是用爱吗?") key = get_sign_key(mch_id, wxpay_key) nonce_str = "5K8264ILTKCH16CQ2502SI8ZNMTM67VS" out_trade_no = round(time.time()) MicroPay_param = { 'appid': "wxd678efh567hg6787", 'mch_id': mch_id, 'nonce_str': nonce_str, 'body': "check", 'out_trade_no': out_trade_no, 'total_fee': "501", 'spbill_create_ip': "8.8.8.8", 'auth_code': "120061098828009406", } MicroPay_xml = build_xml(MicroPay_param, key) request_handler(MicroPay_Url, MicroPay_xml, "亲,用例编号1001刷卡正常支付有结果了,快来看呀 \n") time.sleep(1) OrderQuery_param = { 'appid': "wxd678efh567hg6787", 'mch_id': mch_id, 'nonce_str': nonce_str, 'out_trade_no': out_trade_no, } OrderQuery_xml = build_xml(OrderQuery_param, key) request_handler(OrderQuery_Url, OrderQuery_xml, "亲,用例编号1001刷卡正常支付查询出结果了,快来看呀 \n") time.sleep(1) out_trade_no_2nd = round(time.time()) print("我是1002下单的订单号:",+ out_trade_no_2nd) MicroPay_param = { 'appid': "wxd678efh567hg6787", 'mch_id': mch_id, 'nonce_str': nonce_str, 'body': "check", 'out_trade_no': out_trade_no_2nd, 'total_fee': "502", 'spbill_create_ip': "8.8.8.8", 'auth_code': "120061098828009406", } MicroPay_xml = build_xml(MicroPay_param, key) request_handler(MicroPay_Url, MicroPay_xml, "亲,用例编号1002刷卡正常支付结果来了,你还抓紧不来看 \n") time.sleep(1) OrderQuery_param = { 'appid': "wxd678efh567hg6787", 'mch_id': mch_id, 'nonce_str': nonce_str, 'out_trade_no': out_trade_no_2nd, } OrderQuery_xml = build_xml(OrderQuery_param, key) request_handler(OrderQuery_Url, OrderQuery_xml, "亲,用例编号1002刷卡正常支付查询结果,结果好像有点不太对呢 \n") time.sleep(1) ReFund_param = { 'appid': "wxd678efh567hg6787", 'mch_id': mch_id, 'nonce_str':nonce_str, 'out_refund_no': out_trade_no, 'total_fee': "502", 'refund_fee': "501", 'out_trade_no': out_trade_no_2nd, } ReFund_xml = build_xml(ReFund_param, key) request_handler(ReFund_Url, ReFund_xml, "亲,下面展示的是用例编号1002刷卡支付退款的结果,你猜对不对 \n") time.sleep(1) RefundQuery_param = { 'appid': "wxd678efh567hg6787", 'mch_id': mch_id, 'nonce_str':nonce_str, 'out_trade_no': out_trade_no_2nd, } RefundQuery_xml = build_xml(RefundQuery_param, key) request_handler(RefundQuery_Url, RefundQuery_xml, "亲,用例编号1002刷卡支付退款查询结果返回中,加载不出来长按电源键或Ait+F4重试哦 \n") time.sleep(1) nonce_str = "5K8264ILTKCH16CQ2502SI8ZNMTM67VS" out_trade_no = round(time.time()) UnifiedOrder_param = { 'appid': "wxd678efh567hg6787", 'mch_id': mch_id, 'nonce_str': nonce_str, 'body': "check", 'out_trade_no': out_trade_no, 'total_fee': "551", 'notify_url':"https://www.weixin.qq.com/wxpay/pay.php", 'spbill_create_ip': "8.8.8.8", 'trade_type': "JSAPI", } UnifiedOrder_xml = build_xml(UnifiedOrder_param, key) request_handler(UnifiedOrder_Url, UnifiedOrder_xml, "亲,用例编号1003-公众号/APP/扫码正常支付有结果了,快来看呀 \n") time.sleep(1) OrderQuery_param = { 'appid': "wxd678efh567hg6787", 'mch_id': mch_id, 'nonce_str': nonce_str, 'out_trade_no': out_trade_no, } OrderQuery_xml = build_xml(OrderQuery_param, key) request_handler(OrderQuery_Url, OrderQuery_xml, "亲,用例编号1003-公众号/APP/扫码正常支付查询出结果了,快来看呀 \n") time.sleep(1) out_trade_no_2nd = round(time.time() * 1000) print("我是1002下单的订单号:",+ out_trade_no_2nd) UnifiedOrder_param = { 'appid': "wxd678efh567hg6787", 'mch_id': mch_id, 'nonce_str': nonce_str, 'body': "check", 'out_trade_no': out_trade_no_2nd, 'total_fee': "552", 'notify_url':"https://www.weixin.qq.com/wxpay/pay.php", 'spbill_create_ip': "8.8.8.8", 'trade_type': "JSAPI", } UnifiedOrder_xml = build_xml(UnifiedOrder_param, key) request_handler(UnifiedOrder_Url, UnifiedOrder_xml, "亲,用例编号1004-公众号/APP/扫码支付退款结果来了,你还抓紧不来看 \n") time.sleep(1) OrderQuery_param = { 'appid': "wxd678efh567hg6787", 'mch_id': mch_id, 'nonce_str': nonce_str, 'out_trade_no': out_trade_no_2nd, } OrderQuery_xml = build_xml(OrderQuery_param, key) request_handler(OrderQuery_Url, OrderQuery_xml, "亲,用例编号1004-公众号/APP/扫码支付退款查询结果,结果好像有点不太对呢 \n") time.sleep(1) ReFund_param = { 'appid': "wxd678efh567hg6787", 'mch_id': mch_id, 'nonce_str':nonce_str, 'out_refund_no': out_trade_no, 'total_fee': "552", 'refund_fee': "551", 'out_trade_no': out_trade_no_2nd, } ReFund_xml = build_xml(ReFund_param, key) request_handler(ReFund_Url, ReFund_xml, "亲,下面展示的是用例编号1004-公众号/APP/扫码支付退款的结果,你猜对不对 \n") time.sleep(1) RefundQuery_param = { 'appid': "wxd678efh567hg6787", 'mch_id': mch_id, 'nonce_str':nonce_str, 'out_trade_no': out_trade_no_2nd, } RefundQuery_xml = build_xml(RefundQuery_param, key) request_handler(RefundQuery_Url, RefundQuery_xml, "亲,用例编号1004-公众号/APP/扫码支付退款查询结果返回中,加载不出来长按电源键或Ait+F4重试哦 \n") time.sleep(1) DownloadBill_param = { 'appid': "wxd678efh567hg6787", 'mch_id': mch_id, 'nonce_str': nonce_str, 'bill_date': "2021-04-01", 'bill_type': "ALL" } DownloadBill_xml = build_xml(DownloadBill_param, key) request_handler(DownloadBill_Url, DownloadBill_xml, "亲,你要下载交易的对账单来了,加载中······,加载不出来长按电源键或Ait+F4重试哦 \n") upgrade(mch_id, wxpay_key) [代码] 没有写注释的习惯,遇到错误可以私信我,拒绝手摸手教学
2021-05-10 - 怎么删除企业视频号的认证?
想重新修改企业视频号的名字以及认证的主体,系统提示改名字就先删除认证,现在找不到删除认证的接口。在哪里?
2021-04-14 - 从APIv3到APIv2再到企业微信,这款微信支付开发包的README你应该来读一读
The WeChatPay OpenAPI v2&v3’ Smart Development Kit [图片][图片][图片][图片][图片][图片] 主要功能 使用Node原生[代码]crypto[代码]实现微信支付APIv3的AES加/解密功能([代码]aes-256-gcm[代码] with [代码]aad[代码]) 使用Node原生[代码]crypto[代码]实现微信支付APIv3的RSA加/解密、签名、验签功能([代码]sha256WithRSAEncryption[代码] with [代码]RSA_PKCS1_OAEP_PADDING[代码]) 大部分微信支付APIv3的HTTP GET/POST/PUT/PATCH/DELETE应该能够正常工作,依赖 Axios, 示例代码如下 支持微信支付APIv3的媒体文件上传(图片/视频)功能,需手动安装 form-data, 示例代码如下 支持微信支付APIv3的应答证书下载功能,需手动安装 yargs, 使用手册如下 支持微信支付APIv3的帐单下载及解析功能,示例代码如下 支持微信支付APIv2 & APIv3面向对象编程模式,示例代码如下 支持 [代码]Typescript[代码] 支持微信支付XML风格的接口(通常所说v2)调用,依赖 node-xml2js, 示例代码如下 支持微信支付APIv2版的 [代码]AES-256-ECB/PKCS7PADDING[代码] 通知消息加/解密 APIv2 & APIv3 与微信交互的各种数据签名用法示例 支持 企业微信-企业支付-企业红包/向员工付款 功能,示例用法及代码如下 系统要求 NodeJS原生[代码]crypto[代码]模块,自v12.9.0在 [代码]publicEncrypt[代码] 及 [代码]privateDecrypt[代码] 增加了 [代码]oaepHash[代码] 入参选项,本类库封装的 [代码]Rsa.encrypt[代码] 及 [代码]Rsa.decrypt[代码] 显式声明了此入参,测试下来在NodeJS10.15.0上可正常工作;虽然在v10.15上可用,不过仍旧推荐使用 NodeJS >= v12.9.0。 安装 [代码]$ npm install wechatpay-axios-plugin[代码] 起步 v3平台证书 微信支付APIv3使用 (RESTful API with JSON over HTTP)接口设计,数据交换采用非对称([代码]RSA-OAEP[代码])加/解密方案。 API上行所需的[代码]商户API私钥[代码],可以由商户官方专用证书生成工具生成, API下行所需的[代码]平台证书[代码]须从[代码]v3/certificates[代码]接口获取(应答证书还经过了对称[代码]AES-GCM[代码]加密,须采用[代码]APIv3密钥[代码]才能解密)。 本项目也提供了命令行下载工具,使用手册如下: [代码]$ ./node_modules/.bin/wxpay crt --help[代码] [代码]wxpay crt The WeChatPay APIv3's Certificate Downloader cert -m, --mchid The merchant's ID, aka mchid. [string] [required] -s, --serialno The serial number of the merchant's certificate aka serialno. [string] [required] -f, --privatekey The path of the merchant's private key certificate aka privatekey. [string] [required] -k, --key The secret key string of the merchant's APIv3 aka key. [string] [required] -o, --output Path to output the downloaded WeChatPay's platform certificate(s) [string] [default: "/tmp"] Options: --version Show version number [boolean] --help Show help [boolean] -u, --baseURL The baseURL [string] [default: "https://api.mch.weixin.qq.com/"] [代码] 注: 像其他通用命令行工具一样,[代码]--help[代码] 均会打印出帮助手册,说明档里的[代码][required][代码]指 必选参数; [代码][string][代码]指 字符串类型,[代码][default][代码]指默认值 [代码]$ ./node_modules/.bin/wxpay crt</b> -m N -s S -f F.pem -k K -o .[代码] [代码]The WeChatPay Platform Certificate#0 serial=HEXADECIAL notBefore=Wed, 22 Apr 2020 01:43:19 GMT notAfter=Mon, 21 Apr 2025 01:43:19 GMT Saved to: wechatpay_HEXADECIAL.pem You may confirm the above infos again even if this library already did(by Rsa.verify): openssl x509 -in wechatpay_HEXADECIAL.pem -noout -serial -dates [代码] 注: 提供必选参数且运行后,屏幕即打印出如上信息,提示[代码]证书序列号[代码]及[代码]起、止格林威治(GMT)时间[代码]及证书下载保存位置。 命令行请求 v0.5版,命令行工具做了加强,增加了基础请求方法,可以用来做快速接入体验,用法如下: 帮助信息 [代码]$ ./node_modules/.bin/wxpay req --help[代码] [代码]wxpay req <uri> Play the WeChatPay OpenAPI requests over command line <uri> -c, --config The configuration [required] -b, --binary Point out the response as `arraybuffer` [boolean] -m, --method The request HTTP verb [choices: "DELETE", "GET", "POST", "PUT", "PATCH", "delete", "get", "post", "put", "patch"] [default: "POST"] -h, --headers Special request HTTP header(s) -d, --data The request HTTP body -p, --params The request HTTP query parameter(s) Options: --version Show version number [boolean] --help Show help [boolean] -u, --baseURL The baseURL [string] [default: "https://api.mch.weixin.qq.com/"] [代码] v3版Native付 [代码]./node_modules/.bin/wxpay v3.pay.transactions.native \ -c.mchid 1230000109 \ -c.serial HEXADECIAL \ -c.privateKey /path/your/merchant/mchid.key \ -c.certs.HEXADECIAL /path/the/platform/certificates/HEXADECIAL.pem \ -d.appid wxd678efh567hg6787 \ -d.mchid 1230000109 \ -d.description 'Image形象店-深圳腾大-QQ公仔' \ -d.out_trade_no '1217752501201407033233368018' \ -d.notify_url 'https://www.weixin.qq.com/wxpay/pay.php' \ -d.amount.total 100 \ -d.amount.currency CNY [代码] v2版付款码付 [代码]./node_modules/.bin/wxpay v2.pay.micropay \ -c.mchid 1230000109 \ -c.serial any \ -c.privateKey any \ -c.certs.any \ -c.secret your_merchant_secret_key_string \ -d.appid wxd678efh567hg6787 \ -d.mch_id 1230000109 \ -d.device_info 013467007045764 \ -d.nonce_str 5K8264ILTKCH16CQ2502SI8ZNMTM67VS \ -d.detail 'Image形象店-深圳腾大-QQ公仔' \ -d.spbill_create_ip 8.8.8.8 \ -d.out_trade_no '1217752501201407033233368018' \ -d.total_fee 100 \ -d.fee_type CNY \ -d.auth_code 120061098828009406 [代码] v2版付款码查询openid [代码]./node_modules/.bin/wxpay v2/tools/authcodetoopenid \ -c.mchid 1230000109 \ -c.serial any \ -c.privateKey any \ -c.certs.any \ -c.secret your_merchant_secret_key_string \ -d.appid wxd678efh567hg6787 \ -d.mch_id 1230000109 \ -d.nonce_str 5K8264ILTKCH16CQ2502SI8ZNMTM67VS \ -d.auth_code 120061098828009406 [代码] 面向对象模式 本类库自[代码]0.2[代码]开始,按照 [代码]URL.pathname[代码] 以[代码]/[代码]做切分,映射成对象属性,[代码]0.4[代码]版开始,支持APIv2的[代码]pathname[代码]映射,编码书写方式有如下约定: 请求 [代码]pathname[代码] 作为级联对象,可以轻松构建请求对象,例如 [代码]v3/pay/transactions/native[代码] 即自然翻译成 [代码]v3.pay.transactions.native[代码]; 每个 [代码]pathname[代码] 所支持的 [代码]HTTP METHOD[代码],即作为 请求对象的末尾执行方法,例如: [代码]v3.pay.transactions.native.post({})[代码]; 每个 [代码]pathname[代码] 级联对象默认为HTTP[代码]POST[代码]函数,其同时隐式内置[代码]GET/POST/PUT/PATCH/DELETE[代码] 操作方法链,支持全大写及全小写两种编码方式,说明见[代码]变更历史[代码]; 每个 [代码]pathname[代码] 有中线(dash)分隔符的,可以使用驼峰[代码]camelCase[代码]风格书写,例如: [代码]merchant-service[代码]可写成 [代码]merchantService[代码],或者属性风格,例如 [代码]v3['merchant-service'][代码]; 每个 [代码]pathname[代码] 中,若有动态参数,例如 [代码]business_code/{business_code}[代码] 可写成 [代码]business_code.$business_code$[代码] 或者属性风格书写,例如 [代码]business_code['{business_code}'][代码],抑或按属性风格,直接写值也可以,例如 [代码]business_code['2000001234567890'][代码]; SDK内置的 [代码]v2/[代码] 对象,其特殊标识为APIv2级联对象,之后串接切分后的[代码]pathname[代码],如源 [代码]pay/micropay[代码] 翻译成 [代码]v2.pay.micropay[代码] 即以XML形式请求远端接口; 建议 [代码]pathname[代码] 按照 [代码]PascalCase[代码] 风格书写, [代码]TS Definition[代码] 已在路上(还有若干问题没解决),将是这种风格,代码提示将会很自然; 以下示例用法,均以[代码]Promise[代码]或[代码]Async/Await[代码]结合此种编码模式展开,级联对象操作符的调试信息见文档末。 初始化 [代码]const {Wechatpay, Formatter} = require('wechatpay-axios-plugin') const wxpay = new Wechatpay({ // 商户号 mchid: 'your_merchant_id', // 商户证书序列号 serial: 'serial_number_of_your_merchant_public_cert', // 商户API私钥 PEM格式的文本字符串或者文件buffer privateKey: '-----BEGIN PRIVATE KEY-----\n-FULL-OF-THE-FILE-CONTENT-\n-----END PRIVATE KEY-----', certs: { // CLI `wxpay crt -m {商户号} -s {商户证书序列号} -f {商户API私钥文件路径} -k {APIv3密钥(32字节)} -o {保存地址}` 生成 'serial_number': '-----BEGIN CERTIFICATE-----\n-FULL-OF-THE-FILE-CONTENT-\n-----END CERTIFICATE-----', }, // APIv2密钥(32字节) v0.4 开始支持 secret: 'your_merchant_secret_key_string', // 接口不要求证书情形,例如仅收款merchant对象参数可选 merchant: { // 商户证书 PEM格式的文本字符串或者文件buffer cert: '-----BEGIN CERTIFICATE-----\n-FULL-OF-THE-FILE-CONTENT-\n-----END CERTIFICATE-----', // 商户API私钥 PEM格式的文本字符串或者文件buffer key: '-----BEGIN PRIVATE KEY-----\n-FULL-OF-THE-FILE-CONTENT-\n-----END PRIVATE KEY-----', // or // passphrase: 'your_merchant_id', // pfx: fs.readFileSync('/your/merchant/cert/apiclient_cert.p12'), }, // APIv2沙箱环境地址 // baseURL: 'https://api.mch.weixin.qq.com/sandboxnew/', // 建议初始化设置此参数,详细说明见Axios官方README // maxRedirects: 0, }) [代码] 初始化字典说明如下: [代码]mchid[代码] 为你的商户号,一般是10字节纯数字 [代码]serial[代码] 为你的商户证书序列号,一般是40字节字符串 [代码]privateKey[代码] 为你的商户API私钥,一般是通过官方证书生成工具生成的文件名是[代码]apiclient_key.pem[代码]文件,支持纯字符串或者文件流[代码]buffer[代码]格式 [代码]certs{[serial_number]:string}[代码] 为通过下载工具下载的平台证书[代码]key/value[代码]键值对,键为平台证书序列号,值为平台证书pem格式的纯字符串或者文件流[代码]buffer[代码]格式 [代码]secret[代码] 为APIv2版的[代码]密钥[代码],商户平台上设置的32字节字符串 [代码]merchant.cert[代码] 为你的商户证书,一般是文件名为[代码]apiclient_cert.pem[代码]文件,支持纯字符串或者文件流[代码]buffer[代码]格式 [代码]merchant.key[代码] 为你的商户API私钥,一般是通过官方证书生成工具生成的文件名是[代码]apiclient_key.pem[代码]文件,支持纯字符串或者文件流[代码]buffer[代码]格式 [代码]merchant.passphrase[代码] 一般为你的商户号 [代码]merchant.pfx[代码] 为你的商户[代码]PKCS12[代码]格式的证书,文件名一般为[代码]apiclient_cert.p12[代码],支持二进制文件流[代码]buffer[代码]格式 注: 0.4版本做了重构及优化,APIv2&v3以及Axios初始参数,均融合在一个型参上。 APIv3 Native下单 [代码]wxpay.v3.pay.transactions.native .post({/*文档参数放这里就好*/}) .then(({data: {code_url}}) => console.info(code_url)) .catch(({response: {status, statusText, data}}) => console.error(status, statusText, data)) [代码] 查询订单 [代码]wxpay.v3.pay.transactions.id['{transaction_id}'] .get({params: {mchid: '1230000109'}, transaction_id: '1217752501201407033233368018'}) .then(({data}) => console.info(data)) .catch(({response: {status, statusText, data}}) => console.error(status, statusText, data)) [代码] 关闭订单 [代码]wxpay.v3.pay.transactions.outTradeNo['1217752501201407033233368018'] .post({mchid: '1230000109'}) .then(({status, statusText}) => console.info(status, statusText)) .catch(({response: {status, statusText, data}}) => console.error(status, statusText, data)) [代码] 合单支付下单 [代码]wxpay.v3.combineTransactions.jsapi .post({/*文档参数放这里就好*/}) .then(res => console.info(res.data)) .catch(({response: {status, statusText, data}}) => console.error(status, statusText, data)) [代码] H5下单 [代码]wxpay.v3.pay.transactions.h5 .post({/*文档参数放这里就好*/}) .then(({data: {h5_url}}) => console.info(h5_url)) .catch(console.error) [代码] 对账单下载及解析 [代码]const assert = require('assert') const {Hash: {sha1}} = require('wechatpay-axios-plugin') wxpay.v3.bill.tradebill.get({ params: { bill_date: '2021-02-12', bill_type: 'ALL', } }).then(({data: {download_url, hash_value}}) => wxpay.v3.billdownload.file.get({ params: (new URL(download_url)).searchParams, signed: hash_value, responseType: 'arraybuffer', })).then(res => { assert(sha1(res.data.toString()) === res.config.signed, 'verify the SHA1 digest failed.') console.info(Formatter.castCsvBill(res.data)) }).catch(error => { console.error(error) }) [代码] 创建商家券 [代码]wxpay.v3.marketing.busifavor.stocks .post({/*商家券创建条件*/}) .then(({data}) => console.info(data)) .catch(({response: {status, statusText, data}}) => console.error(status, statusText, data)) [代码] 查询用户单张券详情 [代码];(async () => { try { const {data: detail} = await wxpay.v3.marketing.busifavor .users.$openid$.coupons['{coupon_code}'].appids['wx233544546545989'] .get({openid: '2323dfsdf342342', coupon_code: '123446565767'}) console.info(detail) } catch({response: {status, statusText, data}}) { console.error(status, statusText, data) } } [代码] 服务商模式Native下单 [代码];(async () => { try { const res = await wxpay.v3.pay.partner.transactions.native({ sp_appid, sp_mchid, sub_mchid, description, out_trade_no, time_expire: new Date( (+new Date) + 33*60*1000 ), //after 33 minutes attach, notify_url, amount: { total: 1, } }) console.info(res.data.code_url) } catch (error) { console.error(error) } })() [代码] 支付即服务 [代码];(async () => { try { const {status, statusText} = await wxpay.v3.smartguide.guides.$guide_id$.assign .post({sub_mchid, out_trade_no}, {guide_id}) console.info(status, statusText) } catch({response: {status, statusText, data}}) { console.error(status, statusText, data) } } [代码] 商业投诉查询 [代码];(async () => { try { const res = await wxpay.v3.merchantService.complaints.get({ params: { limit : 5, offset : 0, begin_date : '2020-03-07', end_date : '2020-03-14', } }) console.info(res.data) } catch (error) { console.error(error) } })() [代码] 图片上传 [代码]const FormData = require('form-data') const {createReadStream} = require('fs') const imageMeta = { filename: 'hellowechatpay.png', // easy calculated by the command `sha256sum hellowechatpay.png` on OSX // or by require('wechatpay-axios-plugin').Hash.sha256(filebuffer) sha256: '1a47b1eb40f501457eaeafb1b1417edaddfbe7a4a8f9decec2d330d1b4477fbe', } const imageData = new FormData() imageData.append('meta', JSON.stringify(imageMeta), {contentType: 'application/json'}) imageData.append('file', createReadStream('./hellowechatpay.png')) ;(async () => { try { const res = await wxpay.v3.marketing.favor.media.imageUpload.post(imageData, { meta: imageMeta, headers: imageData.getHeaders() }) console.info(res.data.media_url) } catch (error) { console.error(error) } })() [代码] 查询优惠券详情 [代码];(async () => { try { const res = await wxpay.v3.marketing.favor.stocks.$stock_id$.post({ params: { stock_creator_mchid, }, stock_id, }) console.info(res.data) } catch(error) { console.error(error) } })() [代码] 优惠券委托营销 [代码](async () => { try { const res = await wxpay.v3.marketing.partnerships.build.post({ partner: { type, appid }, authorized_data: { business_type, stock_id } }, { headers: { [`Idempotency-Key`]: 12345 } }) console.info(res.data) } catch (error) { console.error(error) } })() [代码] 优惠券核销记录下载 [代码](async () => { try { let res = await wxpay.v3.marketing.favor.stocks.$stock_id$.useFlow.get({stock_id}) res = await wxpay.v3.billdownload.file.get({ params: (new URL(res.data.url)).searchParams, responseType: 'arraybuffer' }) // 备注:此接口下载的文件格式与商户平台下载的不完全一致,Formatter.castCsvBill解析有差异 console.info(res.data.toString()) } catch (error) { console.error(error) } })() [代码] 视频文件上传 [代码]const FormData = require('form-data') const {createReadStream} = require('fs') const videoMeta = { filename: 'hellowechatpay.mp4', // easy calculated by the command `sha256sum hellowechatpay.mp4` on OSX // or by require('wechatpay-axios-plugin').Hash.sha256(filebuffer) sha256: '1a47b1eb40f501457eaeafb1b1417edaddfbe7a4a8f9decec2d330d1b4477fbe', } const videoData = new FormData() videoData.append('meta', JSON.stringify(videoMeta), {contentType: 'application/json'}) videoData.append('file', createReadStream('./hellowechatpay.mp4')) ;(async () => { try { const res = await wxpay.v3.merchant.media.video_upload.post(videoData, { meta: videoMeta, headers: videoData.getHeaders() }) console.info(res.data.media_id) } catch (error) { console.error(error) } })() [代码] GZIP下载资金账单 [代码]const {unzipSync} = require('zlib') const assert = require('assert') const {Hash: {sha1}} = require('wechatpay-axios-plugin') ;(async () => { try { const {data: {download_url, hash_value}} = await wxpay.v3.bill.fundflowbill.GET({ params: { bill_date: '2020-02-12', bill_type: 'BASIC', tar_type: 'GZIP', } }) const {data} = await wxpay.v3.billdownload.file.GET({ params: (new URL(download_url)).searchParams, responseType: 'arraybuffer' }) // note here: previous `hash_value` was about the source `csv`, not the `gzip` data // so it needs unziped first, then to compare the `SHA1` degest const bill = unzipSync(data) assert.ok(hash_value === sha1(bill.toString()), 'SHA1 verification failed') console.info(Formatter.castCsvBill(bill)) } catch (error) { console.error(error) } })() [代码] APIv2 付款码(刷卡)支付 [代码]wxpay.v2.pay.micropay({ appid: 'wx8888888888888888', mch_id: '1900000109', nonce_str: Formatter.nonce(), sign_type: 'HMAC-SHA256', body: 'image形象店-深圳腾大-QQ公仔', out_trade_no: '1217752501201407033233368018', total_fee: 888, fee_type: 'CNY', spbill_create_ip: '8.8.8.8', auth_code: '120061098828009406', }) .then(res => console.info(res.data)) .catch(({response: {status, statusText, data}}) => console.error(status, statusText, data)) [代码] H5支付 [代码]wxpay.v2.pay.unifiedorder({ appid: 'wx2421b1c4370ec43b', attach: '支付测试', body: 'H5支付测试', mch_id: '10000100', nonce_str: Formatter.nonce(), notify_url: 'http://wxpay.wxutil.com/pub_v2/pay/notify.v2.php', openid: 'oUpF8uMuAJO_M2pxb1Q9zNjWeS6o', out_trade_no: '1415659990', spbill_create_ip: '14.23.150.211', total_fee: 1, trade_type: 'MWEB', scene_info: JSON.stringify({ h5_info: { type:"IOS", app_name: "王者荣耀", package_name: "com.tencent.tmgp.sgame" } }), }).then(({data: {mweb_url}}) => console.info(mweb_url)).catch(console.error); [代码] 申请退款 [代码]wxpay.v2.secapi.pay.refund.post({ appid: 'wx8888888888888888', mch_id: '1900000109', out_trade_no: '1217752501201407033233368018', out_refund_no: '1217752501201407033233368018', total_fee: 100, refund_fee: 100, refund_fee_type: 'CNY', nonce_str: Formatter.nonce(), }) .then(res => console.info(res.data)) .catch(({response: {status, statusText, data}}) => console.error(status, statusText, data)) [代码] 现金红包 [代码]wxpay.v2.mmpaymkttransfers.sendredpack.POST({ nonce_str: Formatter.nonce(), mch_billno: '10000098201411111234567890', mch_id: '10000098', wxappid: 'wx8888888888888888', send_name: '鹅企支付', re_openid: 'oxTWIuGaIt6gTKsQRLau2M0yL16E', total_amount: 1000, total_num: 1, wishing: 'HAPPY BIRTHDAY', client_ip: '192.168.0.1', act_name: '回馈活动', remark: '会员回馈活动', scene_id: 'PRODUCT_4', }) .then(res => console.info(res.data)) .catch(({response: {status, statusText, data}}) => console.error(status, statusText, data)) [代码] 企业付款到零钱 [代码]wxpay.v2.mmpaymkttransfers.promotion.transfers({ appid: 'wx8888888888888888', mch_id: '1900000109', partner_trade_no: '10000098201411111234567890', openid: 'oxTWIuGaIt6gTKsQRLau2M0yL16E', check_name: 'FORCE_CHECK', re_user_name: '王小王', amount: 10099, desc: '理赔', spbill_create_ip: '192.168.0.1', nonce_str: Formatter.nonce(), }) .then(res => console.info(res.data)) .catch(({response: {status, statusText, data}}) => console.error(status, statusText, data)) [代码] 企业付款到银行卡-获取RSA公钥 [代码]wxpay.v2.risk.getpublickey({ mch_id: '1900000109', sign_type: 'MD5', nonce_str: Formatter.nonce(), }, { baseURL: 'https://fraud.mch.weixin.qq.com' }) .then(res => console.info(res.data)) .catch(({response: {status, statusText, data}}) => console.error(status, statusText, data)) [代码] 企业微信 企业微信的企业支付,数据请求包需要额外的签名,仅需做如下简单扩展适配,即可支持;以下签名注入函数所需的两个参数[代码]agentId[代码] [代码]agentSecret[代码]来自企业微信工作台,以下为示例值。 [代码]const agentId = 1001001 const agentSecret = 'from_wework_agent_special_string' const {Hash} = require('wechatpay-axios-plugin') [代码] 企业红包-注入签名规则 [代码]Wechatpay.client.v2.defaults.transformRequest.unshift(function workwxredpack(data, headers) { const {act_name, mch_billno, mch_id, nonce_str, re_openid, total_amount, wxappid} = data if (!(act_name && mch_billno && mch_id && nonce_str && re_openid && total_amount && wxappid)) { return data } data.workwx_sign = Hash.md5( Formatter.queryStringLike(Formatter.ksort({ act_name, mch_billno, mch_id, nonce_str, re_openid, total_amount, wxappid })), agentSecret, agentId ).toUpperCase() return data }) [代码] 发放企业红包 [代码]wxpay.v2.mmpaymkttransfers.sendworkwxredpack({ mch_billno: '123456', wxappid: 'wx8888888888888888', sender_name: 'XX活动', sender_header_media_id: '1G6nrLmr5EC3MMb_-zK1dDdzmd0p7cNliYu9V5w7o8K0', re_openid: 'oxTWIuGaIt6gTKsQRLau2M0yL16E', total_amount: 1000, wishing: '感谢您参加猜灯谜活动,祝您元宵节快乐!', act_name: '猜灯谜抢红包活动', remark: '猜越多得越多,快来抢!', mch_id: '1900000109', nonce_str: Formatter.nonce(), }) .then(res => console.info(res.data)) .catch(console.error) [代码] 向员工付款-注入签名规则 [代码]Wechatpay.client.v2.defaults.transformRequest.unshift(function wwsptrans2pocket(data, headers) { const {amount, appid, desc, mch_id, nonce_str, openid, partner_trade_no, ww_msg_type} = data if (!(amount && appid && desc && mch_id && nonce_str && openid && partner_trade_no && ww_msg_type)) { return data } data.workwx_sign = Hash.md5( Formatter.queryStringLike(Formatter.ksort({ amount, appid, desc, mch_id, nonce_str, openid, partner_trade_no, ww_msg_type })), agentSecret, agentId ).toUpperCase() return data }) [代码] 向员工付款 [代码]wxpay.v2.mmpaymkttransfers.promotion.paywwsptrans2pocket({ appid: 'wxe062425f740c8888', device_info: '013467007045764', partner_trade_no: '100000982017072019616', openid: 'ohO4Gt7wVPxIT1A9GjFaMYMiZY1s', check_name: 'NO_CHECK', re_user_name: '张三', amount: '100', desc: '六月出差报销费用', spbill_create_ip: '10.2.3.10', ww_msg_type: 'NORMAL_MSG', act_name: '示例项目', mch_id: '1900000109', nonce_str: Formatter.nonce(), }) .then(res => console.info(res.data)) .catch(console.error) [代码] 自定义打印日志 [代码]// APIv2 日志 Wechatpay.client.v2.defaults.transformRequest.push(data => (console.log(data), data)) Wechatpay.client.v2.defaults.transformResponse.unshift(data => (console.log(data), data)) // APIv3 日志 Wechatpay.client.v3.defaults.transformRequest.push((data, headers) => (console.log(data, headers), data)) Wechatpay.client.v3.defaults.transformResponse.unshift((data, headers) => (console.log(data, headers), data)) [代码] 获取RSA公钥 非标准接口地址,也可以这样调用 [代码]Wechatpay.client.v2.post('https://fraud.mch.weixin.qq.com/risk/getpublickey', { mch_id: '1900000109', nonce_str: Formatter.nonce(), sign_type: 'HMAC-SHA256', }) .then(({data}) => console.info(data)) .catch(({response}) => console.error(response)) [代码] XML形式通知应答 [代码]const {Transformer} = require('wechatpay-axios-plugin') const xml = Transformer.toXml({ return_code: 'SUCCESS', return_msg: 'OK', }) console.info(xml) [代码] aes-256-ecb/pcks7padding 解密 [代码]const {Aes: {AesEcb}, Transformer, Hash} = require('wechatpay-axios-plugin') const secret = 'exposed_your_key_here_have_risks' const xml = '<xml>' + ... '</xml>' const obj = Transformer.toObject(xml) const res = AesEcb.decrypt(obj.req_info, Hash.md5(secret)) obj.req_info = Transformer.toObject(res) console.info(obj) [代码] 加密 [代码]const obj = Transformer.toObject(xml) const ciphertext = AesEcb.encrypt(obj.req_info, Hash.md5(secret)) console.assert( obj.req_info === ciphertext, `The notify hash digest should be matched the local one` ) [代码] APIv2数据签名 JSAPI [代码]const {Hash, Formatter} = require('wechatpay-axios-plugin') const v2Secret = 'exposed_your_key_here_have_risks' const params = { appId: 'wx8888888888888888', timeStamp: `${Formatter.timestamp()}`, nonceStr: Formatter.nonce(), package: 'prepay_id=wx201410272009395522657a690389285100', signType: 'HMAC-SHA256', } params.paySign = Hash.sign(params.signType, params, v2Secret) console.info(params) [代码] APP [代码]const {Hash, Formatter} = require('wechatpay-axios-plugin') const v2Secret = 'exposed_your_key_here_have_risks' const params = { appid: 'wx8888888888888888', partnerid: '1900000109', prepayid: 'WX1217752501201407033233368018', package: 'Sign=WXPay', timestamp: `${Formatter.timestamp()}`, noncestr: Formatter.nonce(), } params.sign = Hash.sign('MD5', params, v2Secret) console.info(params) [代码] APIv3数据签名 JSAPI [代码]const {Rsa, Formatter} = require('wechatpay-axios-plugin') const privateKey = require('fs').readFileSync('/your/merchant/priviate_key.pem') const params = { appId: 'wx8888888888888888', timeStamp: `${Formatter.timestamp()}`, nonceStr: Formatter.nonce(), package: 'prepay_id=wx201410272009395522657a690389285100', signType: 'RSA', } params.paySign = Rsa.sign(Formatter.joinedByLineFeed( params.appId, params.timeStamp, params.nonceStr, params.package ), privateKey) console.info(params) [代码] 商家券-小程序发券v2版签名规则 [代码]const {Hash, Formatter} = require('wechatpay-axios-plugin') const v2Secret = 'exposed_your_key_here_have_risks' // flat the miniprogram data transferring structure for sign const busiFavorFlat = ({send_coupon_merchant, send_coupon_params = []} = {}) => { return { send_coupon_merchant, ...send_coupon_params.reduce((des, row, idx) => ( Object.keys(row).map(one => des[`${one}${idx}`] = row[one]), des ), {}), } } // the miniprogram data transferring structure const busiFavor = { send_coupon_params: [ {out_request_no:'1234567',stock_id:'abc123'}, {out_request_no:'7654321',stock_id:'321cba'}, ], send_coupon_merchant: '10016226' } busiFavor.sign = Hash.sign('HMAC-SHA256', busiFavorFlat(busiFavor), v2Secret) console.info(busiFavor) [代码] 商家券-H5发券v2版签名规则 [代码]const {Hash, Formatter} = require('wechatpay-axios-plugin') const v2Secret = 'exposed_your_key_here_have_risks' const params = { stock_id: '12111100000001', out_request_no: '20191204550002', send_coupon_merchant: '10016226', open_id: 'oVvBvwEurkeUJpBzX90-6MfCHbec', coupon_code: '75345199', } params.sign = Hash.sign('HMAC-SHA256', params, v2Secret) console.info(params) [代码] 常见问题 Q: APIv3消息通知,[代码]AES-256-GCM[代码]加密字段,应该如何解密? 官方文档有介绍,APIv3平台证书及消息通知关键信息均使用[代码]AesGcm[代码]加解密,依赖[代码]APIv3密钥[代码],商户侧解密可参考[代码]bin/cli/cert.js[代码]证书下载工具,例如: [代码]AesGcm.decrypt(nonce, secret, ciphertext, aad); [代码] Q: 敏感信息或者幂等操作要求额外头信息上送时,应该如何构建请求参数? [代码]DELETE[代码]/[代码]GET[代码]请求的第一个参数,[代码]POST[代码]/[代码]PUT[代码]/[代码]PATCH[代码]请求的第二个参数,是 AxiosRequestConfig 对象,可以按需上送额外头参数,例如: [代码]wxpay.v3.applyment4sub.applyment.$noop$( {}, { noop: '', headers: { 'Wechatpay-Serial': '123456' } }, ).then(console.info).catch(console.error); [代码] 可参考 #17 Q: 接口地址为slash([代码]/[代码])结尾的,应该如何构建请求参数? 动态参数[代码]uri_template[代码]或者属性[代码]property[代码]方式构建,可参考 #16 单元测试 [代码]npm install && npm test[代码] 技术交流 如果遇到困难或建议可以 提ISSUE 或 加群,交流技术,分享经验。 QQ群: 684379275 文末打印一波示例方法链 [代码][Function (anonymous)] { v2: [Function: v2] { risk: [Function: v2/risk] { getpublickey: [Function: v2/risk/getpublickey] }, pay: [Function: v2/pay] { micropay: [Function: v2/pay/micropay] }, secapi: [Function: v2/secapi] { pay: [Function: v2/secapi/pay] { refund: [Function: v2/secapi/pay/refund] } }, mmpaymkttransfers: [Function: v2/mmpaymkttransfers] { sendredpack: [Function: v2/mmpaymkttransfers/sendredpack], promotion: [Function: v2/mmpaymkttransfers/promotion] { transfers: [Function: v2/mmpaymkttransfers/promotion/transfers], paywwsptrans2pocket: [Function: v2/mmpaymkttransfers/promotion/paywwsptrans2pocket] }, sendworkwxredpack: [Function: v2/mmpaymkttransfers/sendworkwxredpack] } }, v3: [Function: v3] { pay: [Function: v3/pay] { transactions: [Function: v3/pay/transactions] { native: [Function: v3/pay/transactions/native], id: [Function: v3/pay/transactions/id] { '{transaction_id}': [Function: v3/pay/transactions/id/{transaction_id}] }, outTradeNo: [Function: v3/pay/transactions/out-trade-no] { '1217752501201407033233368018': [Function: v3/pay/transactions/out-trade-no/1217752501201407033233368018] } }, partner: [Function: v3/pay/partner] { transactions: [Function: v3/pay/partner/transactions] { native: [Function: v3/pay/partner/transactions/native] } } }, marketing: [Function: v3/marketing] { busifavor: [Function: v3/marketing/busifavor] { stocks: [Function: v3/marketing/busifavor/stocks], users: [Function: v3/marketing/busifavor/users] { '$openid$': [Function: v3/marketing/busifavor/users/{openid}] { coupons: [Function: v3/marketing/busifavor/users/{openid}/coupons] { '{coupon_code}': [Function: v3/marketing/busifavor/users/{openid}/coupons/{coupon_code}] { appids: [Function: v3/marketing/busifavor/users/{openid}/coupons/{coupon_code}/appids] { wx233544546545989: [Function: v3/marketing/busifavor/users/{openid}/coupons/{coupon_code}/appids/wx233544546545989] } } } } } }, favor: [Function: v3/marketing/favor] { media: [Function: v3/marketing/favor/media] { imageUpload: [Function: v3/marketing/favor/media/image-upload] }, stocks: [Function: v3/marketing/favor/stocks] { '$stock_id$': [Function: v3/marketing/favor/stocks/{stock_id}] { useFlow: [Function: v3/marketing/favor/stocks/{stock_id}/use-flow] } } }, partnerships: [Function: v3/marketing/partnerships] { build: [Function: v3/marketing/partnerships/build] } }, combineTransactions: [Function: v3/combine-transactions] { jsapi: [Function: v3/combine-transactions/jsapi] }, bill: [Function: v3/bill] { tradebill: [Function: v3/bill/tradebill], fundflowbill: [Function: v3/bill/fundflowbill] }, billdownload: [Function: v3/billdownload] { file: [Function: v3/billdownload/file] }, smartguide: [Function: v3/smartguide] { guides: [Function: v3/smartguide/guides] { '$guide_id$': [Function: v3/smartguide/guides/{guide_id}] { assign: [Function: v3/smartguide/guides/{guide_id}/assign] } } }, merchantService: [Function: v3/merchant-service] { complaints: [Function: v3/merchant-service/complaints] }, merchant: [Function: v3/merchant] { media: [Function: v3/merchant/media] { video_upload: [Function: v3/merchant/media/video_upload] } } } } [代码] 变更历史 v0.5.5 (2021-04-13) 优化文档,[代码]证书[代码]相关名词与官方文档保持一致 优化代码,使用ES6 [代码]Reflect.set[代码]代替[代码]param-reassign[代码],性能更高 新增函数[代码]Hash.hmac[代码]方法,广度支持[代码]Hash-based Message Authentication Code[代码] 调整函数[代码]Hash.hmacSha256[代码]为不推荐方法,内部改写为固定[代码]Hash.hmac[代码]调用 调整CLI [代码]req <uri>[代码]成功调用仅返回[代码]{config, headers, data}[代码]数据结构 v0.5.4 (2021-04-08) 优化CLI,[代码]wxpay crt[代码] 下载平台证书仅在成功验签完成后写入文件 优化文档,[代码]AesGcm[代码] 解密示例 优化内部[代码]chain[代码]逻辑,遵循 [代码]RFC3986[代码] 规范,[代码]baseURL[代码]支持带部分路径的海外接入点 优化代码[代码]SonarQube[代码]检测结果[代码]3A+0.5%[代码] v0.5.3 优化CLI,[代码]wxpay <uri>[代码] 向前兼容以支持slash(/)结尾的请求,形如 [代码]v3/applyment4sub/applyment/[代码] v0.5.2 优化CLI,[代码]wxpay <uri>[代码] 现在支持型如 [代码]v2.pay.micropay[代码], [代码]v3.pay.transactions.native[代码] 调用 优化[代码]README[代码]文档,适配最新CLI用法;增加APIv3消息通知QA章节;增加技术交流QQ群说明 v0.5.1 优化CLI,可以直接 [代码]wxpay <uri>[代码] 发起请求 优化[代码]README[代码]文档,适配最新CLI用法 v0.5.0 新增命令行方式与微信支付接口交互工具 调整可选依赖包为[代码]peerDependencies[代码],使用完整功能需手动安装 [代码]form-data[代码] 或/及 [代码]yargs[代码] v0.4.6 使用最新版[代码]eslint[代码]及[代码]eslint-config-airbnb-base[代码] 增加[代码]utils.merge[代码]依赖函数测试校验 v0.4.5 支持APIv2版的俩账单下载,调用方法与APIv3类同; 增加测试用例覆盖,初始化参数[代码]secret[代码](for APIv2)如未设置,[代码]HMAC-SHA256[代码]数据签名时,可能引发 #14 v0.4.4 优化[代码]Wechatpay[代码]在多次实例化时赋值[代码]Symbol(CLIENT)[代码]异常问题,增加[代码]wechatpay.test.js[代码]测试用例覆盖 v0.4.3 支持 企业微信-企业支付 链式调用,需要额外注入签名规则,见上述文档用法示例 v0.4.2 文件名大小写问题 #11 感谢 @LiuXiaoZhuang 报告此问题 v0.4.1 解决了一个[代码]AES-GCM[代码]在[代码]Node10[代码]上的解密兼容性问题,程序在[代码]Node10[代码]上有可能崩溃,建议[代码]Node10[代码]用户升级至此版本 v0.4.0 重构 [代码]Wechatpay[代码] 类,同时支持 APIv2&v3’s 链式调用 改变 [代码]Wechatpay.client[代码] 返回值为[代码]Wechatpay.client.v3[代码],[代码]Wechatpay.client.v2[代码] 为 [代码]xmlBased[代码] 接口客户端 废弃 [代码]withEntities[代码] 方法,其在链式多次调用时,有可能达不到预期,详情见 #10,感谢 @ali-pay 报告此问题 README 文档中文化 完善补缺 [代码]tsd[代码] 声明 v0.3.4 Typed and tips on [代码]Wechatpay[代码] class(#9), thanks @ipoa v0.3.3 Upgrade Axios for the CVE-2020-28168 v0.3.2 Optim: Let [代码]Aes.pkcs7.padding[代码] strictly following the [代码]rfc2315[代码] spec Optim: Better of the [代码]Hash.md5[代码] and [代码]Hash.hmacSha256[代码] Coding comments and README v0.3.1 Optim: new param on [代码]xmlBased({mchid})[代码], while passed in, then [代码]Transformer.signer[代码] doing the [代码]assert[代码] with the post data. Feature: Customize the HTTP [代码]User-Agent[代码]. Refactor: Split [代码]aes.js[代码] as of [代码]Aes[代码], [代码]AesGcm[代码] and [代码]AesEcb[代码] classes for [代码]aes-256-ecb/pkcs7padding[代码] algo. v0.3.0 Feature: The XML based API requests. v0.2.3 Optim: Coding quality. v0.2.2 Fix: #8 [代码]verfier[代码] on the [代码]204[代码] status case. v0.2.1 Optim: Back compatible for [代码]12.4.0[代码] < [代码]Node[代码] ≧ [代码]10.15.0[代码]. v0.2.0 Feature: [代码]OOP[代码] developing style of the wechatpay APIv3. v0.1.0 Optim: Toggle the [代码]Nodejs[代码] version ≧ [代码]10.15.0[代码]. Optim: Documentation and coding comments. v0.0.9 Feature: definition of the [代码]Typescript[代码] v0.0.8 Optim: on [代码]castCsvBill[代码], drop the [代码]trim[代码] on each rows Optim: on [代码]response[代码] validation, checking ± 5 mins first then to [代码]Rsa.verify[代码] Optim: moved the [代码]commander[代码] optional dependency, because it’s only for the [代码]CLI[代码] tool Feature: shipped 99 tests([代码]npm test[代码]) v0.0.7 Feature: billdownload and castCsvBill eslint enabled ([代码]npm run lint[代码]) v0.0.6 Chinese document v0.0.5 Renew document and codes comments v0.0.4 Feature: certificate downloader, deps on [代码]commander[代码] v0.0.3 Feature: media file upload, optional deps on [代码]form-data[代码] v0.0.2 Feature: Assert the response’s timestamp ± 5 mins Refactor as CommonJS style(#6) Limits the communicating parameters(#7) Coding styles(#5) Coding comments and Document(#4, #3, #2, #1) v0.0.1 Init ES2015+ style License The MIT License (MIT) Copyright © 2020-2021 James ZHANG(TheNorthMemory) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
2021-05-10 - 微信支付商户免充值代金券接口升级验收指引(二)用例组合1001+1002+1005
为什么要进行接口升级验收 商户开通免充值类产品功能后,微信支付接口和账单格式会有调整,商户内部系统需要适配升级后的接口参数。 注:本文所描述步骤,是无需写代码,通过post工具即可进行验收,大家可以百度搜索在线post工具,也可以下载postman进行验收,注意:应用层代码也需要改哦 如何进行接口升级 准备事项 微信支付商户号: 微信支付商户号对应32位秘钥(获取签名sign时使用) 第一步 获取沙箱验签秘钥 准备参数: 1.服务商商户号:mch_id 2.32位随机字符串:nonce_str 3.微信支付商户32位秘钥:key(获取签名sign时使用) 接口调用(Post请求):https://api.mch.weixin.qq.com/sandboxnew/pay/getsignkey [图片] 在成功返回的结果中sandbox_signkey参数就是沙箱秘钥。 [图片] 第二步 「1001可选用例-刷卡正常支付 」验收 [代码]注:本部分验收需要分别进行统一下单,查询订单请求,才可以验证成功 [代码] 1、统一下单 准备参数(获取微信支付信息后进行刷卡支付下单请求): 1)公众账号ID:appid (参考值:wxd678efh567hg6787) 2)微信支付商户号:mch_id(参考值:1230000109) 3)随机字符串,长度要求在32位以内:nonce_str(参考值:5K8264ILTKCH16CQ2502SI8ZNMTM67VS) 4)商品描述:body(参考值:测试商品) 5)商户订单号:out_trade_no(参考值:2015080612534612) 6)订单金额:total_fee(注意:此处必须要传订单总金额为501(单位:分)) 7)终端IP:spbill_create_ip (参靠值:192.168.10.10) 8)付款码 :auth_code(18位纯数字,以10、11、12、13、14、15开头,参考值:120061098828009406) 9)沙箱密钥:key(第一步请求中获取的32位字符) 10)签名:sign(根据以上信息生成的签名,签名方法:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=4_3 ) 所需参数可以参考:https://pay.weixin.qq.com/wiki/doc/api/micropay.php?chapter=9_10&index=1 根据上述信息,生成以下请求参数: [代码] <xml> <appid>wxd678efh567hg6787</appid> <auth_code>120061098828009406</auth_code> <body>测试商品</body> <mch_id>1230000109</mch_id> <nonce_str>5K8264ILTKCH16CQ2502SI8ZNMTM67VS</nonce_str> <out_trade_no>2015080612534612</out_trade_no> <spbill_create_ip>192.168.10.10</spbill_create_ip> <total_fee>501</total_fee> <sign>AB8863D6338C3D49A2B58D4825AC42EE</sign> </xml> [代码] 使用上述数据调用接口(Post请求):https://api.mch.weixin.qq.com/sandboxnew/pay/micropay 成功返回即可 返回正常示例: [代码]<xml> <coupon_fee><![CDATA[1]]></coupon_fee> <cash_fee_type><![CDATA[CNY]]></cash_fee_type> <nonce_str><![CDATA[5K8264ILTKCH16CQ2502SI8ZNMTM67VS]]></nonce_str> <time_end><![CDATA[20210413183102]]></time_end> <sign><![CDATA[C4D3AC7B6183AEEC13FA2D0E43A12B29]]></sign> <coupon_id_0><![CDATA[10000]]></coupon_id_0> <coupon_fee_0><![CDATA[1]]></coupon_fee_0> <fee_type><![CDATA[CNY]]></fee_type> <attach><![CDATA[sandbox_attach]]></attach> <device_info><![CDATA[sandbox]]></device_info> <out_trade_no><![CDATA[2015080612534612]]></out_trade_no> <transaction_id><![CDATA[4675638538920210413183102763525]]></transaction_id> <openid><![CDATA[085e9858e9914da9a0da5522a]]></openid> <trade_type><![CDATA[MICROPAY]]></trade_type> <return_code><![CDATA[SUCCESS]]></return_code> <err_code_des><![CDATA[ok]]></err_code_des> <mch_id><![CDATA[1230000109]]></mch_id> <settlement_total_fee><![CDATA[500]]></settlement_total_fee> <coupon_batch_id_0><![CDATA[12345]]></coupon_batch_id_0> <cash_fee><![CDATA[500]]></cash_fee> <is_subscribe><![CDATA[Y]]></is_subscribe> <return_msg><![CDATA[OK]]></return_msg> <bank_type><![CDATA[CMC]]></bank_type> <coupon_type_0><![CDATA[CASH]]></coupon_type_0> <total_fee><![CDATA[501]]></total_fee> <appid><![CDATA[wxd678efh567hg6787]]></appid> <coupon_count><![CDATA[1]]></coupon_count> <result_code><![CDATA[SUCCESS]]></result_code> <err_code><![CDATA[SUCCESS]]></err_code> </xml> [代码] 注:以上参数只需要替换mch_id,sign为自己信息即可,沙箱环境请求,不需要APPID和商户号有绑定关系,也可以不需要真实APPID和真实回调地址也是可以的。 2、查询订单 准备参数 1)公众账号ID:appid (参考值:wxd678efh567hg6787) 2)微信支付商户号:mch_id(参考值:1230000109) 3)随机字符串,长度要求在32位以内:nonce_str(参考值:5K8264ILTKCH16CQ2502SI8ZNMTM67VS) 4)商户内部订单号:out_trade_no(需使用上一步骤统一下单请求同样的参数) 5)沙箱秘钥:key(第一步请求中获取的32位字符) 6)签名:sign(根据以上信息生成的签名,签名方法:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=4_3 ) 根据上述信息,生成以下请求参数: [代码]<xml> <appid>wxd678efh567hg6787</appid> <mch_id>1230000109</mch_id> <nonce_str>5K8264ILTKCH16CQ2502SI8ZNMTM67VS</nonce_str> <out_trade_no>2015080612534612</out_trade_no> <sign>5377A773C559220C3609B53DCE29E876</sign> </xml> [代码] 使用上述数据调用接口(Post请求):https://api.mch.weixin.qq.com/sandboxnew/pay/orderquery 成功返回即可 返回正常示例: [代码]<xml> <openid><![CDATA[wxd930ea5d5a258f4f]]></openid> <sub_mch_id><![CDATA[]]></sub_mch_id> <coupon_fee><![CDATA[1]]></coupon_fee> <cash_fee_type><![CDATA[CNY]]></cash_fee_type> <settlement_total_fee><![CDATA[500]]></settlement_total_fee> <nonce_str><![CDATA[5K8264ILTKCH16CQ2502SI8ZNMTM67VS]]></nonce_str> <return_code><![CDATA[SUCCESS]]></return_code> <err_code_des><![CDATA[SUCCESS]]></err_code_des> <time_end><![CDATA[20210413183858]]></time_end> <mch_id><![CDATA[1230000109]]></mch_id> <trade_type><![CDATA[APP]]></trade_type> <trade_state_desc><![CDATA[ok]]></trade_state_desc> <trade_state><![CDATA[SUCCESS]]></trade_state> <coupon_batch_id_0><![CDATA[12345]]></coupon_batch_id_0> <sign><![CDATA[4731B4BB06DB6B2956397A39B0533277]]></sign> <cash_fee><![CDATA[500]]></cash_fee> <coupon_id_0><![CDATA[10000]]></coupon_id_0> <coupon_fee_0><![CDATA[1]]></coupon_fee_0> <coupon_type_0><![CDATA[NO_CASH]]></coupon_type_0> <is_subscribe><![CDATA[Y]]></is_subscribe> <return_msg><![CDATA[OK]]></return_msg> <fee_type><![CDATA[CNY]]></fee_type> <bank_type><![CDATA[CMC]]></bank_type> <attach><![CDATA[sandbox_attach]]></attach> <device_info><![CDATA[sandbox]]></device_info> <out_trade_no><![CDATA[2015080612534612]]></out_trade_no> <transaction_id><![CDATA[4470440892220210413183858907258]]></transaction_id> <total_fee><![CDATA[501]]></total_fee> <appid><![CDATA[wxd678efh567hg6787]]></appid> <coupon_count><![CDATA[1]]></coupon_count> <result_code><![CDATA[SUCCESS]]></result_code> <err_code><![CDATA[SUCCESS]]></err_code> </xml> [代码] 注:查询订单中out_trade_no必须要与统一下单out_trade_no一致,否则会失败,返回非示例参数如订单不存在,均为失败。 完成以上操作,即可完成微信免充值代金券1001项可选用例-刷卡正常支付的接口升级。 第三步 「1002-可选用例-刷卡支付退款」验收 1、统一下单(本步骤为重复第一步操作下单,但订单总金额必须传502(单位:分)) 准备参数(获取微信支付信息后进行刷卡支付下单请求): 1)公众账号ID:appid (参考值:wxd678efh567hg6787) 2)微信支付商户号:mch_id(参考值:1230000109) 3)随机字符串,长度要求在32位以内:nonce_str(参考值:5K8264ILTKCH16CQ2502SI8ZNMTM67VS) 4)商品描述:body(参考值:测试商品) 5)商户订单号:out_trade_no(参考值:20150806125346121) 6)订单金额:total_fee(注意:此处必须要传订单总金额为502(单位:分)) 7)终端IP:spbill_create_ip (参靠值:192.168.10.10) 8)付款码 :auth_code(18位纯数字,以10、11、12、13、14、15开头,参考值:120061098828009406) 9)沙箱密钥:key(第一步请求中获取的32位字符) 10)签名:sign(根据以上信息生成的签名,签名方法:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=4_3 ) 所需参数可以参考:https://pay.weixin.qq.com/wiki/doc/api/micropay.php?chapter=9_10&index=1 根据上述信息,生成以下请求参数: [代码] <xml> <appid>wxd678efh567hg6787</appid> <auth_code>120061098828009406</auth_code> <body>测试商品</body> <mch_id>1230000109</mch_id> <nonce_str>5K8264ILTKCH16CQ2502SI8ZNMTM67VS</nonce_str> <out_trade_no>20150806125346121</out_trade_no> <spbill_create_ip>192.168.10.10</spbill_create_ip> <total_fee>502</total_fee> <sign>88F9D65A839281D767CDC6294140F2B2</sign> </xml> [代码] 使用上述数据调用接口(Post请求):https://api.mch.weixin.qq.com/sandboxnew/pay/micropay 成功返回即可 返回正常示例: [代码]<xml> <coupon_fee><![CDATA[1]]></coupon_fee> <cash_fee_type><![CDATA[CNY]]></cash_fee_type> <nonce_str><![CDATA[5K8264ILTKCH16CQ2502SI8ZNMTM67VS]]></nonce_str> <time_end><![CDATA[20210413184444]]></time_end> <sign><![CDATA[6374EC6110F70E99EA5B851A41CFCAA3]]></sign> <coupon_id_0><![CDATA[10000]]></coupon_id_0> <coupon_fee_0><![CDATA[1]]></coupon_fee_0> <fee_type><![CDATA[CNY]]></fee_type> <attach><![CDATA[sandbox_attach]]></attach> <device_info><![CDATA[sandbox]]></device_info> <out_trade_no><![CDATA[20150806125346121]]></out_trade_no> <transaction_id><![CDATA[4455051060720210413184444343986]]></transaction_id> <openid><![CDATA[085e9858e9914da9a0da5522a]]></openid> <trade_type><![CDATA[MICROPAY]]></trade_type> <return_code><![CDATA[SUCCESS]]></return_code> <err_code_des><![CDATA[ok]]></err_code_des> <mch_id><![CDATA[1230000109]]></mch_id> <settlement_total_fee><![CDATA[501]]></settlement_total_fee> <coupon_batch_id_0><![CDATA[12345]]></coupon_batch_id_0> <cash_fee><![CDATA[501]]></cash_fee> <is_subscribe><![CDATA[Y]]></is_subscribe> <return_msg><![CDATA[OK]]></return_msg> <bank_type><![CDATA[CMC]]></bank_type> <coupon_type_0><![CDATA[CASH]]></coupon_type_0> <total_fee><![CDATA[502]]></total_fee> <appid><![CDATA[wxd678efh567hg6787]]></appid> <coupon_count><![CDATA[1]]></coupon_count> <result_code><![CDATA[SUCCESS]]></result_code> <err_code><![CDATA[SUCCESS]]></err_code> </xml> [代码] 2、申请退款 准备参数(获取微信支付信息后进行jsapi下单请求): 1)公众账号ID:appid (参考值:wxd678efh567hg6787) 2)微信支付商户号:mch_id(参考值:1230000109) 3)随机字符串,长度要求在32位以内:nonce_str(参考值:5K8264ILTKCH16CQ2502SI8ZNMTM67VS) 4)商户退款单号:out_refund_no(参考值:TM6201505620351) 5)商户内部订单号:out_trade_no(需使用第三步统一下单所使用同样的单号) 6)订单金额:total_fee(注意:此处必须要传订单总金额为502(单位:分)) 7)退款金额 :refund_fee(注意:此处需传参订单总金额为502(单位:分)) 8)沙箱密钥:key(第一步请求中获取的32位字符) 9)签名:sign(根据以上信息生成的签名,签名方法:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=4_3 ) 所需参数可以参考:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_4 根据上述信息,生成以下请求参数: [代码] <xml> <appid>wxd678efh567hg6787</appid> <mch_id>1230000109</mch_id> <nonce_str>5K8264ILTKCH16CQ2502SI8ZNMTM67VS</nonce_str> <out_refund_no>TM6201505620351</out_refund_no> <out_trade_no>20150806125346121</out_trade_no> <refund_fee>502</refund_fee> <total_fee>502</total_fee> <sign>BC39B019C7053EBD25540D399F06B43F</sign> </xml> [代码] [代码]使用上述数据调用接口(Post请求):https://api.mch.weixin.qq.com/sandboxnew/pay/refund 成功返回即可 [代码] 返回正常示例: [代码]<xml> <openid><![CDATA[wxd930ea5d5a258f4f]]></openid> <trade_type><![CDATA[MICROPAY]]></trade_type> <cash_fee_type><![CDATA[CNY]]></cash_fee_type> <refund_id><![CDATA[4936497061220210413184820172]]></refund_id> <cash_refund_fee><![CDATA[501]]></cash_refund_fee> <nonce_str><![CDATA[5K8264ILTKCH16CQ2502SI8ZNMTM67VS]]></nonce_str> <return_code><![CDATA[SUCCESS]]></return_code> <refund_fee_type><![CDATA[CNY]]></refund_fee_type> <mch_id><![CDATA[1230000109]]></mch_id> <coupon_refund_fee><![CDATA[1]]></coupon_refund_fee> <settlement_total_fee><![CDATA[501]]></settlement_total_fee> <coupon_refund_fee_0><![CDATA[1]]></coupon_refund_fee_0> <sign><![CDATA[178ABA2531FDCE1F6D042F91C2930BFA]]></sign> <cash_fee><![CDATA[501]]></cash_fee> <refund_fee><![CDATA[502]]></refund_fee> <coupon_refund_id_0><![CDATA[12345]]></coupon_refund_id_0> <coupon_refund_count><![CDATA[1]]></coupon_refund_count> <coupon_type_0><![CDATA[NO_CASH]]></coupon_type_0> <err_msg><![CDATA[SUCCESS]]></err_msg> <cash_refund_fee_type><![CDATA[CNY]]></cash_refund_fee_type> <return_msg><![CDATA[OK]]></return_msg> <fee_type><![CDATA[CNY]]></fee_type> <bank_type><![CDATA[CMC]]></bank_type> <device_info><![CDATA[sandbox]]></device_info> <out_trade_no><![CDATA[20150806125346121]]></out_trade_no> <settlement_refund_fee><![CDATA[501]]></settlement_refund_fee> <transaction_id><![CDATA[4936497061220210413184820172171]]></transaction_id> <total_fee><![CDATA[502]]></total_fee> <appid><![CDATA[wxd678efh567hg6787]]></appid> <out_refund_no><![CDATA[TM6201505620351]]></out_refund_no> <result_code><![CDATA[SUCCESS]]></result_code> <err_code><![CDATA[SUCCESS]]></err_code> </xml> [代码] 3、查询退款 准备参数 1)公众账号ID:appid (参考值:wxd678efh567hg6787) 2)微信支付商户号:mch_id(参考值:1230000109) 3)随机字符串,长度要求在32位以内:nonce_str(参考值:5K8264ILTKCH16CQ2502SI8ZNMTM67VS) 4)商户内部订单号:out_trade_no(需使用上一步骤申请退款请求同样的参数) 5)沙箱秘钥:key(第一步请求中获取的32位字符) 6)签名:sign(根据以上信息生成的签名,签名方法:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=4_3 ) 根据上述信息,生成以下请求参数: [代码]<xml> <appid>wxd678efh567hg6787</appid> <mch_id>1230000109</mch_id> <nonce_str>5K8264ILTKCH16CQ2502SI8ZNMTM67VS</nonce_str> <out_trade_no>201508061253461</out_trade_no> <sign>5574E5EF39BECB8F511B7159D166D725</sign> </xml> [代码] 使用上述数据调用接口(Post请求):https://api.mch.weixin.qq.com/sandboxnew/pay/refundquery成功返回即可 返回正常示例: [代码]<xml> <openid><![CDATA[wxd930ea5d5a258f4f]]></openid> <trade_type><![CDATA[MICROPAY]]></trade_type> <refund_status_0><![CDATA[SUCCESS]]></refund_status_0> <cash_fee_type><![CDATA[CNY]]></cash_fee_type> <nonce_str><![CDATA[5K8264ILTKCH16CQ2502SI8ZNMTM67VS]]></nonce_str> <return_code><![CDATA[SUCCESS]]></return_code> <err_code_des><![CDATA[SUCCESS]]></err_code_des> <coupon_refund_id_0_0><![CDATA[12345]]></coupon_refund_id_0_0> <mch_id><![CDATA[1230000109]]></mch_id> <refund_recv_accout_0><![CDATA[招商银行信用卡0403]]></refund_recv_accout_0> <refund_count><![CDATA[1]]></refund_count> <settlement_total_fee><![CDATA[501]]></settlement_total_fee> <coupon_refund_fee_0><![CDATA[1]]></coupon_refund_fee_0> <coupon_type_0_0><![CDATA[NO_CASH]]></coupon_type_0_0> <out_refund_no_0><![CDATA[sandbox_out_refund_no_0]]></out_refund_no_0> <cash_fee><![CDATA[501]]></cash_fee> <coupon_refund_fee_0_0><![CDATA[1]]></coupon_refund_fee_0_0> <refund_fee_0><![CDATA[502]]></refund_fee_0> <sign><![CDATA[0401403773FE336B996B7DA025F80E81]]></sign> <refund_id_0><![CDATA[4296909638820210413185131898]]></refund_id_0> <refund_channel_0><![CDATA[ORIGINAL]]></refund_channel_0> <rate><![CDATA[1.0]]></rate> <return_msg><![CDATA[OK]]></return_msg> <fee_type><![CDATA[CNY]]></fee_type> <bank_type><![CDATA[CMC]]></bank_type> <device_info><![CDATA[sandbox]]></device_info> <out_trade_no><![CDATA[20150806125346121]]></out_trade_no> <transaction_id><![CDATA[4296909638820210413185131898337]]></transaction_id> <total_fee><![CDATA[502]]></total_fee> <appid><![CDATA[wxd678efh567hg6787]]></appid> <coupon_refund_count_0><![CDATA[1]]></coupon_refund_count_0> <settlement_refund_fee_0><![CDATA[501]]></settlement_refund_fee_0> <result_code><![CDATA[SUCCESS]]></result_code> <err_code><![CDATA[SUCCESS]]></err_code> </xml> [代码] 完成以上操作,即可完成微信免充值代金券1002 可选用例-刷卡支付退款的接口升级。 第四步 「1005-必选用例-交易对账单下载」 验收 1、下载对账单 准备参数 1)公众账号ID:appid (参考值:wxd678efh567hg6787) 2)微信支付商户号:mch_id(参考值:1230000109) 3)随机字符串,长度要求在32位以内:nonce_str(参考值:5K8264ILTKCH16CQ2502SI8ZNMTM67VS) 4)对账单日期:bill_date(下载对账单的日期,格式:20140603) 5)账单类型:bill_type(参考值:ALL) 6)沙箱秘钥:key(第一步请求中获取的32位字符) 7)签名:sign(根据以上信息生成的签名,签名方法:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=4_3 ) 根据上述信息,生成以下请求参数: [代码]<xml> <appid>wxd678efh567hg6787</appid> <bill_date>20140603</bill_date> <bill_type>ALL</bill_type> <mch_id>1230000109</mch_id> <nonce_str>5K8264ILTKCH16CQ2502SI8ZNMTM67VS</nonce_str> <sign>62036B0BC4B1B72BE30DB62793E36910</sign> </xml> [代码] 使用上述数据调用接口(Post请求):https://api.mch.weixin.qq.com/sandboxnew/pay/downloadbill 成功返回即可 返回正常示例: [代码]交易时间,公众账号ID,商户号,子商户号,设备号,微信订单号,商户订单号,用户标识,交易类型,交易状态,付款银行,货币种类,应结订单金额,代金券金额,微信退款单号,商户退款单号,退款金额,充值券退款金额,退款类型,退款状态,商品名称,商户数据包,手续费,费率,订单金额,申请退款金额,费率备注 `2016-05-04 02:18:18,`wxf7c30a8258df4208,`10014843,`0,`harryma007,`4.00123E+27,`autotest_20160501030456_45023,`oT2kauIMXH398DZBeJ4m22CuSDQ0,`NATIVE,`REFUND,`PAB_DEBIT,`CNY,`0,`0,`2.00123E+27,`REF4001232001201605015390231647,`0.01,`0,`ORIGINAL,`PROCESSING,`body中文测试,`attach中文测试,`0,`0.60%,`0,`0.01,` `2016-05-04 02:18:18,`wxf7c30a8258df4208,`10014843,`0,`harryma007,`4.00123E+27,`autotest_20160501060418_79156,`oT2kauIMXH398DZBeJ4m22CuSDQ0,`NATIVE,`REFUND,`PAB_DEBIT,`CNY,`0,`0,`2.00123E+27,`REF4001232001201605015391766944,`0.01,`0,`ORIGINAL,`PROCESSING,`body中文测试,`attach中文测试,`0,`0.60%,`0,`0.01,` `2016-05-04 02:18:18,`wxf7c30a8258df4208,`10014843,`0,`harryma007,`4.00123E+27,`autotest_20160501070521_13667,`oT2kauIMXH398DZBeJ4m22CuSDQ0,`NATIVE,`REFUND,`PAB_DEBIT,`CNY,`0,`0,`2.00123E+27,`REF4001232001201605015392023263,`0.01,`0,`ORIGINAL,`PROCESSING,`body中文测试,`attach中文测试,`0,`0.60%,`0,`0.01,` `2016-05-04 02:18:18,`wxf7c30a8258df4208,`10014843,`0,`harryma007,`4.00123E+27,`autotest_20160501040449_96226,`oT2kauIMXH398DZBeJ4m22CuSDQ0,`NATIVE,`REFUND,`PAB_DEBIT,`CNY,`0,`0,`2.00123E+27,`REF4001232001201605015392362723,`0.01,`0,`ORIGINAL,`PROCESSING,`body中文测试,`attach中文测试,`0,`0.60%,`0,`0.01,` `2016-05-04 02:18:18,`wxf7c30a8258df4208,`10014843,`0,`harryma007,`4.00123E+27,`autotest_20160501080431_17080,`oT2kauIMXH398DZBeJ4m22CuSDQ0,`NATIVE,`REFUND,`PAB_DEBIT,`CNY,`0,`0,`2.00123E+27,`REF4001232001201605015393218865,`0.01,`0,`ORIGINAL,`PROCESSING,`body中文测试,`attach中文测试,`0,`0.60%,`0,`0.01,` `2016-05-04 02:18:18,`wxf7c30a8258df4208,`10014843,`0,`harryma007,`4.00123E+27,`autotest_20160501090444_61966,`oT2kauIMXH398DZBeJ4m22CuSDQ0,`NATIVE,`REFUND,`PAB_DEBIT,`CNY,`0,`0,`2.00123E+27,`REF4001232001201605015393780368,`0.01,`0,`ORIGINAL,`PROCESSING,`body中文测试,`attach中文测试,`0,`0.60%,`0,`0.01,` `2016-05-04 02:18:18,`wxf7c30a8258df4208,`10014843,`0,`harryma007,`4.00123E+27,`autotest_20160501100429_43440,`oT2kauIMXH398DZBeJ4m22CuSDQ0,`NATIVE,`REFUND,`PAB_DEBIT,`CNY,`0,`0,`2.00123E+27,`REF4001232001201605015395683422,`0.01,`0,`ORIGINAL,`PROCESSING,`body中文测试,`attach中文测试,`0,`0.60%,`0,`0.01,` `2016-05-04 02:18:18,`wxf7c30a8258df4208,`10014843,`0,`harryma007,`4.00123E+27,`autotest_20160501110425_52544,`oT2kauIMXH398DZBeJ4m22CuSDQ0,`NATIVE,`REFUND,`PAB_DEBIT,`CNY,`0,`0,`2.00123E+27,`REF4001232001201605015397356983,`0.01,`0,`ORIGINAL,`PROCESSING,`body中文测试,`attach中文测试,`0,`0.60%,`0,`0.01,` `2016-05-04 02:18:18,`wxf7c30a8258df4208,`10014843,`0,`harryma007,`4.00123E+27,`autotest_20160501120444_34795,`oT2kauIMXH398DZBeJ4m22CuSDQ0,`NATIVE,`REFUND,`PAB_DEBIT,`CNY,`0,`0,`2.00123E+27,`REF4001232001201605015400380796,`0.01,`0,`ORIGINAL,`PROCESSING,`body中文测试,`attach中文测试,`0,`0.60%,`0,`0.01,` `2016-05-04 02:18:18,`wxf7c30a8258df4208,`10014843,`0,`harryma007,`4.00123E+27,`autotest_20160501130505_79878,`oT2kauIMXH398DZBeJ4m22CuSDQ0,`NATIVE,`REFUND,`PAB_DEBIT,`CNY,`0,`0,`2.00123E+27,`REF4001232001201605015401467333,`0.01,`0,`ORIGINAL,`PROCESSING,`body中文测试,`attach中文测试,`0,`0.60%,`0,`0.01,` `2016-05-04 02:18:18,`wxf7c30a8258df4208,`10014843,`0,`harryma007,`4.00123E+27,`autotest_20160501140550_57568,`oT2kauIMXH398DZBeJ4m22CuSDQ0,`NATIVE,`REFUND,`PAB_DEBIT,`CNY,`0,`0,`2.00123E+27,`REF4001232001201605015404477514,`0.01,`0,`ORIGINAL,`PROCESSING,`body中文测试,`attach中文测试,`0,`0.60%,`0,`0.01,` `2016-05-04 02:20:20,`wxf7c30a8258df4208,`10014843,`0,`harryma007,`4.00123E+27,`autotest_20160501160458_84344,`oT2kauIMXH398DZBeJ4m22CuSDQ0,`NATIVE,`REFUND,`PAB_DEBIT,`CNY,`0,`0,`2.00123E+27,`REF4001232001201605015406264231,`0.01,`0,`ORIGINAL,`PROCESSING,`body中文测试,`attach中文测试,`0,`0.60%,`0,`0.01,` `2016-05-04 02:18:18,`wxf7c30a8258df4208,`10014843,`0,`harryma007,`4.00123E+27,`autotest_20160501150427_63248,`oT2kauIMXH398DZBeJ4m22CuSDQ0,`NATIVE,`REFUND,`PAB_DEBIT,`CNY,`0,`0,`2.00123E+27,`REF4001232001201605015406600435,`0.01,`0,`ORIGINAL,`PROCESSING,`body中文测试,`attach中文测试,`0,`0.60%,`0,`0.01,` `2016-05-04 02:20:20,`wxf7c30a8258df4208,`10014843,`0,`harryma007,`4.00123E+27,`autotest_20160501170449_75072,`oT2kauIMXH398DZBeJ4m22CuSDQ0,`NATIVE,`REFUND,`PAB_DEBIT,`CNY,`0,`0,`2.00123E+27,`REF4001232001201605015409165388,`0.01,`0,`ORIGINAL,`PROCESSING,`body中文测试,`attach中文测试,`0,`0.60%,`0,`0.01,` `2016-05-04 02:20:20,`wxf7c30a8258df4208,`10014843,`0,`harryma007,`4.00123E+27,`autotest_20160501180521_40225,`oT2kauIMXH398DZBeJ4m22CuSDQ0,`NATIVE,`REFUND,`PAB_DEBIT,`CNY,`0,`0,`2.00123E+27,`REF4001232001201605015411375675,`0.01,`0,`ORIGINAL,`PROCESSING,`body中文测试,`attach中文测试,`0,`0.60%,`0,`0.01,` `2016-05-04 02:18:18,`wxf7c30a8258df4208,`10014843,`0,`harryma007,`4.00123E+27,`autotest_20160501190443_33233,`oT2kauIMXH398DZBeJ4m22CuSDQ0,`NATIVE,`REFUND,`PAB_DEBIT,`CNY,`0,`0,`2.00123E+27,`REF4001232001201605015414361079,`0.01,`0,`ORIGINAL,`PROCESSING,`body中文测试,`attach中文测试,`0,`0.60%,`0,`0.01,` `2016-05-04 02:19:19,`wxf7c30a8258df4208,`10014843,`0,`harryma007,`4.00123E+27,`autotest_20160501200456_38548,`oT2kauIMXH398DZBeJ4m22CuSDQ0,`NATIVE,`REFUND,`PAB_DEBIT,`CNY,`0,`0,`2.00123E+27,`REF4001232001201605015415360945,`0.01,`0,`ORIGINAL,`PROCESSING,`body中文测试,`attach中文测试,`0,`0.60%,`0,`0.01,` `2016-05-04 02:18:18,`wxf7c30a8258df4208,`10014843,`0,`harryma007,`4.00123E+27,`autotest_20160501210525_90381,`oT2kauIMXH398DZBeJ4m22CuSDQ0,`NATIVE,`REFUND,`PAB_DEBIT,`CNY,`0,`0,`2.00123E+27,`REF4001232001201605015417121415,`0.01,`0,`ORIGINAL,`PROCESSING,`body中文测试,`attach中文测试,`0,`0.60%,`0,`0.01,` `2016-05-04 02:19:19,`wxf7c30a8258df4208,`10014843,`0,`harryma007,`4.00123E+27,`autotest_20160501220458_74325,`oT2kauIMXH398DZBeJ4m22CuSDQ0,`NATIVE,`REFUND,`PAB_DEBIT,`CNY,`0,`0,`2.00123E+27,`REF4001232001201605015418024471,`0.01,`0,`ORIGINAL,`PROCESSING,`body中文测试,`attach中文测试,`0,`0.60%,`0,`0.01,` `2016-05-04 02:20:20,`wxf7c30a8258df4208,`10014843,`0,`harryma007,`4.00123E+27,`autotest_20160501230458_34730,`oT2kauIMXH398DZBeJ4m22CuSDQ0,`NATIVE,`REFUND,`PAB_DEBIT,`CNY,`0,`0,`2.00123E+27,`REF4001232001201605015420065537,`0.01,`0,`ORIGINAL,`PROCESSING,`body中文测试,`attach中文测试,`0,`0.60%,`0,`0.01,` `2016-05-04 02:20:20,`wxf7c30a8258df4208,`10014843,`0,`harryma007,`4.00123E+27,`autotest_20160502000430_89051,`oT2kauIMXH398DZBeJ4m22CuSDQ0,`NATIVE,`REFUND,`PAB_DEBIT,`CNY,`0,`0,`2.00123E+27,`REF4001232001201605025422645279,`0.01,`0,`ORIGINAL,`PROCESSING,`body中文测试,`attach中文测试,`0,`0.60%,`0,`0.01,` `2016-05-04 02:18:18,`wxf7c30a8258df4208,`10014843,`0,`harryma007,`4.00123E+27,`autotest_20160502010509_98863,`oT2kauIMXH398DZBeJ4m22CuSDQ0,`NATIVE,`REFUND,`PAB_DEBIT,`CNY,`0,`0,`2.00123E+27,`REF4001232001201605025423078767,`0.01,`0,`ORIGINAL,`PROCESSING,`body中文测试,`attach中文测试,`0,`0.60%,`0,`0.01,` `2016-05-04 02:18:18,`wxf7c30a8258df4208,`10014843,`0,`harryma007,`4.00123E+27,`autotest_20160502020525_16051,`oT2kauIMXH398DZBeJ4m22CuSDQ0,`NATIVE,`REFUND,`PAB_DEBIT,`CNY,`0,`0,`2.00123E+27,`REF4001232001201605025423357070,`0.01,`0,`ORIGINAL,`PROCESSING,`body中文测试,`attach中文测试,`0,`0.60%,`0,`0.01,` [代码] 完成以上操作,即可完成微信免充值代金券必选用例-交易对账单下载的接口升级。 查询验收结果 访问https://pay.weixin.qq.com/wiki/doc/api/tools/sp_coupon.php?chapter=15_6&index=4 输入商户号查询验收结果,如图中所示说明验收成功。 [图片] 结束,over,这再验收不了,我也没办法了,私信我吧
2021-05-10 - 微信支付商户免充值代金券接口升级验收指引(一)用例组合1003+1004+1005
为什么要进行接口升级验收 商户开通免充值类产品功能后,微信支付接口和账单格式会有调整,商户内部系统需要适配升级后的接口参数。 注:本文所描述步骤,是无需写代码,通过post工具即可进行验收,大家可以百度搜索在线post工具,也可以下载postman进行验收。注意:应用层代码也需要改哦 如何进行接口升级 准备事项 微信支付商户号: 微信支付商户号对应32位秘钥(获取签名sign时使用) 第一步 获取沙箱验签秘钥 准备参数: 1.服务商商户号:mch_id 2.32位随机字符串:nonce_str 3.微信支付商户32位秘钥:key(获取签名sign时使用) 接口调用(Post请求):https://api.mch.weixin.qq.com/sandboxnew/pay/getsignkey [图片] 在成功返回的结果中sandbox_signkey参数就是沙箱秘钥。 [图片] 第二步 「1003-可选用例-公众号/APP/扫码正常支付」验收 [代码]注:本部分验收需要分别进行统一下单,查询订单请求,才可以验证成功 [代码] 1、统一下单 准备参数(获取微信支付信息后进行jsapi下单请求): 1)公众账号ID:appid (参考值:wxd678efh567hg6787) 2)微信支付商户号:mch_id(参考值:1230000109) 3)随机字符串,长度要求在32位以内:nonce_str(参考值:5K8264ILTKCH16CQ2502SI8ZNMTM67VS) 4)商品描述:body(参考值:测试商品) 5)商户订单号:out_trade_no(参考值:20150806125346) 6)订单金额:total_fee(注意:此处必须要传订单总金额为551(单位:分)) 7)终端IP:spbill_create_ip (参靠值:192.168.10.10) 8)通知地址:notify_url(参考值:https://www.weixin.qq.com/wxpay/pay.php ) 9)交易类型:trade_type(此处需传 JSAPI) 19)沙箱密钥:key(第一步请求中获取的32位字符) 11)签名:sign(根据以上信息生成的签名,签名方法:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=4_3 ) 所需参数可以参考:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_1 根据上述信息,生成以下请求参数: [代码] <xml> <appid>wxd678efh567hg6787</appid> <body>测试商品</body> <mch_id>1230000109</mch_id> <nonce_str>5K8264ILTKCH16CQ2502SI8ZNMTM67VS</nonce_str> <notify_url>http://www.weixin.qq.com/wxpay/pay.php</notify_url> <out_trade_no>20150806125346</out_trade_no> <spbill_create_ip>192.168.10.10</spbill_create_ip> <total_fee>551</total_fee> <trade_type>JSAPI</trade_type> <sign>9582B027FED48FF0F34B3ED5E01E7418</sign> </xml> [代码] 使用上述数据调用接口(Post请求):https://api.mch.weixin.qq.com/sandboxnew/pay/unifiedorder 成功返回即可 返回正常示例: [代码]<xml> <trade_type><![CDATA[JSAPI]]></trade_type> <prepay_id><![CDATA[wx20210413154653832676]]></prepay_id> <nonce_str><![CDATA[5K8264ILTKCH16CQ2502SI8ZNMTM67VS]]></nonce_str> <return_code><![CDATA[SUCCESS]]></return_code> <err_code_des><![CDATA[ok]]></err_code_des> <sign><![CDATA[3B6D1EFFFD284F98F92CBF3671C9BBC5]]></sign> <mch_id><![CDATA[1230000109]]></mch_id> <return_msg><![CDATA[OK]]></return_msg> <appid><![CDATA[wxd678efh567hg6787]]></appid> <device_info><![CDATA[sandbox]]></device_info> <result_code><![CDATA[SUCCESS]]></result_code> <err_code><![CDATA[SUCCESS]]></err_code> </xml> [代码] 注:以上参数只需要替换mch_id,sign为自己信息即可,沙箱环境请求,不需要APPID和商户号有绑定关系,也可以不需要真实APPID和真实回调地址也是可以的。 2、查询订单 准备参数 1)公众账号ID:appid (参考值:wxd678efh567hg6787) 2)微信支付商户号:mch_id(参考值:1230000109) 3)随机字符串,长度要求在32位以内:nonce_str(参考值:5K8264ILTKCH16CQ2502SI8ZNMTM67VS) 4)商户内部订单号:out_trade_no(需使用上一步骤统一下单请求同样的参数) 5)沙箱秘钥:key(第一步请求中获取的32位字符) 6)签名:sign(根据以上信息生成的签名,签名方法:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=4_3 ) 根据上述信息,生成以下请求参数: [代码]<xml> <appid>wxd678efh567hg6787</appid> <mch_id>1230000109</mch_id> <nonce_str>5K8264ILTKCH16CQ2502SI8ZNMTM67VS</nonce_str> <out_trade_no>20150806125346</out_trade_no> <sign>5574E5EF39BECB8F511B7159D166D725</sign> </xml> [代码] 使用上述数据调用接口(Post请求):https://api.mch.weixin.qq.com/sandboxnew/pay/orderquery 成功返回即可 返回正常示例: [代码]<xml> <openid><![CDATA[wxd930ea5d5a258f4f]]></openid> <sub_mch_id><![CDATA[]]></sub_mch_id> <coupon_fee><![CDATA[1]]></coupon_fee> <cash_fee_type><![CDATA[CNY]]></cash_fee_type> <settlement_total_fee><![CDATA[550]]></settlement_total_fee> <nonce_str><![CDATA[5K8264ILTKCH16CQ2502SI8ZNMTM67VS]]></nonce_str> <return_code><![CDATA[SUCCESS]]></return_code> <err_code_des><![CDATA[SUCCESS]]></err_code_des> <time_end><![CDATA[20210413160524]]></time_end> <mch_id><![CDATA[1509913781]]></mch_id> <trade_type><![CDATA[APP]]></trade_type> <trade_state_desc><![CDATA[ok]]></trade_state_desc> <trade_state><![CDATA[SUCCESS]]></trade_state> <coupon_batch_id_0><![CDATA[12345]]></coupon_batch_id_0> <sign><![CDATA[1D0584E66EFCED136CBCE2C91C542287]]></sign> <cash_fee><![CDATA[550]]></cash_fee> <coupon_id_0><![CDATA[10000]]></coupon_id_0> <coupon_fee_0><![CDATA[1]]></coupon_fee_0> <coupon_type_0><![CDATA[NO_CASH]]></coupon_type_0> <is_subscribe><![CDATA[Y]]></is_subscribe> <return_msg><![CDATA[OK]]></return_msg> <fee_type><![CDATA[CNY]]></fee_type> <bank_type><![CDATA[CMC]]></bank_type> <attach><![CDATA[sandbox_attach]]></attach> <device_info><![CDATA[sandbox]]></device_info> <out_trade_no><![CDATA[20150806125346]]></out_trade_no> <transaction_id><![CDATA[4541758138620210413160524328048]]></transaction_id> <total_fee><![CDATA[551]]></total_fee> <appid><![CDATA[wxd678efh567hg6787]]></appid> <coupon_count><![CDATA[1]]></coupon_count> <result_code><![CDATA[SUCCESS]]></result_code> <err_code><![CDATA[SUCCESS]]></err_code> </xml> [代码] 注:查询订单中out_trade_no必须要与统一下单out_trade_no一致,否则会失败,返回非示例参数如订单不存在,均为失败。 完成以上操作,即可完成微信免充值代金券1003项公众号/APP/扫码正常支付的接口升级。 第三步 「1003-可选用例-公众号/APP/扫码支付退款」验收 1、统一下单(本步骤为重复第一步操作下单,但订单总金额必须传552(单位:分)) 准备参数(获取微信支付信息后进行jsapi下单请求): 1)公众账号ID:appid (参考值:wxd678efh567hg6787) 2)微信支付商户号:mch_id(参考值:1230000109) 3)随机字符串,长度要求在32位以内:nonce_str(参考值:5K8264ILTKCH16CQ2502SI8ZNMTM67VS) 4)商品描述:body(参考值:测试商品) 5)商户订单号:out_trade_no(参考值:201508061253461) 6)订单金额:total_fee(注意:此处必须要传订单总金额为552(单位:分)) 7)终端IP:spbill_create_ip (参靠值:192.168.10.10) 8)通知地址:notify_url(参考值:https://www.weixin.qq.com/wxpay/pay.php) 9)交易类型:trade_type(此处需传 JSAPI) 19)沙箱密钥:key(第一步请求中获取的32位字符) 11)签名:sign(根据以上信息生成的签名,签名方法:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=4_3 ) 所需参数可以参考:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_1 根据上述信息,生成以下请求参数: [代码] <xml> <appid>wxd678efh567hg6787</appid> <body>测试商品</body> <mch_id>1230000109</mch_id> <nonce_str>5K8264ILTKCH16CQ2502SI8ZNMTM67VS</nonce_str> <notify_url>http://www.weixin.qq.com/wxpay/pay.php</notify_url> <out_trade_no>201508061253461</out_trade_no> <spbill_create_ip>192.168.10.10</spbill_create_ip> <total_fee>552</total_fee> <trade_type>JSAPI</trade_type> <sign>9582B027FED48FF0F34B3ED5E01E7418</sign> </xml> [代码] 使用上述数据调用接口(Post请求):https://api.mch.weixin.qq.com/sandboxnew/pay/unifiedorder 成功返回即可 返回正常示例: [代码]<xml> <trade_type><![CDATA[JSAPI]]></trade_type> <prepay_id><![CDATA[wx20210413154653832676]]></prepay_id> <nonce_str><![CDATA[5K8264ILTKCH16CQ2502SI8ZNMTM67VS]]></nonce_str> <return_code><![CDATA[SUCCESS]]></return_code> <err_code_des><![CDATA[ok]]></err_code_des> <sign><![CDATA[3B6D1EFFFD284F98F92CBF3671C9BBC5]]></sign> <mch_id><![CDATA[1230000109]]></mch_id> <return_msg><![CDATA[OK]]></return_msg> <appid><![CDATA[wxd678efh567hg6787]]></appid> <device_info><![CDATA[sandbox]]></device_info> <result_code><![CDATA[SUCCESS]]></result_code> <err_code><![CDATA[SUCCESS]]></err_code> </xml> [代码] 2、申请退款 准备参数(获取微信支付信息后进行jsapi下单请求): 1)公众账号ID:appid (参考值:wxd678efh567hg6787) 2)微信支付商户号:mch_id(参考值:1230000109) 3)随机字符串,长度要求在32位以内:nonce_str(参考值:5K8264ILTKCH16CQ2502SI8ZNMTM67VS) 4)商户退款单号:out_refund_no(参考值:TM6201505620351) 5)商户内部订单号:out_trade_no(需使用第三步统一下单所使用同样的单号) 6)订单金额:total_fee(注意:此处必须要传订单总金额为552(单位:分)) 7)退款金额 :refund_fee(注意:此处需传参订单总金额为552(单位:分)) 8)沙箱密钥:key(第一步请求中获取的32位字符) 9)签名:sign(根据以上信息生成的签名,签名方法:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=4_3 ) 所需参数可以参考:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_4 根据上述信息,生成以下请求参数:[代码]<xml> <appid>wxd678efh567hg6787</appid> <mch_id>1230000109</mch_id> <nonce_str>5K8264ILTKCH16CQ2502SI8ZNMTM67VS</nonce_str> <out_refund_no>TM6201505620351</out_refund_no> <out_trade_no>201508061253461</out_trade_no> <refund_fee>552</refund_fee> <total_fee>552</total_fee> <sign>2AFA6909D99D17ADB0E90A1151421D88</sign> [代码] </xml> ``` 使用上述数据调用接口(Post请求):https://api.mch.weixin.qq.com/sandboxnew/pay/refund 成功返回即可 返回正常示例: [代码]<xml> <openid><![CDATA[wxd930ea5d5a258f4f]]></openid> <trade_type><![CDATA[APP]]></trade_type> <cash_fee_type><![CDATA[CNY]]></cash_fee_type> <refund_id><![CDATA[4874504649620210412153948324]]></refund_id> <cash_refund_fee><![CDATA[551]]></cash_refund_fee> <nonce_str><![CDATA[5K8264ILTKCH16CQ2502SI8ZNMTM67VS]]></nonce_str> <return_code><![CDATA[SUCCESS]]></return_code> <refund_fee_type><![CDATA[CNY]]></refund_fee_type> <mch_id><![CDATA[1230000109]]></mch_id> <coupon_refund_fee><![CDATA[1]]></coupon_refund_fee> <settlement_total_fee><![CDATA[551]]></settlement_total_fee> <coupon_refund_fee_0><![CDATA[1]]></coupon_refund_fee_0> <sign><![CDATA[76D857D7EA61A3E188DD55E5EA05307C]]></sign> <cash_fee><![CDATA[551]]></cash_fee> <refund_fee><![CDATA[552]]></refund_fee> <coupon_refund_id_0><![CDATA[12345]]></coupon_refund_id_0> <coupon_refund_count><![CDATA[1]]></coupon_refund_count> <coupon_type_0><![CDATA[NO_CASH]]></coupon_type_0> <err_msg><![CDATA[SUCCESS]]></err_msg> <cash_refund_fee_type><![CDATA[CNY]]></cash_refund_fee_type> <return_msg><![CDATA[OK]]></return_msg> <fee_type><![CDATA[CNY]]></fee_type> <bank_type><![CDATA[CMC]]></bank_type> <device_info><![CDATA[sandbox]]></device_info> <out_trade_no><![CDATA[201508061253461]]></out_trade_no> <settlement_refund_fee><![CDATA[551]]></settlement_refund_fee> <transaction_id><![CDATA[4874504649620210412153948324252]]></transaction_id> <total_fee><![CDATA[552]]></total_fee> <appid><![CDATA[wxd678efh567hg6787]]></appid> <out_refund_no><![CDATA[TM6201505620351]]></out_refund_no> <result_code><![CDATA[SUCCESS]]></result_code> <err_code><![CDATA[SUCCESS]]></err_code> </xml> [代码] 3、查询退款 准备参数 1)公众账号ID:appid (参考值:wxd678efh567hg6787) 2)微信支付商户号:mch_id(参考值:1230000109) 3)随机字符串,长度要求在32位以内:nonce_str(参考值:5K8264ILTKCH16CQ2502SI8ZNMTM67VS) 4)商户内部订单号:out_trade_no(需使用上一步骤申请退款请求同样的参数) 5)沙箱秘钥:key(第一步请求中获取的32位字符) 6)签名:sign(根据以上信息生成的签名,签名方法:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=4_3 ) 根据上述信息,生成以下请求参数: [代码]<xml> <appid>wxd678efh567hg6787</appid> <mch_id>1230000109</mch_id> <nonce_str>5K8264ILTKCH16CQ2502SI8ZNMTM67VS</nonce_str> <out_trade_no>201508061253461</out_trade_no> <sign>5574E5EF39BECB8F511B7159D166D725</sign> </xml> [代码] 使用上述数据调用接口(Post请求):https://api.mch.weixin.qq.com/sandboxnew/pay/refundquery成功返回即可 返回正常示例: [代码]<xml> <openid><![CDATA[wxd930ea5d5a258f4f]]></openid> <trade_type><![CDATA[APP]]></trade_type> <refund_status_0><![CDATA[SUCCESS]]></refund_status_0> <cash_fee_type><![CDATA[CNY]]></cash_fee_type> <nonce_str><![CDATA[5K8264ILTKCH16CQ2502SI8ZNMTM67VS]]></nonce_str> <return_code><![CDATA[SUCCESS]]></return_code> <err_code_des><![CDATA[SUCCESS]]></err_code_des> <coupon_refund_id_0_0><![CDATA[12345]]></coupon_refund_id_0_0> <mch_id><![CDATA[1230000109]]></mch_id> <refund_recv_accout_0><![CDATA[招商银行信用卡0403]]></refund_recv_accout_0> <refund_count><![CDATA[1]]></refund_count> <settlement_total_fee><![CDATA[551]]></settlement_total_fee> <coupon_refund_fee_0><![CDATA[1]]></coupon_refund_fee_0> <coupon_type_0_0><![CDATA[NO_CASH]]></coupon_type_0_0> <out_refund_no_0><![CDATA[sandbox_out_refund_no_0]]></out_refund_no_0> <cash_fee><![CDATA[551]]></cash_fee> <coupon_refund_fee_0_0><![CDATA[1]]></coupon_refund_fee_0_0> <refund_fee_0><![CDATA[552]]></refund_fee_0> <sign><![CDATA[3DD809E782FF5570A4EC8111FDEA8060]]></sign> <refund_id_0><![CDATA[4875068147120210413163013442]]></refund_id_0> <refund_channel_0><![CDATA[ORIGINAL]]></refund_channel_0> <rate><![CDATA[1.0]]></rate> <return_msg><![CDATA[OK]]></return_msg> <fee_type><![CDATA[CNY]]></fee_type> <bank_type><![CDATA[CMC]]></bank_type> <device_info><![CDATA[sandbox]]></device_info> <out_trade_no><![CDATA[201508061253461]]></out_trade_no> <transaction_id><![CDATA[4875068147120210413163013442659]]></transaction_id> <total_fee><![CDATA[552]]></total_fee> <appid><![CDATA[wxd678efh567hg6787]]></appid> <coupon_refund_count_0><![CDATA[1]]></coupon_refund_count_0> <settlement_refund_fee_0><![CDATA[551]]></settlement_refund_fee_0> <result_code><![CDATA[SUCCESS]]></result_code> <err_code><![CDATA[SUCCESS]]></err_code> </xml> [代码] 完成以上操作,即可完成微信免充值代金券1003项公众号/APP/扫码支付退款的接口升级。 第四步 「1005-必选用例-交易对账单下载」 验收 1、下载对账单 准备参数 1)公众账号ID:appid (参考值:wxd678efh567hg6787) 2)微信支付商户号:mch_id(参考值:1230000109) 3)随机字符串,长度要求在32位以内:nonce_str(参考值:5K8264ILTKCH16CQ2502SI8ZNMTM67VS) 4)对账单日期:bill_date(下载对账单的日期,格式:20140603) 5)账单类型:bill_type(参考值:ALL) 6)沙箱秘钥:key(第一步请求中获取的32位字符) 7)签名:sign(根据以上信息生成的签名,签名方法:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=4_3 ) 根据上述信息,生成以下请求参数: [代码]<xml> <appid>wxd678efh567hg6787</appid> <bill_date>20140603</bill_date> <bill_type>ALL</bill_type> <mch_id>1230000109</mch_id> <nonce_str>5K8264ILTKCH16CQ2502SI8ZNMTM67VS</nonce_str> <sign>62036B0BC4B1B72BE30DB62793E36910</sign> </xml> [代码] 使用上述数据调用接口(Post请求):https://api.mch.weixin.qq.com/sandboxnew/pay/downloadbill 成功返回即可 返回正常示例: [代码]交易时间,公众账号ID,商户号,子商户号,设备号,微信订单号,商户订单号,用户标识,交易类型,交易状态,付款银行,货币种类,应结订单金额,代金券金额,微信退款单号,商户退款单号,退款金额,充值券退款金额,退款类型,退款状态,商品名称,商户数据包,手续费,费率,订单金额,申请退款金额,费率备注 `2016-05-04 02:18:18,`wxf7c30a8258df4208,`10014843,`0,`harryma007,`4.00123E+27,`autotest_20160501030456_45023,`oT2kauIMXH398DZBeJ4m22CuSDQ0,`NATIVE,`REFUND,`PAB_DEBIT,`CNY,`0,`0,`2.00123E+27,`REF4001232001201605015390231647,`0.01,`0,`ORIGINAL,`PROCESSING,`body中文测试,`attach中文测试,`0,`0.60%,`0,`0.01,` `2016-05-04 02:18:18,`wxf7c30a8258df4208,`10014843,`0,`harryma007,`4.00123E+27,`autotest_20160501060418_79156,`oT2kauIMXH398DZBeJ4m22CuSDQ0,`NATIVE,`REFUND,`PAB_DEBIT,`CNY,`0,`0,`2.00123E+27,`REF4001232001201605015391766944,`0.01,`0,`ORIGINAL,`PROCESSING,`body中文测试,`attach中文测试,`0,`0.60%,`0,`0.01,` `2016-05-04 02:18:18,`wxf7c30a8258df4208,`10014843,`0,`harryma007,`4.00123E+27,`autotest_20160501070521_13667,`oT2kauIMXH398DZBeJ4m22CuSDQ0,`NATIVE,`REFUND,`PAB_DEBIT,`CNY,`0,`0,`2.00123E+27,`REF4001232001201605015392023263,`0.01,`0,`ORIGINAL,`PROCESSING,`body中文测试,`attach中文测试,`0,`0.60%,`0,`0.01,` `2016-05-04 02:18:18,`wxf7c30a8258df4208,`10014843,`0,`harryma007,`4.00123E+27,`autotest_20160501040449_96226,`oT2kauIMXH398DZBeJ4m22CuSDQ0,`NATIVE,`REFUND,`PAB_DEBIT,`CNY,`0,`0,`2.00123E+27,`REF4001232001201605015392362723,`0.01,`0,`ORIGINAL,`PROCESSING,`body中文测试,`attach中文测试,`0,`0.60%,`0,`0.01,` `2016-05-04 02:18:18,`wxf7c30a8258df4208,`10014843,`0,`harryma007,`4.00123E+27,`autotest_20160501080431_17080,`oT2kauIMXH398DZBeJ4m22CuSDQ0,`NATIVE,`REFUND,`PAB_DEBIT,`CNY,`0,`0,`2.00123E+27,`REF4001232001201605015393218865,`0.01,`0,`ORIGINAL,`PROCESSING,`body中文测试,`attach中文测试,`0,`0.60%,`0,`0.01,` `2016-05-04 02:18:18,`wxf7c30a8258df4208,`10014843,`0,`harryma007,`4.00123E+27,`autotest_20160501090444_61966,`oT2kauIMXH398DZBeJ4m22CuSDQ0,`NATIVE,`REFUND,`PAB_DEBIT,`CNY,`0,`0,`2.00123E+27,`REF4001232001201605015393780368,`0.01,`0,`ORIGINAL,`PROCESSING,`body中文测试,`attach中文测试,`0,`0.60%,`0,`0.01,` `2016-05-04 02:18:18,`wxf7c30a8258df4208,`10014843,`0,`harryma007,`4.00123E+27,`autotest_20160501100429_43440,`oT2kauIMXH398DZBeJ4m22CuSDQ0,`NATIVE,`REFUND,`PAB_DEBIT,`CNY,`0,`0,`2.00123E+27,`REF4001232001201605015395683422,`0.01,`0,`ORIGINAL,`PROCESSING,`body中文测试,`attach中文测试,`0,`0.60%,`0,`0.01,` `2016-05-04 02:18:18,`wxf7c30a8258df4208,`10014843,`0,`harryma007,`4.00123E+27,`autotest_20160501110425_52544,`oT2kauIMXH398DZBeJ4m22CuSDQ0,`NATIVE,`REFUND,`PAB_DEBIT,`CNY,`0,`0,`2.00123E+27,`REF4001232001201605015397356983,`0.01,`0,`ORIGINAL,`PROCESSING,`body中文测试,`attach中文测试,`0,`0.60%,`0,`0.01,` `2016-05-04 02:18:18,`wxf7c30a8258df4208,`10014843,`0,`harryma007,`4.00123E+27,`autotest_20160501120444_34795,`oT2kauIMXH398DZBeJ4m22CuSDQ0,`NATIVE,`REFUND,`PAB_DEBIT,`CNY,`0,`0,`2.00123E+27,`REF4001232001201605015400380796,`0.01,`0,`ORIGINAL,`PROCESSING,`body中文测试,`attach中文测试,`0,`0.60%,`0,`0.01,` `2016-05-04 02:18:18,`wxf7c30a8258df4208,`10014843,`0,`harryma007,`4.00123E+27,`autotest_20160501130505_79878,`oT2kauIMXH398DZBeJ4m22CuSDQ0,`NATIVE,`REFUND,`PAB_DEBIT,`CNY,`0,`0,`2.00123E+27,`REF4001232001201605015401467333,`0.01,`0,`ORIGINAL,`PROCESSING,`body中文测试,`attach中文测试,`0,`0.60%,`0,`0.01,` `2016-05-04 02:18:18,`wxf7c30a8258df4208,`10014843,`0,`harryma007,`4.00123E+27,`autotest_20160501140550_57568,`oT2kauIMXH398DZBeJ4m22CuSDQ0,`NATIVE,`REFUND,`PAB_DEBIT,`CNY,`0,`0,`2.00123E+27,`REF4001232001201605015404477514,`0.01,`0,`ORIGINAL,`PROCESSING,`body中文测试,`attach中文测试,`0,`0.60%,`0,`0.01,` `2016-05-04 02:20:20,`wxf7c30a8258df4208,`10014843,`0,`harryma007,`4.00123E+27,`autotest_20160501160458_84344,`oT2kauIMXH398DZBeJ4m22CuSDQ0,`NATIVE,`REFUND,`PAB_DEBIT,`CNY,`0,`0,`2.00123E+27,`REF4001232001201605015406264231,`0.01,`0,`ORIGINAL,`PROCESSING,`body中文测试,`attach中文测试,`0,`0.60%,`0,`0.01,` `2016-05-04 02:18:18,`wxf7c30a8258df4208,`10014843,`0,`harryma007,`4.00123E+27,`autotest_20160501150427_63248,`oT2kauIMXH398DZBeJ4m22CuSDQ0,`NATIVE,`REFUND,`PAB_DEBIT,`CNY,`0,`0,`2.00123E+27,`REF4001232001201605015406600435,`0.01,`0,`ORIGINAL,`PROCESSING,`body中文测试,`attach中文测试,`0,`0.60%,`0,`0.01,` `2016-05-04 02:20:20,`wxf7c30a8258df4208,`10014843,`0,`harryma007,`4.00123E+27,`autotest_20160501170449_75072,`oT2kauIMXH398DZBeJ4m22CuSDQ0,`NATIVE,`REFUND,`PAB_DEBIT,`CNY,`0,`0,`2.00123E+27,`REF4001232001201605015409165388,`0.01,`0,`ORIGINAL,`PROCESSING,`body中文测试,`attach中文测试,`0,`0.60%,`0,`0.01,` `2016-05-04 02:20:20,`wxf7c30a8258df4208,`10014843,`0,`harryma007,`4.00123E+27,`autotest_20160501180521_40225,`oT2kauIMXH398DZBeJ4m22CuSDQ0,`NATIVE,`REFUND,`PAB_DEBIT,`CNY,`0,`0,`2.00123E+27,`REF4001232001201605015411375675,`0.01,`0,`ORIGINAL,`PROCESSING,`body中文测试,`attach中文测试,`0,`0.60%,`0,`0.01,` `2016-05-04 02:18:18,`wxf7c30a8258df4208,`10014843,`0,`harryma007,`4.00123E+27,`autotest_20160501190443_33233,`oT2kauIMXH398DZBeJ4m22CuSDQ0,`NATIVE,`REFUND,`PAB_DEBIT,`CNY,`0,`0,`2.00123E+27,`REF4001232001201605015414361079,`0.01,`0,`ORIGINAL,`PROCESSING,`body中文测试,`attach中文测试,`0,`0.60%,`0,`0.01,` `2016-05-04 02:19:19,`wxf7c30a8258df4208,`10014843,`0,`harryma007,`4.00123E+27,`autotest_20160501200456_38548,`oT2kauIMXH398DZBeJ4m22CuSDQ0,`NATIVE,`REFUND,`PAB_DEBIT,`CNY,`0,`0,`2.00123E+27,`REF4001232001201605015415360945,`0.01,`0,`ORIGINAL,`PROCESSING,`body中文测试,`attach中文测试,`0,`0.60%,`0,`0.01,` `2016-05-04 02:18:18,`wxf7c30a8258df4208,`10014843,`0,`harryma007,`4.00123E+27,`autotest_20160501210525_90381,`oT2kauIMXH398DZBeJ4m22CuSDQ0,`NATIVE,`REFUND,`PAB_DEBIT,`CNY,`0,`0,`2.00123E+27,`REF4001232001201605015417121415,`0.01,`0,`ORIGINAL,`PROCESSING,`body中文测试,`attach中文测试,`0,`0.60%,`0,`0.01,` `2016-05-04 02:19:19,`wxf7c30a8258df4208,`10014843,`0,`harryma007,`4.00123E+27,`autotest_20160501220458_74325,`oT2kauIMXH398DZBeJ4m22CuSDQ0,`NATIVE,`REFUND,`PAB_DEBIT,`CNY,`0,`0,`2.00123E+27,`REF4001232001201605015418024471,`0.01,`0,`ORIGINAL,`PROCESSING,`body中文测试,`attach中文测试,`0,`0.60%,`0,`0.01,` `2016-05-04 02:20:20,`wxf7c30a8258df4208,`10014843,`0,`harryma007,`4.00123E+27,`autotest_20160501230458_34730,`oT2kauIMXH398DZBeJ4m22CuSDQ0,`NATIVE,`REFUND,`PAB_DEBIT,`CNY,`0,`0,`2.00123E+27,`REF4001232001201605015420065537,`0.01,`0,`ORIGINAL,`PROCESSING,`body中文测试,`attach中文测试,`0,`0.60%,`0,`0.01,` `2016-05-04 02:20:20,`wxf7c30a8258df4208,`10014843,`0,`harryma007,`4.00123E+27,`autotest_20160502000430_89051,`oT2kauIMXH398DZBeJ4m22CuSDQ0,`NATIVE,`REFUND,`PAB_DEBIT,`CNY,`0,`0,`2.00123E+27,`REF4001232001201605025422645279,`0.01,`0,`ORIGINAL,`PROCESSING,`body中文测试,`attach中文测试,`0,`0.60%,`0,`0.01,` `2016-05-04 02:18:18,`wxf7c30a8258df4208,`10014843,`0,`harryma007,`4.00123E+27,`autotest_20160502010509_98863,`oT2kauIMXH398DZBeJ4m22CuSDQ0,`NATIVE,`REFUND,`PAB_DEBIT,`CNY,`0,`0,`2.00123E+27,`REF4001232001201605025423078767,`0.01,`0,`ORIGINAL,`PROCESSING,`body中文测试,`attach中文测试,`0,`0.60%,`0,`0.01,` `2016-05-04 02:18:18,`wxf7c30a8258df4208,`10014843,`0,`harryma007,`4.00123E+27,`autotest_20160502020525_16051,`oT2kauIMXH398DZBeJ4m22CuSDQ0,`NATIVE,`REFUND,`PAB_DEBIT,`CNY,`0,`0,`2.00123E+27,`REF4001232001201605025423357070,`0.01,`0,`ORIGINAL,`PROCESSING,`body中文测试,`attach中文测试,`0,`0.60%,`0,`0.01,` [代码] 完成以上操作,即可完成微信免充值代金券必选用例-交易对账单下载的接口升级。 查询验收结果 访问https://pay.weixin.qq.com/wiki/doc/api/tools/sp_coupon.php?chapter=15_6&index=4 输入商户号查询验收结果,如图中所示说明验收成功。 [图片] 结束,over,这再验收不了,我也没办法了,私信我吧
2021-05-10 - 调用wx.getUserProfile报-12007,如何解决?
根据社区公告的内容,我们根据公告文档中的最佳实践: 1. 安装了对应版本的开发者工具 2. 对登录授权做了向下兼容处理 3. 使用新的wx.getUserProfile 来访问用户授权,获取用户头像与昵称 4. 对授权登录业务功能进行了改造 相关改动,在开发版与体验版功能验收时一切正常,2021-04-13 00:29 分将体验版验收正常的功能发布正式版,正式版报错,打断了授权登录流程。 想知道如何解决体验版与正式版表现不一的问题,让获取用户信息的功能改造能正式发版? [图片] /** * @Description: 基础库2.10.4 2021-04-13 后可以自由调用不需要授权 * @return {Promise} 返回一个pending结束的promise */ _getUserInfo() { return new Promise((resolve, reject) => { wx.getUserInfo({ success(res) { const { rawData, iv, signature, encryptedData } = res const userInfo = { rawData, iv, signature, encryptedData } resolve(userInfo) }, fail(err) { reject(err) } }) }) }, /** * @Description: 微信在2021-04-13进行的调整 基础库2.10.4 以上的用户需要使用wx.getUserProfile 才能获取用户个人信息,地理位置,性别,昵称,头像 * @param {type} {*} * @return {type} {*} */ _getUserProfile({ successCallBack, failCallBack }) { wx.getUserProfile({ lang: 'zh_CN', desc: '更新用户头像与昵称', success: async (res) => { const { userInfo } = res successCallBack(res) }, fail: (err) => { if (isFunction(failCallBack)) { failCallBack(err) } } }) },
2021-04-13 - 如何实现快速生成朋友圈海报分享图
由于我们无法将小程序直接分享到朋友圈,但分享到朋友圈的需求又很多,业界目前的做法是利用小程序的 Canvas 功能生成一张带有小程序码的图片,然后引导用户下载图片到本地后再分享到朋友圈。相信大家在绘制分享图中应该踩到 Canvas 的各种(坑)彩dan了吧~ 这里首先推荐一个开源的组件:painter(通过该组件目前我们已经成功在支付宝小程序上也应用上了分享图功能) 咱们不多说,直接上手就是干。 [图片] 首先我们新增一个自定义组件,在该组件的json中引入painter [代码]{ "component": true, "usingComponents": { "painter": "/painter/painter" } } [代码] 然后组件的WXML (代码片段在最后) [代码]// 将该组件定位在屏幕之外,用户查看不到。 <painter style="position: absolute; top: -9999rpx;" palette="{{imgDraw}}" bind:imgOK="onImgOK" /> [代码] 重点来了 JS (代码片段在最后) [代码]Component({ properties: { // 是否开始绘图 isCanDraw: { type: Boolean, value: false, observer(newVal) { newVal && this.handleStartDrawImg() } }, // 用户头像昵称信息 userInfo: { type: Object, value: { avatarUrl: '', nickName: '' } } }, data: { imgDraw: {}, // 绘制图片的大对象 sharePath: '' // 生成的分享图 }, methods: { handleStartDrawImg() { wx.showLoading({ title: '生成中' }) this.setData({ imgDraw: { width: '750rpx', height: '1334rpx', background: 'https://qiniu-image.qtshe.com/20190506share-bg.png', views: [ { type: 'image', url: 'https://qiniu-image.qtshe.com/1560248372315_467.jpg', css: { top: '32rpx', left: '30rpx', right: '32rpx', width: '688rpx', height: '420rpx', borderRadius: '16rpx' }, }, { type: 'image', url: this.data.userInfo.avatarUrl || 'https://qiniu-image.qtshe.com/default-avatar20170707.png', css: { top: '404rpx', left: '328rpx', width: '96rpx', height: '96rpx', borderWidth: '6rpx', borderColor: '#FFF', borderRadius: '96rpx' } }, { type: 'text', text: this.data.userInfo.nickName || '青团子', css: { top: '532rpx', fontSize: '28rpx', left: '375rpx', align: 'center', color: '#3c3c3c' } }, { type: 'text', text: `邀请您参与助力活动`, css: { top: '576rpx', left: '375rpx', align: 'center', fontSize: '28rpx', color: '#3c3c3c' } }, { type: 'text', text: `宇宙最萌蓝牙耳机测评员`, css: { top: '644rpx', left: '375rpx', maxLines: 1, align: 'center', fontWeight: 'bold', fontSize: '44rpx', color: '#3c3c3c' } }, { type: 'image', url: 'https://qiniu-image.qtshe.com/20190605index.jpg', css: { top: '834rpx', left: '470rpx', width: '200rpx', height: '200rpx' } } ] } }) }, onImgErr(e) { wx.hideLoading() wx.showToast({ title: '生成分享图失败,请刷新页面重试' }) //通知外部绘制完成,重置isCanDraw为false this.triggerEvent('initData') }, onImgOK(e) { wx.hideLoading() // 展示分享图 wx.showShareImageMenu({ path: e.detail.path, fail: err => { console.log(err) } }) //通知外部绘制完成,重置isCanDraw为false this.triggerEvent('initData') } } }) [代码] 那么我们该如何引用呢? 首先json里引用我们封装好的组件share-box [代码]{ "usingComponents": { "share-box": "/components/shareBox/index" } } [代码] 以下示例为获取用户头像昵称后再生成图。 [代码]<button class="intro" bindtap="getUserInfo">点我生成分享图</button> <share-box isCanDraw="{{isCanDraw}}" userInfo="{{userInfo}}" bind:initData="handleClose" /> [代码] 调用的地方: [代码]const app = getApp() Page({ data: { isCanDraw: false }, // 组件内部关掉或者绘制完成需重置状态 handleClose() { this.setData({ isCanDraw: !this.data.isCanDraw }) }, getUserInfo(e) { wx.getUserProfile({ desc: "获取您的头像昵称信息", success: res => { const { userInfo = {} } = res this.setData({ userInfo, isCanDraw: true // 开始绘制海报图 }) }, fail: err => { console.log(err) } }) } }) [代码] 最后绘制分享图的自定义组件就完成啦~效果图如下: [图片] tips: 文字居中实现可以看下代码片段 文字换行实现(maxLines)只需要设置宽度,maxLines如果设置为1,那么超出一行将会展示为省略号 代码片段:https://developers.weixin.qq.com/s/J38pKsmK7Qw5 附上painter可视化编辑代码工具:点我直达,因为涉及网络图片,代码片段设置不了downloadFile合法域名,建议真机开启调试模式,开发者工具 详情里开启不校验合法域名进行代码片段的运行查看。 最后看下面大家评论问的较多的问题:downLoadFile合法域名在小程序后台 开发>开发设置里配置,域名为你图片的域名前缀 比如我文章里的图https://qiniu-image.qtshe.com/20190605index.jpg。配置域名时填写https://qiniu-image.qtshe.com即可。如果你图片cdn地址为https://aaa.com/xxx.png, 那你就配置https://aaa.com即可。
2022-01-20 - 【面向公告编程】带你深入分析适配 wx.getUserProfile 以及如何兼容 wx.getUserInfo
前言 由于一些开发者的滥用,为了优化用户体验,微信官方在获取用户信息上,提供了新的API「wx.getUserProfile」,接下来作者将带你解读官方公告(传送门: 小程序登录、用户信息相关接口调整说明),进一步提升“面向公告编程”能力。 常见问题 1、线上版本是不是一定要接入新的 API 才能正常使用? 并不是哦,如果你的小程序是在 2021 年 4 月 13 日后发布的才需要接入,此前发布的线上版本仍不受影响。 2、wx.getUserProfile 从 2.10.4 基础库开始支持,那么 2.10.4 以下基础库不就使用不了这个 API 了吗? 并不是哦,2.10.4 以下基础库仍然可以通过调用原有 API「wx.getUserInfo」获取用户信息及进行解密。 3、为什么开发版和体验版调用 wx.getUserInfo 都不返回用户信息了? wx.getUserInfo 开发版和体验版已对齐匿名表现(返回如下图结果),因此开发者可在 2021 年 4 月 13 日前在开发版或者体验版中,适配新的登录授权流程。 [图片] 4、wx.getSetting 无法获取用户信息的授权(即 scope.userInfo )? 从 2021 年 4 月 13 日开始,无论是通过 wx.authorize 请求授权还是 wx.getSetting 获取授权状态,都将直接返回 true。【PS:由于 wx.getUserProfile 每次调用时都需要用户弹窗授权,因此将无法获取用户授权状态】 [图片] 5、wx.getUserProfile 为什么只能获取到 userInfo 信息,却获取不到 rawData、signature、encryptedData、iv 等信息呢? 据悉,这几天会灰度 2.10.4 ~ 2.16.0 之间支持获取 rawData、signature、encryptedData、iv 等加密信息,具体以官方通知 / 文档为准 新的 API 对基础库有一定的要求,除了参数 userInfo 的值需要 2.10.4 及以上基础库支持获取之外,其它参数也需要 2.16.0 及以上基础库才支持获取。【PS:目前基础库在 2.10.4 ~ 2.16.0 之间将无法获取 rawData、signature、encryptedData、iv 等信息,具体以官方通知为准】 [图片] 6、PC 端微信暂不支持新的 API「wx.getUserProfile」应该怎么处理? 可以通过以下方式兼容。【PS:暂不推荐使用 wx.canIUse(“getUserProfile”) 做兼容判断,后续可使用该方式进行判断】 [代码]if (wx.getUserProfile) { console.log("支持 wx.getUserProfile") } else { console.log("不支持 wx.getUserProfile") } [代码] 7、开发者工具或真机提示 wx.getUserProfile is not a function 错误信息,应该怎么处理? ① 确认开发者工具为 1.05.2103022 及以上版本,并且调试基础库为 2.10.4 及以上。 ② 确认手机微信为 7.0.9 以上版本,且基础库为 2.10.4 及以上。 ③ 如果工具内基础库已设置为 2.10.4 及以上,仍报同样的错误信息,可尝试调高工具基础库直至支持此 API 【PS:一切以真机为准!】 8、wx.getUserProfile 获取 encryptedData 及 iv 参数后进行解密,无法获取到 openid 等信息? 原来调用 wx.getUserInfo 后进行解密可以获取到 openId 等信息如图 1 所示,但是新的 wx.getUserProfile 将无法直接获取到此类用户标识,返回的信息如图 2 所示。 [图片] 9、解密用户信息将不会返回 openId 及 unionId 这类信息,应该怎么解决处理? 新的登录流程有变化!开发者通过 wx.login 获取到用户登录凭证 (code),调用微信登录接口(auth.code2Session)将直接返回 openId、unionId(请先确认已在开放平台绑定该小程序,绑定流程:登录 微信开放平台 — 管理中心 — 小程序 — 绑定小程序) 10、wx.getUserProfile 跟 wx.login 无法同时调用,报 getUserProfile:fail can only be invoked by user TAP gesture 错误信息? 请勿在 wx.login 的 success 回调中调用 wx.getUserProfile。 解决方式: 先使用 [代码]checkSession[代码] 进行登录态检查;提前调用 [代码]wx.login[代码] 再调用 [代码]wx.getUserProfile[代码],完成授权登录流程。 先拖更 据悉:wx.getUserProfile 计划从基础库版本 2.6.6 开始支持 有疑问欢迎在下方留言或者发社区私信
2022-02-15 - [拆弹时刻]4月13日前更新wx.getUserInfo和getUserProfile授权获取问题的解决方案
[图片] 论坛里有不少人疑惑新版的getUserProfile是不是已经上,同时发现开发环境中原有的老方法已经不支持了,这里我为大家集中解决下疑惑~ 1、线上是否已经不支持wx.getUserInfo老方法了? 支持!目前,根据官方文档说明:在4月13日前发布的,线上环境2.16.0基础库以下已经不支持老版方法。(4月8日更新,怀疑官方已提前发布) [图片] 本人今天4月6日10点半线上支持老方法,但是4月8日发布2.16.0以下低版本已经去掉弹窗授权了。请大家尽快更新发布新版方法 2、哪些环境已经是新方法了? 开发环境(包括但不限于IDE工具,真机调试),微信后台提供的体验版环境,且已不支持老办法。 3、新老两种方法是否并行? 线上环境:目前并行(4月13日前),但getUserProfile新方法 只在2.10.4以上版本支持。 开发环境和体验版:不并行,不支持左右横跳哈。 4、如何解决兼容性适配? 上才艺啦,呸,上代码。 先来看下原本代码的授权逻辑 [代码]//老的逻辑 wx.getSetting({ async success(res) { console.log(res.authSetting); //判断小程序用户是否授权 if (res.authSetting['scope.userInfo']) { //已授权 } else { //未授权情况 } } }) [代码] 之前主要通过wx.getSetting的方法来判断,而现在重大的改变是老方法getUserInfo不再弹窗,就算改成getUserProfile弹窗授权,新方法中getSetting中scope.userInfo 这个值并没有返回(这里跟文档有些出入,不知道官方后面会不会修正) [图片] [图片] 同时,这里需要做兼容判断,把获取到内容存在数据库中,避免反复弹窗骚扰用户。 [代码]//根据官方文档 做了一些修改 Page({ data: { userInfo: {}, hasUserInfo: false, canIUseGetUserProfile: false, }, onLoad() { //先请求自定义接口,获取上次存的useInfo wx.request({ url: 'test.api', //仅为示例,并非真实的接口地址 data: {}, success (res) { console.log(res.useInfo) //判断之前是否已获取并存储过用户信息 if(res.useInfo){ }else { //这里不要使用 wx.canIuse来判断,避免一些适配问题 if (wx.getUserProfile) { //直接使用官方推荐的方法 this.setData({ canIUseGetUserProfile: true }) } } } }) }, getUserProfile(e) { // 推荐使用wx.getUserProfile获取用户信息,开发者每次通过该接口获取用户个人信息均需用户确认 // 开发者妥善保管用户快速填写的头像昵称,避免重复弹窗 wx.getUserProfile({ desc: '需要你的信息', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写 success: (res) => { //这里需要将获取的 res.userInfo 存起来,你可以存在数据库,也可以存在local storage里 //wx.request...请求接口 this.setData({ userInfo: res.userInfo, hasUserInfo: true }) } }) }, getUserInfo(e) { // 不推荐使用getUserInfo获取用户信息,预计自2021年4月13日起,getUserInfo将不再弹出弹窗,并直接返回匿名的用户个人信息 this.setData({ userInfo: e.detail.userInfo, hasUserInfo: true }) }, }) [代码] [代码]<!-- html部分 ---> <block wx:if="{{!hasUserInfo}}"> <button wx:if="{{canIUseGetUserProfile}}" bindtap="getUserProfile"> 获取头像昵称 </button> <button wx:else open-type="getUserInfo" bindgetuserinfo="getUserInfo"> 获取头像昵称 </button> </block> <block wx:else> <image bindtap="bindViewTap" class="userinfo-avatar" src="{{userInfo.avatarUrl}}" mode="cover"></image> <text class="userinfo-nickname">{{userInfo.nickName}}</text> </block> [代码] [图片] 5、如何更新用户信息? 首先,目前的规则如果不弹窗,肯定是无法每次拿到用户的最新信息,为了避免每次弹窗请求授权骚扰用户,所以最好根据产品规划,定期获取用户的信息(看心情)。 6、官方接口文档 https://developers.weixin.qq.com/community/develop/doc/000cacfa20ce88df04cb468bc52801 觉得有用,请点个赞哦,让我继续分享更有动力~
2021-04-08 - 微信支付服务商应知必会,带你入门(合集)最后更新时间2021-05-14
[图片] 阅读前必读 1、可电脑、手机同时查看。PC方便,收藏点赞后观看更方便。 2、内容多,务必先查看目录 3、部分内容含介绍链接或文档下载链接,可鼠标点击超链接文字直接打开。 4、内容会尽量不断更新,请以实际情况为准。如果此文不能解决您的问题,请务必描述问题或需求,提供商户号等基本信息私信我,尽量解决你到问题。 5、嫌更新慢,支持打赏催更 6、想了解哪方面内容,可以跟帖回复,根据需求多的问题优先更新 服务商概述 服务商简介 点后面链接查看哦:https://developers.weixin.qq.com/community/pay/article/doc/0008e2745a0cc83e3a0cab92251413 服务商申请方式 点后面链接查看哦:https://developers.weixin.qq.com/community/pay/article/doc/0008e2745a0cc83e3a0cab92251413 服务商合作规则 点后面链接查看哦:https://developers.weixin.qq.com/community/pay/article/doc/0008e2745a0cc83e3a0cab92251413 做支付必须知道的事 点后面链接查看哦:https://developers.weixin.qq.com/community/pay/article/doc/000a4482b88300df3a0c2556356413 特约商户 特约商户管理 服务商技术服务费结算 服务商技术服务费结算基本规则 服务商经营功能 企业付款到零钱 服务商批量付款到零钱 服务商酒店押金 微信支付服务商成长历程-「酒店押金」产品介绍 点后面链接查看哦:https://developers.weixin.qq.com/community/develop/article/doc/0006685c334cb8c1381c9931b57813 服务商营销功能 银行营销功能 代金券 代金券验收指引 微信支付商户免充值代金券接口升级验收指引(一)用例组合1003+1004+1005 点后面链接查看哦:https://developers.weixin.qq.com/community/develop/article/doc/0000c6941647a085d6fbe0fb256013 微信支付商户免充值代金券接口升级验收指引(二)用例组合1001+1002+1005 点后面链接查看哦:https://developers.weixin.qq.com/community/develop/article/doc/0004e24ac84ae8f6dcfb8b6e55bc13 微信支付商户免充值代金券接口升级验收脚本 用例组合1001+1002+1003+1004+1005(强迫症专用) 点后面链接查看哦:https://developers.weixin.qq.com/community/develop/article/doc/0002e82b060c3028230c915f150813 商家券 服务商行业功能 连锁品牌 电商收付通 智慧商圈 风控解读(必读) 服务商风控专题 点后面链接查看哦:https://developers.weixin.qq.com/community/develop/article/doc/0008880ac1c2d8a45b0c4951f5b813 服务商物料 微信收款商业版与云支付
2021-05-14 - 微信支付商户入门(合集)最后更新时间2021年5月13号
[图片] 阅读前必读 1、可电脑、手机同时查看。PC方便,收藏点赞后更方便。 2、内容多,务必先看文章右侧的目录 3、部分内容含介绍链接或文档下载链接,可点击超链接文章直接打开。 4、内容会尽量不断更新,请以实际情况为准。如果此文不能解决您的问题,请务必描述问题或需求,提供商户号等基本信息私信沟通,我将会尽量解决你的问题。 5、 嫌更新慢,来打赏催更 6、想了解哪方面内容,可以跟帖回复,根据大家需求优先更新。 微信支付商户概述 微信支付商户简介 链接待更新 微信支付商户申请接入 链接待更新 微信支付风控解读(必读) 链接待更新 微信支付基础功能 链接待更新 微信支付营销功能 代金券 链接待更新 商家券 链接待更新 现金红包 微信支付商户经营工具-「现金红包」产品介绍及开通使用过程中的问题说明 点后面链接查看哦:https://developers.weixin.qq.com/community/develop/article/doc/0002e86196cf60d90c1c2efd451013 支付有礼 链接待更新 微信支付经营功能 企业付款到零钱 微信支付商户经营工具-「企业付款到零钱」产品介绍及开通使用过程中的问题说明 点后面链接查看哦:https://developers.weixin.qq.com/community/develop/article/doc/000ee8684ecb9873061cd257651813 企业付款到银行卡 微信支付商户经营工具-「企业付款到银行卡」产品说明及开通使用 点后面链接查看哦:https://developers.weixin.qq.com/community/develop/article/doc/00046663b08f78690f1cab70956c13 批量付款到零钱 链接待更新 微信收款商业版 链接待更新 支付即服务 链接待更新 分账 链接待更新 支付分 链接待更新 扣费服务 链接待更新 拼单 链接待更新 微信支付先享卡 链接待更新 微信支付行业功能 无感停车 链接待更新 扫码点餐 链接待更新 K12校园刷脸支付、离线扣费 链接待更新 智慧商圈 链接待更新 酒店押金服务 链接待更新
2021-05-14 - 品牌运营公众号+小程序之微信搜一搜
本文主要讲微信公众号的-微信搜一搜核心功能:服务搜索、品牌主页、官方区,顺带说一下川流计划。 [图片] 服务搜索 服务搜索要求比较低,只要是认证公众号超过180天即可上线服务搜索 服务搜索的核心功能是为用户提供一些功能性的服务,搜索你的设置的关键字,会优先展示你的小程序、公众号自定义菜单、自定义H5路径。(下图为效果展示图) [图片] 如上图,我们作为用户搜索“充值”可以看到三个平台,每个平台都可以为我们提供服务,点进去即可进行话费充值。腾讯手机充值和中国移动跳转的是小程序,中国联通跳转的是H5。 拿小程序来说,我们现在给小程序命名很困难,简短好名字基本都被注册,我们迫不得已只能注册长名字。比如我们想做个“问卷投票”类型小程序,只能起“XXX问卷调查XX”这种类型。起完名字没用户搜索、没有用户量,我们就可以用这个服务搜索去提交。可以把我们的小程序名字精简到2个字,用户直接就可以搜索出来。而且这个权重要比用户搜索名字出现在小程序里要高很多,也节省了用户点击小程序的步骤。 具体开通流程我以前写过一篇文章,可以去看一下,服务搜索带来的流量很高 https://developers.weixin.qq.com/community/develop/article/doc/0002ece75b8dc89c8dba428c15bc13 Tips:如果是仅上线小程序服务搜索,也可以在小程序搜一搜页面直接提交,和这个功能一模一样,唯一的区别就是以公众号名字展示和以小程序名字展示 [图片] 品牌主页 品牌主页要求比较高一些,需要你的公众号名字为非通用名字。因为通用名字没有品牌效应。 [图片] 开通品牌主页后我们可以编辑以下内容,可以外漏你的电话、品牌下的所有小程序、最新发布的文章、销售的商品(小程序或小商店)、常见问题咨询、官方服务(本文上面的服务搜索)、门店信息等。都是我们可以获取到的外部流量 [图片] 官方区 官方区要求也比较高,看下图即可 [图片] B、C级样式满足条件可瞬间开通,A级样式满足条件后需要给官方发邮件,官方审核通过后方可开通。 C级开通后可外露服务入口(本文上面的服务搜索),还可以增加一个搜索词。 比如你的公众号叫“微信”,用户除了搜索微信可以搜到你以外,你还可以增加一个搜索词比如“微信聊天”,同样可以搜索到你提供的服务。 [图片] B级开通后可额外增加3个搜索词,外漏一个品牌主页的模块。 [图片] A级我已经发邮件了还没回我,但对我意义不大,因为要持续做推广 [图片] 川流计划 这个开通要求需要企业邮箱(个人邮箱直接审核失败),还有商标。公众号认证的时候记得把商标加上,要不然不会审核通过的。我虽然有商标,但是认证公众号的时候没加,所以导致没认证成功。 [图片] 接入成功以后可以玩儿一些好玩儿的东西,比如年前的红包封面,用户搜索品牌名字,可以直接领取红包封面,应该还有其他好玩儿的,有条件的可以试试,记得留言让我眼馋一下~~~ 结尾整理下官方文档: 服务搜索接入:https://wsad.weixin.qq.com/wsad/zh_CN/htmledition/service/html/apply.html 微信搜一搜:https://developers.weixin.qq.com/miniprogram/introduction/widget/we-search/ 搜一搜侧汇总文档:https://docs.qq.com/sheet/DWmhqcUhzWXNpQlZw
2021-04-01 - JSAPI支付返回: JSAPI缺少参数total_fee
请根据以下几点排查问题: 1)package参数格式错误,package参数格式应该是这样: package:"prepay_id=wx201410272009395522657a690389285100" 2)package参数没有获取,返回null。 3)请检查预支付会话标识prepay_id是否已失效 4)请求的appid与下单接口的appid是否一致 5)微信支付金额为“分”,不能有小数点 6)预支付ID为空(1、金额为空 2、订单编号重复 3、订单编号为空) 该条内容由「社区Memory」提供,官方审核发布
2021-03-12 - 【视频号推广】小程序怎么申请推广,以及怎么给自己的视频号推广
首先你的微信号必须是实名制的,然后注册视频号,认不认证都可以。这个视频号推广个人也可以推广,企业的话目前是跟着认证公众号的类目的,如果公众号的广告主开通不了,那么视频号也无法开通(但是可以以个人身份认证去开通)。 [图片] 然后微信下拉搜索:视频号推广,打开小程序,然后我们去提交资料审核,下面说下审核常遇到的问题: 1、账号头像错误、账号名称错误 这种情况提审情况会经常出现,比如你的头像太暴露,或者视频号名称没什么实质意义。我以我的经历给大家简单说一下,希望大家能看懂。 首先是账号头像错误:这个头像的问题比如太暴露的是不行的,要有实际意义,比如我个人中心丝袜秀那个小程序logo是我的视频号logo,我在申请的时候也被驳回了,说是头像错误。于是我写了个word文档说明了一下这个logo情况,我的目的很明确,我要花钱用视频号带货链接去挂小商店。视频号的这个logo和我小商店的logo是统一的。写完文档后自己打印出来手签字,拍照上传等待审核即可。 [图片] 其次是账号名称错误:比如我的视频号和我在社区的名字是一样的都是CItizenFour,审核的时候被驳回,说我的名字没有实质意义。我又写了个文档,说了一下我这个名字的含义,CItizen是市民的意思,Four是小四的意思,然后取了个谐音翻译出来是小市民。然后我说了下我的这个名字再抖音、快手、微视、B站、CSDN、知乎等大部分平台都是这个名字。然后去提交审核,最后是直接通过了的。 [图片] 总之,我们要写一个文档,加上手签字,说明情况,在行业类型补充资质里上传即可。我自己申请了18个视频号推广,目前全部通过! 2、视频号内含有其他不适合推广的视频 这个我为了快速提审,把以前审核失败的截图都删了,我大概说一下会遇到什么情况。比如我们在过年的时候在视频号发布过一些红包封面的相关视频,秀自己的红包封面,再或者就是发布过一些营销类型的视频,比如让用户搜索什么小程序,然后干什么。这种审核失败提示解决方案就是,我们把这些违规的视频可以暂时设置为仅自己可见,然后我们再去提交审核。审核通过后可以打开,但是我们不要去给这种视频做推广,100%会审核失败,会导致什么情况我现在也不知道,我不敢去测试,万一封禁我的推广功能咋办? 3、视频号推广功能 视频号推广审核通过后,我们就可以点击【推广视频】选择视频号发布过的视频进行选择推广,单次推广最低消费100,预计曝光为5000播放量。我们需要提前充值好,直接微信支付充值即可。目前提交视频推广的审核时间大概是3个小时左右,审核通过后就开始扣费推广了。推广期间我们可以暂停推广但是会影响效果,如果推广效果好,可以直接续费无需二次审核。如果想退款可以在推广之前申请退款即可,如果推广正在进行中需要暂停后退款。 视频号直播推广功能目前是需要联系腾讯侧行业运营经理沟通,也不知道去哪儿沟通、和谁沟通,我暂时没有这个渠道。 目前我测试了推广小程序以及小商店,结果还需要等两天,过两天我会发布一下我的推广数据供大家参考。 [图片] 4、视频号推广建议 4-1、目前推广没有任何优惠,我个人觉得第一次推广,或者不定期做些活动,比如8、9折优惠券之类的,应该是可以把这个推广玩儿起来的。 4-2、推广前没有广告预览以及白名单。不像公众号、小程序那样推广之前还能预览一下,还可以设置广告白名单让某个微信号可以看到。 这期就说到这儿,等过几天推广出效果再给大家继续分享!
2021-03-04 - 微信支付后默认关注公众号与推荐关注公众号规则(已下线)
2021年8月19公告支付后推荐关注公众号功能下线通知https://pay.weixin.qq.com/index.php/public/cms/content_detail?lang=zh&id=122567 推荐关注规则指微信支付内部制定,推荐关注框和默认勾选能否出现的规则和判断逻辑,当前线上生效的逻辑有: 1、刷卡支付默认有推荐关注 2、九宫格业务默认不勾选推荐关注 3、粉丝数大于50W支付金额大于等于10元有默认勾选,小于10元无默认勾选,粉丝数小于50W支付金额大于等于5元有默认勾选,小于5元无默认勾选 4、已经关注的不展示推荐栏 5、服务号未设置头像的在IOS不展示推荐关注栏 6、用户取消过关注的默认不勾选 7、有过取消默认推荐关注标识的,以后不进行默认推荐关注勾选。简单一句话理解:你去美宜佳买一笔,支付后手动取消他的勾选,以后再去饭店吃饭付款后就是没有勾选的。 8、服务商模式的,需要在特约商户开发配置页设置推荐关注APPID,服务商给特约商户自行配置关注了服务商公众号,部分场景下才会展示,仅支持停车场、加油站、高速收费行业场景,完成整改后的电商工具箱的电商服务商,除此以外不会展示关注入口。 9、订阅号目前是不会有默认推荐关注的 10、公众号支付和扫码支付需要5元以上才有推荐关注 11、微信支付四种支付方式:刷卡支付,公众号支付,扫码支付,APP支付,前三种支付方式有默认关注公众号功能,APP支付需要额外申请(APP支付的默认关注目前只对行业的龙头公司才开放申请。)。 12、在服务商模式下,商户需要配置推荐的,需要在特约商户开发配置页设置推荐关注subappid,可配置商户同主体公众号。
2021-08-20 - 云开发微信支付配置添加商户号后,绑定状态为“待模板消息确认”如何处理?
近期发现不少同学不知道如何确认云开发微信支付的授权,这里写一下解决方法: 云开发微信支付配置商户号方式:在云控制台 -> 设置 -> 全局设置->添加商户号->输入要绑定的商户号 [图片] 添加商户号后要进行商户号绑定确认,在全局设置界面显示待模板消息确认后,这时绑定了微信支付的商户号“超级管理员的微信”会收到一条授权确认的模板消息,点击模板消息会弹出服务商助手小程序,确认授权之后就可以在云开发控制台看到绑定状态为“已绑定”,而 JS API 权限也会显示“已授权”。(此项步骤需要关注过“微信支付商家助手”公众号),如未关注“微信支付商家助手”公众号,可以看下面方法进行手动绑定,退款权限下同。 jsapi 和 api 退款权限授权:登录微信支付商户平台-产品中心-我的授权产品中进行确认授权完成授权后才可以调用微信支付相关接口能力。如果你在你的产品中心看不到我的授权产品,可以点击链接:授权产品 [图片]
2021-01-14 - 微信支付商户平台(服务商平台)扫码登录后提示“登录超时,请重新登录”时该怎么处理
问题说明 微信支付的服务商 or 商户在登录微信支付平台时,通过扫码方式登录,在手机微信端选择「允许登录」后,商户平台一直提示“登录超时,请重新登录”,很多人这时候会以为是自己有问题,就会重新扫码登录,然后发现还是无法登录,无限死循环。换个浏览器操作,发现又可以正常登录。心里默默的「文明用语」问候一下开发者。 问题复现 访问腾讯地图 map.qq.com后,再访问微信支付商户后台,扫码登录就会出现「登录超时,请重新登录」这个死循环。这时候就有人想说了,你干嘛要访问腾讯地图呢?可能有一些新商户或者新服务商不太了解以前微信支付推出的「智慧经营」活动,也就是早期的「微信支付交易达标免费投放朋友圈广告」功能,这个功能在操作时需要为广告指定一个「门店」,以门店周围3公里为准进行朋友圈广告曝光,这个「门店」添加时需要在腾讯地图上标注过才能在服务商平台里面进行选择,于是访问服务商平台的同时,还会访问腾讯地图查询商户是否可以搜到,如果搜不到就要给商户进行地图标注。 问题来了,这时候微信支付服务商平台还是可以正常使用的,如果你一旦主动退出或会话超时自动退出、切换商户号后,再去登录微信支付商户平台就会出现「登录超时,请重新登录」,此时心里又默默的「文明用语」。当然,如果你打开浏览器后,先访问腾讯地图网站后,再登录微信支付服务商平台,那么同样会出现这个问题。 bug原因 该问题与微信支付商户平台网页的「cookies」有关。如果只登录微信支付商户平台,这个时候平台页面对应的cookies中,只有一个「Name」为 「session_id」 的「cookies」,该「cookies」的「domain」为 「pay.weixin.qq.com」 。 [图片] 如果访问过腾讯地图网站后,那微信支付商户平台页面对应的「cookies」中,就会出现2个「Name」为 「session_id」 的「cookies」,多了一个「domain」为 「.qq.com 」。 [图片] 正是因为这个「cookies」的原因,才导致商户平台出现「登录超时,请重新登录」这个死循环。 如何解决 1、不要在同一个浏览器同时登录微信支付商户平台和腾讯地图网站 2、出现扫码登录确认后,商户平台出现「登录超时,请重新登录」的情况时,清空浏览器浏览记录中的cookies,然后重新扫码登录即可。 3、在浏览器的收藏夹中新增一个书签,名称自己随便取,哪怕你取个「文明用语」,你只要能知道是做什么用的就好了,把下面内容复制添加到网址里面,扫码登录后出现「登录超时,请重新登录」的情况时点击这个添加好的书签,你会神奇的发现,你可以正常访问微信支付商户后台了: [代码]javascript: void((function(){function delecookie(a){var b=new Date;b.setTime(b.getTime()-1e5),document.cookie=a+"=v;expires="+b.toGMTString()+";path=/;domain=.qq.com"}delecookie("session_id");window.location.href = $(".page-error p a").attr("href")})())[代码] 结束语 此问题发现接近「四年」,期间反馈给各种支付、地图各种渠道N次,无奈一直没能解决,希望可以早日修复,大家都不会用到这篇教程。祝大家新的一年里,代码没bug,升职加薪。
2021-03-17 - #微信支付 V3 JSAPI 请求构成(请求头、请求体)说明
写在前面:标红的地方是需要注意的,这里很容易搞混到底使用平台证书还是商户证书。 【服务商模式】 请求头 POST https://api.mch.weixin.qq.com/v3/pay/partner/transactions/jsapi HTTP/1.1 Accept: text/html, application/xhtml+xml, image/jxr, */* Referer: https://api.mch.weixin.qq.com/v3/pay/partner/transactions/jsapi User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Safari/537.36 Edge/13.10586 Content-Type: application/json Authorization: WECHATPAY2-SHA256-RSA2048 mchid="服务商商户号ID",nonce_str="dxt55guj.rny",timestamp="1611040484",serial_no="服务商证书序列号",signature="使用服务商证书加密的字符串(格式:HTTP请求方法\nURL\n请求时间戳\n请求随机串\n请求报文主体\n)" Host: api.mch.weixin.qq.com Content-Length: 360 Connection: Keep-Alive 请求体: {"sp_appid":"服务商服务号APPID","sp_mchid":"服务商商户号ID","sub_appid":"子商户对应appid","sub_mchid":"子商户商户号ID","payer":{"sub_openid":"子商户对应appid对应的openid"},"description":"描述","out_trade_no":"61213d2c3c48436f9de68b0455e5bde0","notify_url":"http://www.mirsh.cn","amount":{"total":1,"currency":"CNY"},"scene_info":{"payer_client_ip":"127.0.0.1"}} 【直连模式】 请求头 POST https://api.mch.weixin.qq.com/v3/pay/transactions/jsapi HTTP/1.1 Accept: text/html, application/xhtml+xml, image/jxr, */* Referer: https://api.mch.weixin.qq.com/v3/pay/transactions/jsapi User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Safari/537.36 Edge/13.10586 Content-Type: application/json Authorization: WECHATPAY2-SHA256-RSA2048 mchid="商户号ID",nonce_str="jlujyhrk.vxs",timestamp="1611041033",serial_no="商户号证书序列号",signature="使用商户证书加密的字符串(格式:HTTP请求方法\nURL\n请求时间戳\n请求随机串\n请求报文主体\n)" Host: api.mch.weixin.qq.com Content-Length: 292 Connection: Keep-Alive 请求体 {"appid":"商户号对应的appid","mchid":"商户号ID","payer":{"openid":"oXY6B4sjZO4svmWVuLktyDT9mlsU"},"description":"描述","out_trade_no":"fcf799e5632b46e38ce6f25a8b57aa3d","notify_url":"http://www.mirsh.cn","amount":{"total":1,"currency":"CNY"},"scene_info":{"payer_client_ip":"127.0.0.1"}}
2021-01-20 - 微信开放社区账号被盗了,骗子用我的号在社区发到处私信广告。
[图片] 1.21日,在联书小程序微信群看到群主发求助,我上钩了。 下面是骗子加我后的聊天记录 [图片] [图片] [图片] [图片] 1.28号,登陆微信社区,看到有人给我发私信,打开私信列表,发现几天前被骗了。 [图片] 私信广告内容如下 [图片] 开始发私信广告时间正好是1.21日 [图片] 我尝试搜搜广告中的微信号,正好是那个让我扫码的骗子 [图片] 我重新退出微信开放社区账号 再次登录,骗子依然可以发送私信广告。开放社区应该存在某个漏洞。。
2021-01-28 - 服务号订阅通知灰度测试
服务号模板消息能力的设计初衷,旨在帮助开发者实现及时通知,但存在一些问题,如: 1. 部分开发者在用户无预期的情况下,发送与用户无关的信息,对用户造成了骚扰。 2. 模板消息是用户触发后的通知消息,不支持营销类消息,不能满足部分业务需求。 为提升微信用户体验,我们开始灰度测试服务号订阅通知功能。 能力说明 开发者可在服务号图文消息、网页等场景设置订阅功能,用户自主订阅后,开发者可按需求下发一条对应的订阅通知。 [图片] 用户可在图文订阅通知 [图片] 用户可在网页订阅通知 灰度测试计划 服务号订阅通知功能即日上线,已认证的境内主体服务号可前往 MP 后台开通使用,详见说明。 1. 服务号订阅通知灰度测试期自2021年1月27日0:00至4月30日24:00,期间服务号模板消息可正常使用;灰度测试期结束后服务号订阅通知的策略将另行公布,届时以官方信息为准; 2. 开发者使用订阅通知功能时,需遵循运营规范,不可用奖励或其它形式强制用户订阅,不可下发与用户预期不符或违反国家法律法规的内容。具体可参考文档:《微信公众平台运营规范》 微信团队 2021年1月27日
2021-01-29 - 当前系统代理不是安全代理是否信任,登录不显示二维码,登录网络连接失败
问题:1、从打开开发者工具就一直弹出当前系统代理不是安全代理是否信任,随意点确定或取消或点右上角 X 关闭都可以正常打开工具使用,在使用过程中仍继续不间断弹框当前系统代理不是安全代理是否信任 尝试1:在电脑左下角开始 ——>运行,输入regedit或按快捷键win+R然后输入regedit,打开注册表编辑器 HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Internet Settings,把里面所有的Proxy开头的项都删除掉,删除成功后,注销或者重启电脑,关闭杀毒软件,打开开发者工具,无果,问题依旧 尝试2:关闭Windows防火墙,问题依旧 尝试3:设置Windows防火墙,把微信开发者工具添加到允许程序通过Windows防火墙列表,问题依旧 尝试4:点开发者工具右上角设置,代理设置,选中第一项:不使用任何代理,勾选后直连网络,问题依旧 [图片] 尝试5:使用emedit工具,点击搜索,在文件中查找,在微信开发者工具的安装目录,搜索"当前系统代理",并没有搜到一个js文件,无法把 !confirm(`当前系统代理不是安全代理,是否信任?`) 修改为false,问题依旧 尝试6:我Win7,64位系统,卸载改变目录重装64位开发者工具wechat_devtools_1.02.1811150_x64,下载安装32位开发者工具wechat_devtools_1.02.1811150_ia32,下载安装上一个版本wechat_devtools_1.02.1810250_x64,均无果,问题依旧,该试的基本都试过了,只差重装操作系统了 [图片] 此问题无法解决,只能忍痛弹框继续使用,使用了几天后,点了一次浏览,没生成二维码,然后点了一次切换账号,新的问题就又出现了(问题2) 问题:2、登录不显示二维码,第一次有二维码,用微信扫描后无反应无法登录,再次打开开发者工具,从此不显示二维码 [图片] 问题:3、从问题2开始,从此打开开发者工具,提示登录网络连接失败,无法登录,网络正常,可以打开浏览器上网,也检查了浏览器代理设置,并没有使用代理 [图片] 以上三个问题花了两天时间各种相关问题查看并尝试,都无效果,只差重装操作系统了 - 预期表现 - 复现路径 - 提供一个最简复现 Demo
2018-11-25 - 云开发还可以这么玩!从红包外卖券薅羊毛说起...
前几天,有朋友在群里转发了一个小程序的宣传图,深深的吸引了我... [图片] 纳尼???睡后???躺赚???听起来似乎不错.... 于是大致了解了一下这种外卖券小程序的整个闭环。 其实各种电商外卖平台都有推荐返佣系统,申请后,可以生成你自己的小程序链接,用户点击后领券,订餐使用优惠券你就可以获得返佣。 小程序呢,其实就简单了,无非是分门别类列出来,用户点击跳转领取就好了。 [图片] 这样简单的小程序,其实... 我也能干! 撸起袖子,说干就干,2、3天撸完代码,效果也还满意。还加入了一些订阅提醒,企业微信的营销玩法。 首页和管理中心: [图片] 部分管理设置截图: [图片] 全套云开发,小程序的管理后台、数据设置也直接集成在了小程序中,也不用在单独做一套后台管理系统了。 正所谓一机在手,天下我有。 发到群里,发现感兴趣的朋友还不少,一个个非要我给部署一下玩一玩躺赚。迫于无奈,赶鸭子上架。 这时候新的问题来了,好些人对于小程序实在是不了解,即使我给出源码,他也根本不可能完成设置开发者,ide打开,上传,提审这些工作。 全靠我代处理么?想想就头大...... 接下来谈谈几种解决方案: 1 . 第三方服务商代开发 基本上从小程序第三方服务商平台推出的时候,就一直在做这块,也是相当熟悉了。理论上来说,这是最完美的解决方案。现在第三方平台也很完美的支持了云开发代开发,整个链路比较通畅。 第三方服务商代开发的第一版云开发接口,可以实现从开通云开发、创建环境、部署云函数一系列的代完成工作,云环境归属授权方。小程序部分,依然和传统第三方代开发没有区别。对于授权小程序,自己的环境,自己的云函数,更像是一种私密部署的模式。 第三方服务商代开发的第二版(内测中),和现行云开发代开发略有区别,底层走的是云环境共享的思路,代客户开通的云环境,实际是归属到了第三方平台腾讯云下,通过环境共享的模式提供给授权小程序使用。相对于第一版,环境可以集中管理,提供共享类saas服务就更利于集中管控和调配。但是对于环境的计费管理相对第一版会略微复杂。 但是无论哪种模式,对于这个小程序都不太合适。必须要通过第三方api完整的实现一套从授权小程序到代部署、代提交代码到代提审的完整管理流程,这个工作量还是相当不小。 放弃。 2 . 基于tcb cli和tcb framework进行小程序快速复制和部署 这也是这个小项目目前采用的方案。 tcb cli说明文档见:https://docs.cloudbase.net/cli-v1/intro.html#shi-yong tcb cli 其实就是是云开发(Tencent CloudBase,TCB)开源的命令行界面交互工具,用于帮助用户快速、方便的部署项目,管理云开发资源。 tcb framework说明文档见: https://docs.cloudbase.net/framework/ 至于tcb framework,则是基于tcb cli的一套类似扩展框架,依然也是云开发官方出品的云原生一体化部署工具,可以帮助开发者将静态网站、后端服务和小程序等应用,一键部署到云开发 Serverless 架构的云平台上,自动伸缩且无需关心运维,聚焦应用本身,无需关心底层配置和资源。 基于这二者工具,我们有这些基本能力,当然,还有更多: 初始化应用使用framework云数据库插件,创建集合、设置集合权限、索引等使用framework登陆权限插件,设置云环境权限使用framewrok云函数插件,提交、部署云函数使用framewrok小程序插件,预览、上传小程序借助 tcb fn invoke命令,手动运行已部署云函数,执行一些必要的操作,如:数据清洗等至此,一套完整的cli部署框架基本可以定型了,我需要: 初始化应用,设置环境权限(理论上权限可以通盘用用户登录才可访问,但是一些特殊情况,譬如朋友圈分享,是无法在落地页中执行login的,所以的考虑匿名访问环境的场景)初始化数据库集合,初始化必要数据。如果版本升级,需要新的预置数据,则需要考虑db migrate自动部署云函数自动部署小程序撸起袖子,说干就干。掏出熟悉的golang来写cli,当然这里也可以使用node来写,配合 commander.js 或者inquireUi.js 做交互式的命令行Cli效果都不错。 对于用户,他只需要提供appid、环境id、小程序上传秘钥,其他的一概可以不用考虑了。 最终效果如图: a. 选择客户,生成必要配置信息 [图片] b. 选择部署模式 [图片] c. 熟悉的tcb命令行部署 [图片] 还等什么,去泡上一杯老干部专属养生枸杞茶,静待部署成功交付吧。 当然,tcb cli和tcbf也有其自身的局限性,譬如一些配置的缺失,譬如对微信链路独有的openapi的支持,这些也都亟待解决。然而,其基于命令行的调用模式也提供了无限可能和想象空间。譬如可以集成到自动化ci工具中,譬如可以结合github actions来玩一些骚操作。 项目演示地址 这些,就留待各位看官自行挖掘了。 最后,这套部署系统总得有个响亮的名字吧。 唔,云开发小程序自动部署系统,Tencent Miniprogram Deploy system。 好吧,就叫它: TMD
2020-12-22 - 微信公众号增加发文次数?
微信公众号增加发文次数
2020-12-22 - 小程序流量主运营之ECPM怎么提高
目前小程序流量主共有8个广告类型:banner、视频、插屏、前贴、激励、格子、模板、开屏。 首先说下ECPM是什么意思。ECPM指的是每一千次展示可以获得的广告收入。 ECPM是取决于用户点击广告次数,也就是1000次曝光里面点击广告的人数越多,ECPM值越高,不单单是曝光1000次的收益。 也就是说如果你曝光了1000次banner广告,但是没有用户点击,那么你banner广告位的ECPM就是0。 [图片] 然后我们说下今天的主题,ECPM怎么提高。 1、首先你流量主小程序里面的所有广告,都是广告主去投放的。广告主可投放的类型有很多种,根据广告主投放城市、行业等决定。 1-1、比如我在呼和浩特,我把广告投放到呼和浩特,如果我按竞价CPC的投放,一个点击最低1.06,除了微信要扣除流量主收益的50%之外,剩下的50%就是你的收益。 [图片] 1-2、我按合约广告投放,1000次曝光我花费的是15元,微信扣除50%,你的ECPM就是7.5,这么说懂了吧。 [图片] 1-3、所以基于广告主广告投放,你要选好广告,尽量避免第二条里面的1000次曝光这种CPM广告主,这种广告主一般都是大品牌,不在乎你点不点,就是让你看。所以我们要有犀利的眼光去判断屏蔽哪种广告位。 [图片] 2、ECPM的高低取决于你的小程序用户分布年龄 比如30岁IOS用户就是比20岁的IOS用户质量高,30岁左右的IOS用户属于高价值用户,对电商、游戏等付费能力会更强,会比20岁的人群要高,所以我们在开发小程序的时候,尽量往这个年龄段靠。还有30岁的女性电商用户,都是ECPM拉高点的关键用户群体。(此处仅仅是举例分析,无年龄歧视) 所以我们再开发、购买小程序时,选题材、素材的时候可以尽量往这个年龄段靠一下,ECPM会高一些。 3、广告设计体验 广告设计是一门艺术,但是不能违规。要优雅的设计广告,让用户看着舒服,看的清楚,主动去点击广告,这也是广告主投放广告的目的。最近有多人私信和我说买1000多个手机,弄1000多个微信去刷广告。真的是想瞎了心了,如果你是广告主,你投放出去的广告希望用户这样点击吗?再说了,微信广告的风控机制是你承受不住的,微信也得保护广告主投放的利益。如果全部都是这种样点广告,微信生态早就活不下去了。不要想着投机取巧,踏踏实实做流量才是王道。 [图片] 4、站外引流提升ECPM 所有的APP都缺流量,不要以为微信是国民产品就不缺流量。微信小程序也喜欢站外流量引进来,所以大家在引流的时候,可以从其他APP引流,这样你的ECPM也是很高。 [图片] [图片]
2020-12-19 - 在线答题小程序技术方案征集?
寻求一个解决方案: 目前答题活动有10 0000 人参与,满分100分,每个微信用户只参加一次答题,也就是目前集合有10 0000条记录,那么当一个用户进来的时候怎么获取他的排名? 排名规则:分数优先,分数相同的,按答题用时从短到长升序排列。 数据库选择:目前使用云开发,答题记录放在集合historys里面,也就是historys集合目前躺着10 0000条答题记录数据。 ~~~ 已知 1)当前用户_openid 2)10000 条答题记录 historys 求解 该用户的排名? ~~~ 只说下思路即可,不需要具体实现代码? 方案一经录用,打赏100, 方案可不唯一,也就是说最终方案可不止一个,视参与情况,最多会打赏最优的五个方案,如果有效方案多于10个,最少打赏二个方案,最终会在该贴公布具体打赏情况。 具体方案可评论区留言,同一技术方案,以提出时间最早有效。 具体数据结构如下所示 [图片] ~~~~ 该方案征集有效期为3天,截止时间为本周日晚上9点,即12月20号晚上9点 ~~ 由于社区私信不能发收款码图片,请评论第一,第二两位热心用户,在下面文章评论区留下收款码截图,或者直接微信联系我,我好安排后续的转账工作,非常感谢各位的参与 学习贯彻十九届五中全会知识竞赛答题活动小程序? - 微信开放社区 https://developers.weixin.qq.com/community/develop/article/doc/00068ecced0278a1dd6b58f2051413 相关赏金已打赏两位同学 [图片] [图片] 再次感谢
2020-12-22 - 收到了notify_third_fasteregister也收达authorized,悠哉?(小程序快速注册踩坑二)
【点子出来了】 帮忙快速注册完小程序后,登录用户小程序后台发现,已授权给服务商了。当时脑子一灵说,如果可以直接授权,有通知就可以在授权通知的地方自动关联通知的小程序和系统账号的归属关系。这个猜想是可行的。 【实现beta1】 于是开始在授权事件接收的地方,关联授权通知账号和系统绑定的关系。经过半天的代码实现,和单元测试,确认是可以自动处理的,于是发发版上线。 但是不断的接收用户反馈,并没成功自动关联两个系统。 【实现beta2】 调查发现,authorized早于notify_third_fasteregister。于是加了暂存区。 先返回的是授权导致不知道授权通知对应的公司,需要暂存授权资料,收到注册通知再去处理授权。还需要代码处理。 [图片] 【实现beta3】 发现处理起来比较费劲儿,还要加入暂存区。写了一种兼容两种事件不区分先后到达的解决方案。发现比较不雅观。因为i通知事件并没给我是否是小程序,仅有一个appid,我也无法区分是否该appid来自快速注册。虽然有以下的实现效果。 [图片] [图片] 【beta4】 于是询问官方,希望能知道事件确定的顺序。官方建议延迟1分钟处理。于是我就加上了延迟一分钟的方案。 [图片][图片][图片] [图片] 【beta5】 上线后授权后自动处理很灵,但是发现微信不停的给我发授权通知和注册通知。因为我是用的上图第一种,同步延迟,很久没有回复微信消息,微信就不停的给我发。当我查看日志的时候, 马上决定把同步改成异步延迟。 【beta6】 为了使得我只缓存小程序类型,我获取了一次小程序信息,并判断了是否有id=17的权限(开发与账号管理权限),结果该接口产生了新token我未更新,导致公众号和小程序大批的token失效。于是就把过滤条件删掉了。 【beta7】 在InfoType authorized先到时,加入一个延迟75s的异步线程,然后在InfoType notify_third_fasteregister到达时,记录appid和系统账号关系,并记录下appid,然后等异步处理时间可行时,即可拿到关联的账号绑定。 并约定原则,如果产生一次token就要更新数据区,这样保证了一次产生后一定被保存。 然后再后续资料完善时,配置小程序webview域名,request域名,然后提交代码,提交审核。可与保证全程自动化。 但是这里面一个前提是,微信必须要在认证状态,授权状态发生变化时,给服务商发送通知。 因为对微信的稳定性相对比较信任,就没想过会有一天,会收不到通知的情况,这就是下一讲续集。 如果未收到通知,会怎样? 难道还会存在,设置了名字,却还是提升无名字和类目,请完善资料再提交代码? 如何可以保证自动的处理代码?
2020-12-14 - 公众号多久不登录就会被冻结?是否会发通知给服务商?精准探索。
公众号多久不登录就会被冻结? 结果:210.最新文档为主。 是否会发通知给服务商 结果:且通知不会发给服务商。 【过程】 【博文】 https://developers.weixin.qq.com/community/develop/doc/0004ec4e790e387e065b6980a55400?highLine=%25E5%2585%25AC%25E5%258F%25B7%25E5%258F%25B7%25E5%25A4%259A%25E4%25B9%2585%25E6%259C%25AA%25E7%2599%25BB%25E5%25BD%2595%25E4%25BC%259A%25E5%2586%25BB%25E7%25BB%2593 [图片] 【运营文档1-90天】 https://mp.weixin.qq.com/mp/opshowpage?action=newoplaw#t3-3-4 [图片] 【运营文档2-210天】 入口:https://kf.qq.com/faq/180306JVvii2180306RvmEzy.html 运营文档是210 https://mp.weixin.qq.com/cgi-bin/readtemplate?t=business/faq_operation_tmpl&type=info [图片] 【腾讯客服】 [图片] 【服务商客服】 [图片] [图片] 【公众号客服】 [图片] [图片] 【公众号的冻结提醒是否可以发给服务商?】 https://developers.weixin.qq.com/community/develop/doc/000a463b38c450786a6be0eef51800?fromCreate=0 [图片] 【结果:210.最新文档为主。且不会发给服务商。】
2020-12-14 - 做个优秀的小程序 - 体验评分
随着小程序的开发迭代,慢慢的我们会更加关注小程序的质量,今天来讲讲小程序的隐藏功能 -- 体验评分。 为什么需要体验评分 我们多做一点,就可以给用户更好的体验。(窃喜) 当然,做为开发者的我们,动动鼠标点一点就能帮助我们发现问题,是不是很愉快~~ 接下来我们来看看怎么使用体验评分? 怎么使用体验评分 体验评分的能力目前开放在【微信开发者工具 - 调试器 - Audits】 操作步骤:运行体验评分 - 一顿操作 - 获取体验报告 - 一顿优化。 (优化其实是一个圈,新代码加上之后也要继续关注哦~) [图片] 体验评分实践 我们用《小程序示例》来操作一波看看效果~ 01. 运行体验评分 使用开发者工具打开小程序,调试器区域切换到 Audits 面板,就一个“运行”按钮,点它。 [图片] 02.一顿操作 然后在工具上对小程序进行操作,比如:我点开了 “接口 - 媒体 - 音频 - 播放 ”。 [图片] 03.获取体验报告 操作完之后,点击“停止”,我们就可以获取到体验报告(简单~)。 [图片] 拿到报告之后,我们就可以看到总分 98,最佳实践 80。往下拉会有扣分的实际原因。 看第一条是 “发现正在使用废弃接口”,报告已经很清楚的告诉我们使用了废弃组件 audio,我们根据报告进行优化即可。 [图片] 04.一顿优化 按照报告优化完之后,我们可以继续进行体验评分功能确认优化是否完善。这是一个有用的圈圈⚪⚪⚪ 我们来讲几个优化过程中遇到的问题,咳咳咳 存在图片没有按原图宽高比显示 [图片] 在测试预览图片的时候,发现图片被挤了,体验评分告诉我们宽高比有问题,发现是 <image> 使用了默认的 mode (scaleToFill:缩放模式,不保持纵横比缩放图片,使图片的宽高完全拉伸至填满 image 元素)。所以通过添加 mode="aspectFill" (缩放模式,保持纵横比缩放图片,只保证图片的短边能完全显示出来。)来解决宽高比的问题。 [图片] [图片] 发现固定底部的可点击组件可能不在iPhone X安全区域内 [图片] 这个问题我们用手机测试是正常的,但是体验评分给了提示,所以就来看看实现方式是不是有问题: 原有方式:通过接口监听systemInfo.model.indexOf('iPhone X') 给 view 添加专属 class 官方推荐:官方推荐的方式是用 wxss 来兼容,不一定只有 iPhone X 下面会有安全区域 [图片] 发现正在使用废弃接口 [图片] 这个问题对一些老旧代码来说很有用,比如示例很久之前写的 auto-focus,由于基本没有改动,所以代码就一直保持不变。使用体验评分的时候检测到了这个属性是废弃属性,所以我们更换了可用属性 focus 来解决问题。 [图片] 体验评分总结 使用体验评分进行小程序示例的优化,有以下优点: 可以发现代码中使用的废弃api,避免后续踩坑根据实际操作发现相关耗时久的情况,预先发现体验问题合理的视觉/交互检测,提前做好兼容资源使用检测,用合适的资源做好小程序当然,体验过程中也有不足: 开发者工具不支持预览的 组件 / API 暂不支持体验评分(听说官方已经在努力推进啦)一起体验评分 如果你也在做小程序优化,欢迎使用体验评分来优化哦~ 预祝大家都拿 100婚 !!! [图片] 体验评分文档传送门 如果你有疑问,请在下方评论区留言给binnie,㊗️大家都没有bug,✌️✌️✌️
2020-12-04 - 那些年你没权限调用的API
api 顾名思义 wx.openMiniProgramHistoryList wx.openMiniProgramProfile wx.openMiniProgramSearch wx.openMiniProgramStarList 不再多BB直接上图 1.隐藏/显示右上角胶囊按钮 [图片] 2.截屏 [图片] 最近玩console有点上头 现在的小程序api已经达到了373个了 我是怎么知道的?看图 [图片] 往下拉一看 373 [图片] 这里边有很多的api 是文档中没写的(也可能永远不会写) 先说下 普通的小程序里边是没有权限的调用会提示 {errMsg: “openUserProfile:fail:access denied”} 或者 {errMsg: “getABTestConfig:fail permission denied”, errCode: 1} 代码片段:https://developers.weixin.qq.com/s/FgIssdmP7jdv 可用的api wx.navigateBackH5 --webview 通过这个api可以返回上一个web页面 更多的BUG等你们去处理 我吃饭去咯 end
2019-11-28 - Kbone + 云开发快速助力小程序 & Web同构
本文通过一个小实践来介绍 Kbone 和 云开发 的结合使用。 [图片] 一、Kbone介绍 Q: Kbone是什么? A: Kbone 是一个致力于微信小程序和 Web 端同构的解决方案。 用图片来解释,就是一个 Web 项目 + Kbone 就可以变成小程序项目。 [图片] 什么?听说你想知道 Kbone 和其他同构方案的对比?可以看看我之前写的文章 《揭开微信小程序 Kbone 的神秘面纱》 更多 Kbone 相关知识 二、云开发介绍 Q: 云开发又是什么? A: 无需搭建服务器,即可使用云端能力。 我们这次的实践主要用到云开发的两个能力 云函数:一段运行在云端的代码数据库:一个 json 数据库云开发多端支持:因为 Kbone 是做同构的,所以云开发也需要支持多端,这里云开发给我们提供了多端的 SDK。 [图片] 更多云开发相关知识 三、实践项目介绍 本次实践主要做了两个模块 显示列表:数据拉取操作新增列:增加数据操作[图片] 项目结构介绍 |-- build // 配置 |-- webpack.config.js // Web 端构建配置 |-- webpack.mp.config.js // 小程序端构建配置 |-- miniprogram.config.js // kbone 插件配置 |-- cloudfunctions // 云函数,存放云开发相关代码 |-- dist // 编译结果 |-- mp // 小程序 |-- web // Web |-- src // 源码 |-- index.html // Web 端入口 html 文件 |-- package.json Tips:只要文件名 包含 miniprogram / mp 的,就是小程序相关的文件。 四、实操介绍 01 - 将 Vue 项目配置成 Kbone 项目 添加小程序入口 js 文件:main.mp.js[图片] [图片] 添加小程序 webpack配置文件:webpack.mp.config.js & miniprogram.config.js[图片] webpack.mp.config.js 主要配置 [图片] [图片] miniprogram.config.js 主要配置 [图片] 02 - 编写云函数 首先,我们来看下一个云函数的目录结构 |-- cloudfunctions // | |-- add // 云函数 add | | |-- config.json // 配置文件 | | |-- index.js // 入口文件 | | |-- package.json // 接着来看看云函数里面写了什么? // index.js // 引入云函数 sdk const cloud = require('wx-server-sdk') // 初始化 cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV }) // 获取数据库引用 const db = cloud.database() // 云函数的入口 exports.main = async (event, context) => { return await db.collection('test').add({ data: { title: event.title, desc: event.desc } }) } 03 - 云函数部署 云函数部署分为两步 构建:进入云函数 cloudfunctions / add ,执行 npm i 。部署:右键点击云函数,选择 “创建并部署”,在工具中打开云开发控制台,即可看到所部署的云函数。[图片] 04 - 多端接入云函数 小程序端 和 Web 端都有SDK可以调用云函数,小程序直接使用 wx.cloud,云开发则需要引入 cloud.js,然后使用 cloud。 [图片] 调用云函数直接调用 wx.cloud.callFunction / cloud.callFunction 即可。 wx.cloud.callFunction({ name: 'add', data: { title: this.title, desc: this.desc } }).then(res => {}) 配置未登录模式 由于 Web 端没有小程序的登录态,所以需要将云开发权限配置为 未登录模式。 [图片] 05 - 效果展示 最后,我们来看下效果~ [图片] 本文为课程《Kbone + 云开发快速助力小程序 & Web同构》文字版 附件:本实践demo 如果你有疑问,请在下方评论区留言给binnie,㊗️大家都没有bug,✌️✌️✌️
2020-11-27 - 怎么解决在微信开放平台申请的应用因提供的官网不符合规范审核不通过?
在微信开放平台创建应用,因为公司的业务是一个政府部门、企业之间闭环的应用场景,不会上线到应用平台,而且现在还在开发过程中,不能把应用相关信息放到官网上面。被审核不通过,这种该怎么解决。
2020-11-25 - 微信小商店带货,你必须要要知道的那些事儿
自从微信小商店支持带货之后,大家就可以上架了五花八门的产品,大多数人会屁颠屁颠的按照如下流程:打开小商店-带货-搜索商品-查看佣金-点击带货上架,然后开始朋友圈转发,视频号带货,公众号推送等。行水流水般的操作之后,心里美滋滋,坐等进账。然而多数人一顿操作猛如虎,结果会是0成单的凄惨局面。 [图片] 上面的操作路径问题出在哪里呢?对于大多数的小商店玩家来说,确实是很常规的操作的,但是这里面其实隐藏了很多必须要注意的细节。今天我会通过3个方面,教大家在带货选品上有更进一步的认知和提升(如果说的不对的地方也请指出),帮助你们更好的带货赚钱。 01带货平台的选择 目前小商店已经支持京东,拼多多,有赞,唯品会,当当,麦宝这6个渠道的带货了(暂时不支持淘宝,都懂的)。 [图片] 大家也都知道选对平台跟对人很重要,那这里带货的第一要素就是要选对平台。之前群里就有人问,卖货不就完事了吗,选一个优惠大,佣金高的产品等等。都懂的我就不说了,选平台要看其中一个重要的隐藏因素:就是锁客佣金政策。我先给大家分析下这6个平台的佣金政策。 1、京东 先看下图,这是京东对外的锁客佣金政策。 [图片] 我给大家解读下,首先这里面有两个概念: 同店订单:比如你的小商店里挂了京东小米旗舰店的商品A,用户通过你的链接点进去,直接购买了商品A或者小米旗舰店的任何商品,就是同店订单,你就可以锁定他15天,他在15天内,在京东买任何东西,你都可以获得佣金。 跨店订单:你在小商店里挂了小米旗舰店的商品A,用户通过你的链接进入京东,结果购买了松下旗舰店的商品,就是跨店订单,你可以锁定他24小时,24小时内,他只要在京东买东西,你都可以获得佣金。 同店优先级优于跨店:一个被你锁定为同店订单的用户,通过别人分享的店铺丙的商品C的链接去京东买了店铺丁的商品D,这时他并不会被别人锁走,这一单佣金依然是你的。 同一优先级下以后者为准:一个被你锁定为跨店订单的用户,又去下了个一个跨店订单,这时的跨店订单佣金就属于后一个人,而不属于你了。 所以只要你选择京东带货,如果你看上某个产品足够好,那就可以能提早锁定这个顾客,之后拿到佣金的概率会更好。 衍生阅读:如果你正在玩京东,需要微信小商店带货,可以开通京挑客,这样微信小商店也会抓取你的产品,具体如何开通可以加我微信私聊。 2、拼多多 先看下图,这是拼多多对外的锁客佣金政策 [图片] 先看这段话:在一段时间(app是24小时,h5是1个小时)访问多多进宝商品页面,这个意思是用户分享出的链接,你必须要在24小时内或者1个小时内点击商品并且到达商品详情页,才能建立师徒关系,也就是完成锁客(点击领券页面不会计算),如果超过这个时间,那么这个链接就失效了。然后访问链接之后,就会建立师徒关系,后续如果别人(你分享给的那个人)在15天内购买这个店的商品和店里的其他商品,也都会获取佣金,当然前提是这些商品都要开通多多进宝,否则即使顾客买了我们的产品,也还是没有佣金。 衍生阅读:如果你正在玩拼多多,需要微信小商店带货,可以开通多多进宝,这样微信小商店也会抓取你的产品,具体如何开通可以加我微信私聊。 3、当当网 先看下图,这是拼多多对外的锁客佣金政策 [图片] 反正找了好久,最终还是问了客服才找到当当网的锁客佣金政策,这里面有几个点需要注意: 1、自己分享的链接购买图书不计入佣金。 2、不论以什么方式分享,如果对方打开app下单是拿不到佣金的。 也就是微信小商店带货的时候,自己购买是拿不到佣金的,不能像其他淘客app那样所谓自用省钱分享赚钱。然后如果你分享的用户最终通过当当网app下单了也不计入佣金,我目测社区里面很多人反馈拿不到佣金,估摸着也是这个原因。 当当网目前主要是图书品类多,买书的时候还是挺划算的,其他的品类我觉得竞争力就不大了。 4、有赞 [图片] 佣金政策可以看最底下的那一行,用户点击有赞的链接之后,也是被锁定15天,只要15天内完成下单即都可以拿到佣金。因为有赞是单店,不会存在跨店订单的情况,所以如果产生了跨店佣金,是拿不到佣金的。 另外还有锁客先后的逻辑:A分享给B,C也分享给B,这个时候的订单佣金算谁的呢?目前这个是通过商家设置的:是否开启了抢客模式,开启了佣金就给C,没有开启佣金就给A。 另外关于自用省钱分享赚钱:有赞后台可以设置如果选择【默认与自己绑定客户关系】,即用户点击自己的推广链接购买商品,就会获取到对应的佣金;如果选择【不允许与自己绑定客户关系】,用户自己购买就不会有佣金。(注:一旦选择【默认与自己绑定客户关系】,客户成为分销员后会和自己绑定,之前分销员和该客户的客户关系会失效,邀请奖励会归属于分销员的上级) 5、唯品会 [图片] 唯品会的锁客政策也比较简单,锁客逻辑为1天,不像其他平台15天,所以如果有相同的产品建议选择锁客逻辑更久的其他平台。然后关于锁客先后的问题,也米有得到正面的回答,所以此处不表。不过一般是以促成交易的后者为准的。 6、麦宝很抱歉,不是很了解,也没有找到资料 [图片] 综上几个平台,不同平台的锁客逻辑不一样,所以很多从业者带货的时候会有针对的选择平台,另外不要只盯着返现比例,之前看到好多媒体文章拿一个单品的价格在不同的平台比对佣金,我觉得没有意义,因为商家在不同平台运营的策略不一样,销量跟着活动走,活动决定佣金,所以佣金是不停的变化的。 推荐阅读 视频号如何关联微信小商店带货赚钱? 微信公众号如何关联小商店带货? 再谈微信小商店&视频号赚钱的机会 刚刚,微信小商店删了啥?
2020-11-18 - 虚拟业务指南请收好。
在小程序生态中,基于苹果运营规范,小程序内暂不支持iOS端虚拟支付业务。为此小编为大家整理了一份虚拟支付业务指南,希望大家在做虚拟业务时有所帮助: [视频] 那么,到底什么是虚拟支付业务呢? 虚拟支付业务是指购买非实物商品。比如:VIP会员、充值、录制课程、录制音频视频等虚拟产品。目前iOS端暂不支持虚拟支付业务。 我们常见iOS虚拟支付的不合规示例有哪些呢? 示例一 :小程序内存在付费购买虚拟内容或道具。商品多体现为提前编辑好的、录制好的虚拟商品。如录制视频课程、游戏道具。 整改建议 :建议去除小程序内所有付费购买虚拟服务,并根据提示修改相关内容及文案,文案可参照“由于相关规范,iOS功能暂不可用”。 [图片] 示例二 :付费解锁优质服务。多体现为提供虚拟商品的小程序可通过支付购买、开通虚拟会员等形式,体验小程序付费服务。比如:支付阅读章节小说、同城生活服务平台付费发帖/付费置顶等。 整改建议 :建议可以关闭iOS端虚拟支付通道,并将【马上充值】更改为【由于相关规范,iOS功能暂不可用】,并不再提供iOS端会员服务。 [图片] 示例三 :关闭iOS端虚拟支付功能后,虚拟商品页面仍然保留货架价格标签展示、购买/付费/订阅等功能或按钮。 整改建议 :建议去除小程序中的虚拟商品的价格展示,并更改为【免费】;并将【订阅 ¥128】更改为【由于相关规范,iOS功能暂不可用】,并不再提供iOS端虚拟商品购买服务。 [图片] 示例四 :关闭iOS端虚拟支付功能后,提供引导用户前往其他支付的路径/文案,完成虚拟支付闭环。 整 改建议 :建议去除iOS端小程序内引导用户前往其他支付路径/文案,并不再提供iOS端虚拟商品购买服务。 [图片] 示例五 :小程序含需要付费的虚拟商品,并设置限时免费的服务,限时免费结束后需付费才能继续提供服务。 整改建议 :建议将iOS端小程序中所有虚拟付费内容更改为免费,并不再提供iOS端虚拟商品购买服务。 [图片] 示例六 :关闭iOS端虚拟支付功能后,小程序中虚拟产品页面不可以含有付费性质的关键字(如:购买、已购、付费、支付等),包括但不限于功能按钮、功能页面、支付提示及任何商品介绍等。 整改建议 :建议将小程序iOS端虚拟产品页面中的文案/按钮/功能tab含有限制的关键字更改为【免费】或删除。并不再提供iOS端虚拟商品购买服务。 [图片] 如小程序内存在以上不合规的虚拟支付内容,请开发者重视并及时整改。对于首次违规的小程序,平台将下发站内信整改通知,并给予三天整改时间,请开发者按照提示在限期内完成整改。平台将会对到期未完成整改的小程序进行搜索策略调整,并在小程序功能使用上进行一定的限制,直到小程序完成内容整改。
2020-04-23 - 【问题排查】小程序闪退
在使用小程序的时候,偶然会发生闪退。这里来讲一下闪退的问题该如何排查。 版本排查 发生闪退的时候,首先,要确认下 版本 是不是最新的。如果不是,建议更新版本再重试。旧版本的问题会在新版本进行修复哦。 微信版本: 微信官网 基础库版本:基础库更新日志小程序自查 确认版本都是最新情况下,还是有闪退的问题的话,建议先进行小程序自查~ 一般情况下,闪退是因为内存使用过多导致的,小程序侧可以通过基础库提供 wx.onMemoryWarning 接口来监听内存不足的告警,当收到告警时,通过回收一些不必要资源避免进一步加剧内存紧张。 反馈官方 如果问题还是会出现的话建议反馈给官方处理,需要附带上以下信息点协助排查(划重点:完整的提供信息才可以加速问题处理进度哦!!!) 示例: 系统及微信版本号:安卓7.0.17、IOS 7.0.17(出现问题的时候,建议两端都测试,给出有问题的case)必现 or 偶现:必现可复现场景:代码片段 或者 线上小程序复现步骤:进入首页,点击添加按钮等等,推荐录制复现的 视频(重点)进行上传。上传日志:提供微信号,复现时间点(操作步骤:手机微信那里上传下日志: 我 -> 设置 -> 帮助与反馈:右上角扳手 -> 上报日志,选择出现问题的日期,上传日志)
2020-11-03 - 使用微信的扫码功能实现网站和小程序端用户账号统一
前言 上一篇文章(使用小程序内的扫码功能实现网站和小程序端用户账号统一)发表后,社区大佬杨泉和拾忆分别给出了改进建议,总结两人的建议,就有了用户体验更好的方法,直接使用微信扫码来实现网站和小程序端用户账号统一。 先说一下前提,这次的方法都要用到扫普通链接二维码打开小程序来实现功能。在小程序后台完成相关配置后,直接用微信扫码就会打开小程序指定页面个并将网址直接通过参数[代码]q[代码]带给页面。 小程序扫码登录网站 在小程序后台配置中,将二维码规则设置为附带登录码的网址(比如:[代码]http://www.abc.com/?loginCode=[代码]),小程序功能页面建议设置为需要登录才能访问的页面,小程序中这个页面直接访问时需要判断是否登录,未登录状态要触发登录功能,登录后原样返回。 网页端业务逻辑不变,要登录时先生成一个唯一的登录码,比如:[代码]1234[代码],然后放在小程序后台配置的二维码规则网址中,比如:[代码]http://www.abc.com/?loginCode=1234[代码],然后把这个网址生成二维码展示。 用户使用微信扫码后会自动打开小程序对应页面,并将二维码对应网址通过参数[代码]q[代码]带给页面,在onLoad事件中提取[代码]q[代码]参数并提取出其中的登录码,提交到后端接口,后端接口查询该登录码绑定的用户返回后在小程序端完成登录。网页端在展示二维码后,开启一个轮询,定时访问后端接口查询该登录码的登录状态,在该登录码和小程序已登录用户绑定后完成网站上的用户登录。 [图片] 小程序扫码登录小程序 小程序后台配置和上一个情况一致,网页端流程略有不同。网页上用户登录后展示带登录码的网址对应的二维码,同时将当前登录用户和登录码绑定。微信扫码打开小程序后提取出登录码,提交到后端接口,后端接口查询该登录码绑定的用户返回后在小程序端完成登录。还可以配合wx.login绑定当前用户的openid,实现自动登录。 网页端展示二维码后使用轮询查看登录码的登录状态,到期或者已登录后在网页端销毁二维码。小程序端也需要对当前是否已登录做一个判断并做好切换用户的相关功能。 [图片] 总结 总结下来,这个方法就是以登录码为媒介,通过在某一端将登录码和登录用户绑定后,在另一端实现同一用户的登录,实际使用中还需要考虑登录码的有效期等。 以上方法流程不知道会有什么风险,欢迎大家的讨论。
2020-11-01 - 使用小程序内的扫码功能实现网站和小程序端用户账号统一
前言 众所周知,目前情况下要实现微信账号相关的多端账号统一必须通过开放平台,使用unionid来实现。但是如果在没有开放平台(或者其他原因不想用、不能用),或者先有网站端已使用了原始登录方式(账号密码、手机号验证码等)的情况下,怎么实现账号统一呢?我这里想到了一种使用小程序内的扫码功能api(wx.scanCode)实现网站和小程序端用户账号统一的方法,欢迎讨论。 小程序扫码登录网站 这种一般是先有小程序,小程序端使用微信授权登录,然后需要在网站上使用同一账号登录。一般来说是在小程序端要求用户设置账号密码、或者先绑定手机号之后,再用账号密码或者手机号验证码登录。 小程序扫码的方法是网页上要登录时先生成一个唯一的登录码,比如:[代码]1234[代码],然后放在网站域名下的一个网址中,比如:[代码]http://www.abc.com/?loginCode=1234[代码],然后把这个网址生成二维码展示。为了更好的用户体验,这个网址应该是实际可访问的,可以用于在使用微信扫码时展示小程序码引导用户打开小程序。 用户在小程序中使用扫码api扫码后从扫码结果中提取出登录码,提交到后端接口,后端接口将登录码和当前登录小程序的用户绑定。网页端在展示二维码后,开启一个轮询,定时访问后端接口查询该登录码的登录状态,在该登录码和小程序已登录用户绑定后完成网站上的用户登录。 [图片] 小程序扫码登录小程序 这种一般是先有网站,小程序端要用网站用户登录的情况,一般的做法是小程序端也用和网站上一样的账号密码或者手机号验证码(或者微信授权获取手机号)的方式登录。 小程序扫码的方法大体原理上和上一个情况一样,流程略有不同。网页上用户登录后展示带登录码的网址对应的二维码,同时将当前登录用户和登录码绑定。小程序中扫码后提取出登录码,提交到后端接口,后端接口查询该登录码绑定的用户返回后在小程序端完成登录。还可以配合wx.login绑定当前用户的openid,实现自动登录。 网页端展示二维码后使用轮询查看登录码的登录状态,到期或者已登录后在网页端销毁二维码。 [图片] 总结 总结下来,这个方法就是以登录码为媒介,通过在某一端将登录码和登录用户绑定后,在另一端实现同一用户的登录,实际使用中还需要考虑登录码的有效期等。 以上方法流程不知道会有什么风险,欢迎大家的讨论。 ---------网友讨论分割线---------- 社区大佬杨泉提出扫码登录小程序的场景中,可以使用微信直接扫带参数的小程序码来实现。这个方案从技术上来说应该没什么问题,大致原理也是类似的,但是用户体验会好很多。 然鹅,我在实际项目中没有采用这一方案,主要基于以下两个原因: 微信直接扫码的情况下用户不知道小程序是否已登录,这时候如果扫了一个其他用户的码,还要涉及到用户切换操作,很麻烦 这个码有时效性,我实际设置的是1分钟过期,这就表示每1分钟就有可能要重新请求一次微信的服务端接口,也很麻烦 ---------网友再次讨论分割线---------- 社区大佬拾忆提出可以使用扫普通链接二维码打开小程序来实现功能。在小程序后台完成相关配置后,直接用微信扫码就会打开小程序指定页面个并将网址直接通过参数[代码]q[代码]带给页面,用户体验再次获得提升,果然大佬就是大佬。
2020-11-01 - 从微博跳转至指定小程序是如何实现的?
例如从微博麦当劳发布的一个链接,跳转至麦当劳小程序买卡 微博链接:https://m.weibo.cn/1947211342/4520368097144104 下图中点击“麦当劳OH麦卡职场卡”会跳转至麦当劳小程序的买卡页面 [图片]
2020-07-02 - 电脑登录微信老是闪退
电脑登录一直闪退,登录几秒钟又退了,显示错误报告,后台能否处理?账号:zengzengbao[图片]
2020-09-30 - 微信小程序审核相关贴指引
给提问的开发者的建议: 1、审核申诉问题,建议优先走腾讯客服(工单)流程。(路径:kf.qq.com) 2、提问之前先查询文档、通过社区右上角搜索已经存在的问题。 3、写一个简明扼要的标题,并在正文描述清楚你的问题。 4、对于提供信息过少的问题,会直接关闭,请提供完整信息以后重新打开问题。 一、各位开发者,当审核未通过,请按如下模版反馈问题至工单或者社区发帖 1、小程序注册主体类型(企业、个人还是第三方): 2、小程序账号(APPID、原始ID或者邮箱,三者之一即可): 3、问题描述(具体问题介绍): 4、问题截图(客户端问题界面截图): 二、代码审核时间 登录微信公众平台小程序,进入开发管理,开发版本中展示已上传的代码,管理员可提交审核或是删除代码,代码审核7个工作日完成。 注:常规审核时间为2-3个工作日完成,如无特殊情况且未超过7个工作日发帖将不予反馈,请耐心等待审核结果。 三、小程序未通过会涉及哪些类型? 主要涉及有小程序服务类目、基础信息、上线后功能使用、内容、可用性和完整性。 注意事项服务类目小程序发布的内容与小程序申请的服务类目要保持一致。 小程序发布的内容涉及特殊行业时,未选择相应的类目。特殊行业参考:特殊行业所需资质材料 小程序内容小程序内容不得发布平台支持的服务类目以外的内容:如游戏、虚拟支付等; 不得发布非法博彩,违反相关法律法规的内容。基础信息logo不得侵犯其他品牌权利; 详细小程序简介避免政治敏感、色情、敏感词语的出现; 不得对知名品牌名称添加特殊符号,恶意引导用户。小程序上线后功能使用小程序所实际提供的服务和内容,必须是正式的,不能以Demo形式提交; 不得以使用其他应用程序为条件使用小程序。可用性和完整性ios和安卓系统环境下,小程序首页都无法加载或者一直处于加载状态中。
2017-12-21 - 卖家一直不发货,可以退钱吗?
卖家如果一直不发货,买家也没有发起退款,会自动退款吗?订单就一直停滞?
2020-09-24 - (17)分享功能调整背后的故事
有时候我们使用一个小程序会遇到以下情形: 我们打开一个小程序,就看见提示“分享到5个群,可以获得一张20元的优惠券”,吸引我们去无脑分享到不同的群里; 打开某个小游戏,提示我“一定要分享到xx个群,才能继续玩游戏”; …… 而我们在群里打开这类小程序,仍然是提示我分享的信息,这类功能无疑打断了我们对小程序/小游戏正常的功能使用。 我们收到了很多用户对这类小程序/小游戏的抱怨。这类分享并非是用户主动自发的,而是受到了某类利益的诱惑,或是被迫分享。这样的内容充斥在群里、小程序里,对用户造成了骚扰,是对分享功能的滥用。 在原来的分享接口中,用户发起分享动作之后,可以通过 success 、fail、complete等回调来判断用户是否完成了最后的分享动作。通过这个能力,开发者是可以将产品交互在分享这个能力上做得比较自然和顺畅。但却被上述情形的小程序滥用。在我们权衡了分享功能带来的利弊后,我们打算回收这个能力。调整为:我们将不再支持分享回调参数 success 、fail 、complete 。即开发者无法判断用户最终是否完成了分享动作,也无法获取到分享成功后的回调参数shareTicket 。 接下来将与大家介绍此次分享功能调整后,小程序的调整建议。 对应小程序调整建议 此次调整可能影响到两种分享功能的用法。 第一种:通过判断用户最终是否有分享来做分支逻辑的小程序。 例如,通过判断 success 回调触发,来判断用户是否分享出去了,进而给奖励,如果用户没有分享出去则不给奖励。这类功能是我们平台不倡导的,后续将没有办法实现。 如果是需要在分享完成后变更当前页面的状态,可以适当调整交互方案。例如过去赠送代金券后显示“等待领取”等应用场景,可以改成在分享后继续保留“赠送”按钮,但提示用户一个代金券只能被一人领取,重复赠送无效。 第二种:获取用户分享之后的 shareTicket ,换取群唯一标识 openGId ,进而显示对应群的相关信息的小程序。 例如,部分小程序实现了群内的排行信息,通过分享小程序到某个群里,可以查看该群内成员的排行榜。 此次调整后,用户分享完成后无法立刻显示该群的排行榜信息,但仍可在用户从群消息点击进入小程序时显示该群的排行榜信息。 因此建议适当修改产品流程,在用户分享小程序之时,提示用户可进入群内查看群排行等信息。避免调整策略生效之后带来的交互不完整影响。 调整覆盖范围提示 近期新提交的版本中将会受到此策略的影响。 除此之外,调整策略在即将发布的基础库版本 2.3.0 生效,该基础库版本对应本月即将发布的微信客户端版本(暂定版本号 6.7.2)。即:近期提交审核的小程序版本,在基础库版本 2.3.0 以下的环境中仍不受此策略影响,仅在基础库版本 2.3.0 以上的环境受影响。 开发者需要注意,近期提交审核的版本都需要考虑兼容上述调整带来的影响,请各位开发者及时调整分享能力。
2018-08-17 - 小程序云开发挑战赛大众投票,你最想点赞哪个作品?
[图片] 小程序云开发挑战赛作品创作环节于9月20日正式落下帷幕。 自8月6日起至9月20日,在为期45天的小程序云开发的创作环节中,参赛者们通过线上线下寻找志同道合的好友组成参赛队伍或以自己为中坚力量独挑大梁成立一人队伍,组织各种头脑风暴并发挥自己的聪明才智,将一个个灵感迸发的瞬间无限延展,经过多方位思考确定方案,最终在短时间内通过云开发平台实现成触手可及的优秀小程序作品。 本次挑战赛共有近1700支队伍踊跃报名参赛,大家都基于现实场景打造出一个个极有现实使用价值的激情之作,经过大赛组委会评委评审,有以下作品进入到初赛阶段。点击下面作品链接一起来了解并体验,pick出你最喜欢的作品,快来给你喜欢的作品点赞投票吧! 你的投票将影响参赛队伍的复赛晋级,每个赛道我们将根据公投结果+评委评分,分别筛选10支队伍进参与10月19日线上复赛路演。 【由于作品较多,建议通过浏览器的查找功能搜索作品编号进行快速定位】 [图片] 如在了解体验环节中,发现有抄袭或直接挪用的作品,可点击下方投诉按钮进行作品文章投诉并写明投诉理由及细节信息,大赛组委会收到后会及时核实并进行作品违规处理。 [图片] 以下作品根据提交时间顺序排序 1 号作品 《大学生记账本》 队伍:阳光队 成员:常延威 作品简介:系统提供支出、收入、转账、余额、借贷五大记账模块,内含多种情景账本,以满足不同时期的记账需要。 2 号作品 《爱心收发室》 队伍:爱心收发室 成员:毕远萌、张宝政 作品简介:爱心收发室是一款与校自管会爱心收发室联名推出的信息查询类小程序。旨在为科大师生提供更好的校园服务。 3 号作品 《宝贝积分管理》 队伍:微喵网络 成员:董小白、周政 作品简介:“宝贝积分管理”是为了方便家长记录孩子平时行为,帮助孩子养成奖惩机制的工具型小程序。 4 号作品 《健身助手力量日记》 队伍:陆地能量队 成员:陆俊龙 作品简介: 为喜欢健身的人服务。无论是新手还是高手,每次健身之前都该有一个训练计划,督促自己去完成计划,也能节约时间。 5 号作品 《咸鱼记账》 队伍:咸鱼有梦 成员:薛国鹏 作品简介:记录用户的消费行踪,让用户在消费时能够对今天、本月和本年的消费有个直观的感受,并能够时时知道自己的消费。 6 号作品 《云享Music》 队伍:创新突击队 成员:卿大山、谢晨晨 作品简介:一款能快速加载歌单和歌曲,并且还可以通过小程序内部帖子,对爱好相同相互留言评论的音乐小程序。 7 号作品 《鹦鹉AI端侧识别》 队伍:仗剑把酒行且歌 成员:夏凡 作品简介:虽然法律严令禁止,但是仍然有人不惜铤而走险狩猎珍惜濒危野生动物,小程序可以查询野生动物信息,避免误伤。 8 号作品 《人体生理指标》 队伍:辰宝宝 成员:董湘宁、杨柳 作品简介:人体生理指标这个小程序主要是记录自己的血压脉搏数据,方便自己查看了解自己的血压数值数据。 9 号作品 《阮薇薇点名啦》 队伍:电子科技大学微软学生俱乐部 成员:刘俨晖 作品简介:阮薇薇点名啦小程序为学校社团活动发布、查看、签到、管理提供平台。 10 号作品 《错题小本本》 队伍:Meteor 成员:康广慧 作品简介:错题小本本是一款用于记录错题的微信小程序,适合具有良好自律性和学习习惯的初、高中学生。 11 号作品 《西瓜清单》 队伍:小白学编程 成员:舒健 作品简介:西瓜清单时间管理,有 每日清单、月历、月目标、随笔 等功能,帮助您更好地管理时间。 12 号作品 《阿里嘻嘻》 队伍:碰一碰运气的队 成员:张川 作品简介:校园导航类小程序 13 号作品 《为高考加分》 队伍:美的人生 成员:黄超辉 作品简介:为高考加分是一款用于高中生学习英语和检测生物学习情况的微信小程序。 14 号作品 《趣婚礼》 队伍:趣婚礼 成员:魏国 作品简介:基于Taro2 + 云开发 打造婚礼邀请函小程序,云开发CMS维护数据,使用方便快捷部署。 15 号作品 《分录英雄》 队伍:test 成员:张琦、段文慧 作品简介:为参加初级会计考试考试的考生提供了实时的答题和错题备忘平台。 16 号作品 《KrisQin记账本》 队伍:KrisQin 成员:吕正钦 作品简介:简易实现一个记账功能 还有一个对于语言备注的处理 17 号作品 《微信云商城》 队伍:风车 成员:闫雅帅 作品简介:当剁手党购物瘾又犯了的时候,可以打开这个小程序尽情购物(不用花钱事后不会产生罪恶感) 18 号作品 《科普小程序》 队伍:铁憨憨 成员:蔡金伟、李文贵 作品简介:用户想入手文玩但又不知道如何选购,或者遇到不确定情况不知道是不是商家的骗局的时候可以打开本程序查看,避免受骗。 19 号作品 《sentry 小程序客户端》 队伍:我做的都 成员:贺乐 作品简介:闲着没事看一下线上的 bug 情况如何,需不需要处理。适合在带薪拉屎或者给小孩换尿布的时候使用 20 号作品 《百词百科》 队伍:百词解百科 成员:季恩会 作品简介:用于展示具备内容短、量多、公认、中立、非商业、稳定、独立、有意义的单词内容 21 号作品 《莉龙美颜工具》 队伍:莉龙 成员:羊莉、周李龙 作品简介:莉龙美颜工具是一款好用的图像处理工具! 22 号作品 《吃否CHIFOU》 队伍:HUIBUR科技 成员:张睿 、温志杰 作品简介:吃否是一款集分享与购买为一体的社交电商型小程序。欢迎大家扫描文章中的小程序二维码。即刻加入我们。 23 号作品 《班级价值分》 队伍:价值分 成员:于殿文 作品简介:校园管理小程序,企业管理小程序,班级管理小程序,团队管理小程序。 24 号作品 《CEnews》 队伍:关于我啥也不懂来比赛这档事 成员:李昆鸿、谭浩源 作品简介:CE双语新闻,中英无门槛快速阅读,文章点击自动翻译,最新资讯随时看,陌生单词一点明。 25 号作品 《MY备忘》 队伍:码友 成员:薄纯三 作品简介:MY备忘,备忘至简,记录习惯!简洁易用的备忘录工具! 26 号作品 《社区速修》 队伍:爱咋咋地 成员:季运康 作品简介:小程序功能主要为社区居户简易故障维修排查、复杂故障申报,维修人员查看信息并服务等。 27 号作品 《海豚时光瓶》 队伍:时光瓶 成员:范文敬 作品简介:定时留言:发送一条信息,在设置时间后方可显示 。保证安全:使用密码才能提取到信息。 28 号作品 《虚拟社区》 队伍:逍遥派 成员:孙潇然 作品简介:虚拟社区是一款以地理位置为核心的社交小程序,包含了社交、群组、活动、比赛等功能,主要面向中老年用户。 29 号作品 《个人简历Plus》 队伍:Kindred 成员:贺鑫、张晟睿 作品简介:个人简历将电子的简历用小程序进行展示,决定任用后直接拨打电话或者添加微信直接联系对方。 30 号作品 《吃药小助》 队伍:大瘤子战队 成员:冯倩楠、刘紫旌 作品简介:吃药小助-小程序,提醒大家按时吃药,保护好自己和家人的身体健康。 31 号作品 《己目》 队伍:己目 成员:刘新 作品简介:己目,一款帮助长期在电脑前办公、手机控、学生党预防近视的小工具。 32 号作品 《Killkinfe》 队伍:桂航理学院 成员:韦明忠 作品简介:这是一款英语阅读小程序,定位为打发零散时间,满足用户了解国内外突发资讯需求。 33 号作品 《GitPark》 队伍:AtomLab 成员:陈晓平、周爱林 作品简介:GitPark是一款专门为编程爱好者随时随地浏览、交流、分享github仓库的GitHub小程序。 34 号作品 《体重MM》 队伍:小朋友与小三哥 成员:肖鹏、于海彬 作品简介:体重MM小程序是一款体重管理小程序,它会已折线图的方式对你的体重进行展示,并对变化趋势做简单的分析。 35 号作品 《口算助手》 队伍:薛定喵君 成员:薛刚 作品简介:口算助手是一款辅助家长给小孩练习口算的轻量级工具型小程序 36 号作品 《软著助手》 队伍:全村希望 成员:黄鹏、王亚明 作品简介:软著助手,帮助中小企业快速申请软著,一简化操作 37 号作品 《语音倒计时器》 队伍:跑得脱马脑壳 成员:赖德忠 作品简介:码如其名,一个有语音功能的倒计时器。 38 号作品 《活力健身房》 队伍:GuStudio 成员:黄子权 作品简介:一款基于手机加速度传感器的跑步记录小程序。 39 号作品 《云端商城小程序》 队伍:云端特产 成员:杨明 作品简介:线上特色百货销售小程序,支持会员等级、积分、卖手分享、微信支付、快递查询、独立后台管理等功能。 40 号作品 《家庭多用记事本》 队伍:逍遥 成员:周亮 作品简介:一款简单便捷的多功能记事本,可以邀请家人一同记事,共同查看,也可以私人记事,快速轻便~ 41 号作品 《king电影》 队伍:KingJ 成员:王佳、伟峰 作品简介:主要是一个简单的电影查询,因为豆瓣那边的接口问题,所以有些东西就有点问题,作为一个新人路过,我尽力了 42 号作品 《答案sou》 队伍:芝麻西瓜 成员:苏严 作品简介:答案sou小程序为大学生提供大学教材课后答案查询、考研真题及解析、英语四六级真题 43 号作品 《高级打卡鸡》 队伍:高级打卡鸡 成员:徐林 作品简介:随时随地打卡,记录足迹,看看世界地图上你遍布的足迹 44 号作品 《一眼天气》 队伍:心悦 成员:王辉 作品简介:这可能是最简单的天气预报,也是用户看天气所要获得的核心信息 45 号作品 《趣味游乐城》 队伍:superQ 成员:周龙江 作品简介:通过游乐放松心情,感悟人生、扩展社交、增进友谊。本应用最大的特色是处处充满随机。 46 号作品 《ygjtools》 队伍:跌打的小脆骨 成员:杨国杰 作品简介:一个记录消费的并附带数据分析统计的功能完整的小程序 47 号作品 《来这儿学》 队伍:来这儿学 成员:刘海、丘金龙 作品简介:一款为解决学生等需求人群寻找线下机构与线下机构寻找渠道宣传服务之间的现实问题的微信小程序 48 号作品 《北院守夜人》 队伍:Simple 成员:刘国坤、张满培 作品简介:这个小程序类似于小论坛,专为北院(河北北方学院)同学设计,为的是让更多的同学能够融入校园 49 号作品 《小酒馆》 队伍:小酒馆 成员:陈洪宇 作品简介:上传云函数运行后无需用户自己建立数据库后台会自动生成,邀请亲朋参加婚礼的云开发小程序,基本功能已实现 50 号作品 《西红柿时间管理》 队伍:非龙在天 成员:韩宇非、张龙 作品简介:本小程序旨在应用于关于学生,工作者,健身者等需要专注进行某事者小程序提供一个计时功能。 51 号作品 《高校联盟-快递代取》 队伍:云小白 成员:史连强、张广凌风 作品简介:高校联盟 快递代取,一款为在校大学生提供服务代取快递,接收快递来做兼职的小程序 52 号作品 《乐考吧》 队伍:鸡蛋汤不加糖 成员:茹东廉、王艳辉 作品简介:你是不是已经记不起来你家孩子一年前、一个月前、甚至一周前的考试成绩了?来乐考吧,还你一个有历史的成绩 53 号作品 《码农SHOW营》 队伍:码农SHOW营 成员:陈德达 作品简介:该项目主要服务的人群是喜欢进行文章创作的朋友和做微商的朋友。主要分类:首页和我的两大模块 54 号作品 《易约行》 队伍:pepsi 成员:李懿霏、张钱钱 作品简介:用于快速预约校园内的公共设施 55 号作品 《开心小杜》 队伍:duing 成员:杜俊 作品简介:基于云函数和云数据库开发的生活娱乐类小程序——开心小杜 56 号作品 《菲特日记》 队伍:冲天敖广 成员:郭函、王建行 作品简介:可以随时查看各种数据变化,帮助用户进行 身材管理,引导用户合理饮食和科学锻炼,适应现代健康生活的需要 57 号作品 《山大clubs》 队伍:sxu1902 成员:刘子龙、赵亮 作品简介:对学校社团进行分类,便于新生选择自己喜欢的社团,小程序分为社团负责人和小程序管理员,便于人员管理 58 号作品 《省计数字监理》 队伍:东莞队 成员:万霞光 作品简介:企业内部应用系统,围绕信息系统监理工作而开发的一款内部应用系统,目前已经完成了部分功能并上线使用。 59 号作品 《BOSS百科》 队伍:乐多多BOSS百科 成员:付小琴、朱忠进 作品简介:BOSS百科----一个提升BOSS逼格的学习交流平台 61 号作品 《校园墙》 队伍:代码能跑就行了 成员:黄俊涛、许粤军 作品简介:校园里面的信息发布平台,给所有的在校生提供一个交流平台,可以发布表白,失物招领,二手买卖等信息 62 号作品 《图像复原微信小程序》 队伍:咸鱼翻身 成员:朱晋 作品简介:对曝光欠佳图像进行一定程度图像复原 63 号作品 《WiFi生成码》 队伍:决明子 成员:李浩凡 作品简介:生成WiFi二维码快速连接WiFi,展示小程序和云开发能力 64 号作品 《摄影地图游客版》 队伍:垫底 成员:林伟佳、杨灿 作品简介:摄影地图游客版是为了广大摄影爱好者提供机位信息的而设计的工具类小程序。 65 号作品 《医医查》 队伍:一叶峰 成员:王朋飞、张海峰 作品简介:通过每个人生日,解读性格分析 66 号作品 《树洞》 队伍:G 成员:高瑞光 作品简介:介于现在很多人会有方方面面的压力,却又不能很好的释放,借此成为这个小程序的设计思路 67 号作品 《全国核酸检测资质医院查询》 队伍:酷亿队 成员:姚颖、张文正 作品简介:为需要出具核酸检测的人群制作,快速获取医院位置信息以及电话进行咨询。便民工具 68 号作品 《Do More打卡小程序》 队伍:寂寞君的微信小程序学习 成员:王雨宸 作品简介:个人微信小程序练手,腾讯视频无法审核通过,备用视频地址在github中 69 号作品 《ai视觉测试》 队伍:为了梦 成员:钟梓俊 作品简介:日常生活和学习用到的辅助工具,主要应用于办公和文本编辑。 70 号作品 《倒计时》 队伍:奔跑队 成员:金程 作品简介:我的小程序名称是倒计时,一个拥有倒计时功能的计时器,主要功能让你无法自律的身体,得到行动。 71 号作品 《tomato clock》 队伍:JLS 成员:陈俊良、闫硕 作品简介:番茄钟,助你专心工作学习。 72 号作品 《古老的API小工具》 队伍:归藏易文化 成员:方大伟 作品简介:整合常见的api组合的小工具库,表现形式为刷新,问答,搜索。云数据库交互为收藏和底部推广差异化。 73 号作品 《大学校园闲置物品交易平台》 队伍:HANG_IN_THERE 成员:冯旭、李家正 作品简介:大学校园闲置物品交易平台,大学生能够在不涉及线上支付的情况下安全快捷地出售与购买二手物品。 74 号作品 《OA外勤管家》 队伍:大叔战队 成员:彭刚、谭广健 作品简介:谭广健---草根开发者,一直关注微信生态圈的发展。也是第一批参与小程序、微信小游戏及云开发的体验者。 75 号作品 《雨中送伞》 队伍:键盘起火 成员:郑文鸿 作品简介:下雨天时,可为无伞的人提供求助服务,有伞的人可以看到求助标注并提供帮助。 76 号作品 《实验室设备预约助手》 队伍:hello522 成员:郑启文 作品简介:实验室预约助手,用低成本的云开发实现对实验室设备的预约使用管理。 77 号作品 《日程管家》 队伍:洛 成员:骆永生 作品简介:日程管家小程序就是为了帮助用户管理日程生活,提高工作效率,养成良好习惯 78 号作品 《素拓百分百》 队伍:许一世不嵩手 成员:张宏伟 作品简介:该小程序用作于浙水院发布活动,自动统计学生素拓分。 79 号作品 《小小微距》 队伍:汇溪和他们的小伙伴们 成员:李辉、张乐平 作品简介:一款 UGC 软件,想法是我躺床上想到的。独在异乡,如果生病了,去医院都没人陪一陪,该多难受呀。 80 号作品 《来一杯a》 队伍:Ysgming 成员:杨开澳、詹阳天 作品简介:针对店铺的一个点单系统,主要包括下单、取餐、外卖三个功能模块,方便顾客的购买体验,减少商家的工作量 81 号作品 《微学堂(在线学习平台)》 队伍:若有光 成员:肖航 作品简介:#小程序云开发挑战赛#-微学堂(在线学习平台) 82 号作品 《购物》 队伍:MB 成员:徐沛东 作品简介:学习 83 号作品 《日常工具box》 队伍:七西队 成员:王家慧、吴鸿萱 作品简介:一个较为实用的日常小工具,分为五大功能:手持弹幕、九宫切图、任务清单、写字板、指南针 84 号作品 《简物业》 队伍:DIB 成员:仝乐 作品简介:该小程序致力于将现代化管理手段有机融入物业行业。节约物业管理投入的同时,方便用户居住生活。 85 号作品 《恋人小清单》 队伍:404 成员:魏云飞 作品简介:恋人小设计主旨是用照片和文字来记录美好瞬间,记录那些在多年以后再看到时,内心还会为之感动的点点滴滴 86 号作品 《校园缺勤录》 队伍:这未免有点 成员:芦星宇 作品简介:人工智能先进技术引入课堂,实现轻松课堂签到。 87 号作品 《帮寻小站》 队伍:炸锅蚂蚁 成员:姚史展 作品简介:帮寻小站小程序旨在方便用户发布公告,让失主和好心人之间的沟通更加安全和高效。 88 号作品 《美食屋》 队伍:焱魂 成员:贺帅 作品简介:作品是一个点餐小程序,类似于现在很普遍的外卖程序,主要是现场点餐,叫号取餐,没有线上支付。 89 号作品 《假如生命很短暂》 队伍:一切为了T恤 成员:苏南、房泽锐 作品简介:15分钟之中你可以在这个世界四处游荡,但是特定不可发言交流 ,除此之外可以互动交流 90 号作品 《快速找工作》 队伍:mrhuostudio 成员:霍小平、张善友 作品简介:在微信小程序、云函数开发中提供一套通用的C#解决方案,以小程序中快速找工作做应用场景验证技术方案 91 号作品 《酷传CoolTran》 队伍:上上下下左右左右BABA 成员:吉元昊 作品简介:凭借微信云开发提供的云端存储能力,使得"CoolTran"可以让人们可以随时随地分享文件! 92 号作品 《娱乐投票小程序》 队伍:艾黎 成员:黎艳红、王宋强 作品简介:一个小程序云开发的投票小程序,可以免登陆投票,并且能确保每一张票都是真实有效,能合理的追溯票源 93 号作品 《租户在线》 队伍:火柴小分队 成员:黄志健 作品简介:基于云开发的微信小程序,用于房客日常提交问题反馈信息给房东,并实时查看问题是否已被处理 94 号作品 《step by step》 队伍:tqszbd 成员:汤琪、唐文静 作品简介:step by step小程序,记录前进的每一步。大至一个目标,小至每日清单,全周期时间管理。 95 号作品 《同学在哪儿》 队伍:你说的都队 成员:邹明远 作品简介:「同学在哪儿」是一个地图小程序,可以在地图上查看班级同学的毕业去向以及地域分布,多联(蹭)系(饭) 96 号作品 《图文识别》 队伍:Minggo 成员:戴统民 作品简介:拍照识别文字、翻译、整理笔记便捷工具型小程序。 97 号作品 《报工小助手》 队伍:乘风破浪 成员:王霄鹏 作品简介:为了方便大家的及时填报项目工作量,基于网页版的研发管理系统报工模块,开发了报工小助手微信小程序。 98 号作品 《磁力积木3D预览》 队伍:超级像素 成员:雷攀 作品简介:3D软件制作成3D作品,导出后可以通过本小程序快捷方便分享及展示,极大增强用户体验 99 号作品 《苦海匿舟》 队伍:魔幻小程序 成员:张鹏广 作品简介:“苦海匿舟”是一个真正【完全匿名】发表心情的小程序。要你存在压力需要宣泄、倾诉,都可以来苦海匿舟。 100 号作品 《大学生资源共享平台》 队伍:加油队 成员:郭龙庭、王湘茹 作品简介:一个可以方便大学生进行学习资源共享的小程序 104 号作品 《球员搜搜》 队伍:不爱请别伤害 成员:黎泓希、钟智浩 作品简介:让用户在日常使用微信过程中可以通过此小程序,了解在美国打球的球员的详细信息。 105 号作品 《深大小树洞》 队伍:自由组 成员:范家宝 作品简介:深大小树洞目的在于给在校大学生一个匿名的社交平台。社交的形式分为树洞、在线聊天、评论回复、专业求助。 106 号作品 《Hi头像》 队伍:Hi头像 成员:盛瀚钦、夏雪 作品简介:Hi头像集人脸智能识别、节日主题切换、贴纸自由添加、照片一键美化等功能于一体,完美实现节日头像制作。 107 号作品 《QSCamera》 队伍:Incas 成员:沈吕可晟、寿佳涵 作品简介:小程序面向浙大求是潮摄影/视频两部门,用于部门内/跨部门的器材借还登记、借用记录及器材状态查询等场景 108 号作品 《MusicColorBlock-Detail》 队伍:A-star 成员:封磊、彭济东 作品简介:初音未来版本的通过点击/触摸播放声音并出现变化图案的互动内容 109 号作品 《旅小布短视频》 队伍:程序员方方 成员:何方、王霞 作品简介:旅小布是做短视频、直播、旅游攻略的平台,平台希望疫情宅家的人都能分享自己家乡的美景、美食、人文等。 110 号作品 《每日步数打卡》 队伍:鸡蛋汤 成员:戚建萍、谢浩 作品简介:基于小程序云开发的简单步数打卡 111 号作品 《月见》 队伍:月见 成员:陈金生、吴泽锋 作品简介:月见是通过展示走失人物信息的微信小程序,主要通过不同省份展示信息、姓名搜索查询的方式展示走失人物信息 112 号作品 《活动栏》 队伍:炫光 成员:陈旭炫、彭启瑤 作品简介:为了方便各位活动组织者进行消息的生成并对参加的人数进行统计,同时可能对参加者进行时间,地点的提醒功能 113 号作品 《民大新生助手》 队伍:梦的开始 成员:田保书 作品简介:对西北民族大学的每一届新生提供了解学校的平台。有宿舍、食堂、环境、校园视频、交友等服务。 114 号作品 《教资易取》 队伍:教资易取 成员:丁嘉欣、林远棋 作品简介:教资易取小程序,含有同步观看视频,记录笔记的功能。 115 号作品 《历史日历》 队伍:不服就干 成员:马英臣 作品简介:用3D翻页的形式展示历史上以及今天发生的大事,更好的体验,更丰富的内容; 116 号作品 《快刷题库answer question》 队伍:老师说啥就是啥 成员:杨增润 作品简介:#云开发挑战赛#-快刷题库answer question-老师说啥就是啥 117 号作品 《猿宝典》 队伍:五里墩 成员:李洋 作品简介:为了方便各位猿同胞在求职中获取面试信息 118 号作品 《我是主角》 队伍:乐呵 成员:孙凤齐、杨良文 作品简介:选择小程序里的自己喜欢的动漫人物模板,然后上传自己的正脸头像,得到融合后的头像。 119 号作品 《博客系统》 队伍:轻吻也飘然 成员:张建宏 作品简介:就是简单的一个博客系统 120 号作品 《预约班车》 队伍:来拿T恤 成员:陈俊涛 作品简介:预约班车小程序是个人开发的云开发小程序。专门为有班车业务的公司,使用的班车预约小程序。 121 号作品 《天翊图书馆预约》 队伍:天翊 成员:赵逸飞、周卓雅 作品简介:“天翊图书馆预约”是为了解决图书馆占座问题的预约性工具型小程序。 122 号作品 《教务小助手》 队伍:我是来拿衣服的 成员:岑毅鹏、曹彦博 作品简介:由于部分高校的教务系统不兼容移动端,为了方便同学们使用,故开发教务小程序 123 号作品 《外卖系统》 队伍:自由人 成员:桑祺玥、苏娜 作品简介:该作品是外卖系统,主要服务于高校学生点餐及外送等工作,后续部分功能还会持续开发。 124 号作品 《生活智打卡》 队伍:菜鸟玩家 成员:冯天华、韦永恒 作品简介:可自定义每个时间段的打卡任务,记录打卡定位,为个人量身定制的一款计划打卡小程序。 125 号作品 《宝宝约玩》 队伍:Allen 成员:杨健 作品简介:实现绘本馆的线上线下一体化服务,为绘本馆打造借阅一站式服务解决方案 126 号作品 《心灵鸡汤大全》 队伍:小斌 成员:吴学斌 作品简介:在这个压力巨大的社会,每个人都有自己的负面情绪、迷茫、不知所措,心灵鸡汤小程序运用而生 127 号作品 《垃圾问问》 队伍:微旺网络 成员:林涵、杨泉 作品简介:“垃圾问问”是为了方便居民日差查询垃圾分类、了解垃圾分类政策和知识的小程序。 128 号作品 《萌宠创造营》 队伍:我是咸鱼 成员:田煜、王雨晨 作品简介:萌宠创造营是专为爱宠人士中因无法饲养真实宠物或养宠前希望做足准备的铲屎官开发的一款趣味小程序。 129 号作品 《北邮宣讲通》 队伍:TrWyFowrd 成员:付东源 作品简介:基于云开发,为北邮吉林宣讲团开发的内容型小程序。具有文章资讯、评论、聊天室、相册、反馈等板块。 130 号作品 《联系群众客户端》 队伍:独狼 成员:张明东 作品简介:“联系群众客户端”方便群众和联系干部及职能部门的沟通,及时解决及反馈群众提出的诉求需求。 131 号作品 《垃圾分类小程序》 队伍:初生牛犊 成员:韩瑞祺、谢俊强 作品简介:现在的垃圾满天飞,已经造成了比较严重的污染事件,所以垃圾分类很重要! 133 号作品 《轨道nighty night》 队伍:风陵夜话 成员:陈创智、邱彬泳、张楚涛 作品简介:与喜欢的句子、音乐不期而遇。安静,优雅,文艺,走心,随机听一首歌,读一句话,放空自己。 134 号作品 《打卡日历》 队伍:电光闪烁 成员:刘晓阳 作品简介:每日打卡,每天可以对自己需要做的事做一个简单的记录 135 号作品 《便利下单助手》 队伍:天天开心 成员:高全华、赵志超 作品简介:小区-学校熟客下单助手,帮助菜店、便利店、小饭店、水果店等店主打造线上店铺平台以及管理订单 136 号作品 《天天读书》 队伍:爱抓水母的派大星 成员:张渝菱、朱廷果 作品简介:给喜欢读书的用户提供一个记录自己成长的空间,提醒自己不忘记读书 137 号作品 《make的测评程序》 队伍:KEKE 成员:贾为征、马柯 作品简介:make的测评程序是用于对于考核人员进行打分测评,并且记录到数据库中,方便进行测评管理。 138 号作品 《拾一英语》 队伍:云锦 成员:代云皓 作品简介:拾一英语 - 年轻人学习成长的平台,主要针对 二本,三本以及英语不好的人群········ 139 号作品 《云航助手》 队伍:CAUC-GT 成员:郭学宇、陶英杰 作品简介:一个可以为旅客日常和出行提供便利的微信小程序“云航助手”,可添加普通和航班代办,航班和行李查询。 140 号作品 《lononiot》 队伍:软硬天师 成员:陈沛林、陈庆朗 作品简介:用户可以通过小程序云开发对接到腾讯云物联网平台实现控制智能设备。 141 号作品 《消灭癌细胞》 队伍:休闲玩家 成员:江贤河 作品简介:人体中可能有很多癌前细胞随时会变异。作为健康卫士,携带免疫T细胞去消灭他们。为了健康战斗吧! 142 号作品 《柠檬商城》 队伍:过于执 成员:畅羡斌、阴元元 作品简介:该项目用于实现商城的功能,适用于各个年龄段的人来使用,可在娱乐时间放松,轻便快捷。 143 号作品 《myVlog》 队伍:划水水水水 成员:王松 作品简介:模拟实现Instagram的第二页的功能。 145 号作品 《自闭间预定》 队伍:这时代 成员:孙悦 作品简介:这是一款预约自闭间的简单小程序,具有较大的发展和提升空间 146 号作品 《我存》 队伍:好奇工作室 成员:宋洋 作品简介:我存小程序,留住世间一切美好 147 号作品 《心暖农侬》 队伍:智联组合 成员:李宏林、秦宇泽 作品简介:“心暖农浓”是用于心理咨询预约的一款小程序,用于学生心理咨询时与老师进行预约,为有需要的同学提供便利 148 号作品 《行程助手Plus》 队伍:1+1 成员:满萍、石孝辉 作品简介:行程助手Plus 是一款针对当前疫情的综合类小程序,助力于疫情防控的第一线! 149 号作品 《云智慧收银》 队伍:橙光突击队 成员:宋福勇、周俊伟 作品简介:云智慧收银"小程序致力打造一款掌上就能完成收银的小程序,实现一个人,一台手机,即可管理整个商铺。 150 号作品 《红小包抽奖》 队伍:赞过 成员:卢泰城 作品简介:一款模拟微信红包的抽奖小程序,可绑定多个微信群,可切换排序:手气最佳、手气最差、手速最快。 151 号作品 《美今管家》 队伍:美今管家 成员:来成 作品简介:将现有线上成熟项目,使用云开发来实现部分功能 152 号作品 《书香长大》 队伍:Ftime 成员:胡基雄 作品简介:为了解决查阅图书馆书籍在馆信息和个人借阅信息不方便,催还书信息入口深的痛点,而开发此小程序 153 号作品 《红推》 队伍:三十出头 成员:梁少峰、乔育森 作品简介:撮合网红和商家达成合作 154 号作品 《我的旅行箱》 队伍:地表最强 成员:王耀 作品简介:<我的旅行箱>服务于热爱旅游的年轻人,希望能够让你们的旅行变得更加轻松,更加有意义。 155 号作品 《精简之校园二手交易平台》 队伍:红黑 成员:李旺、田璞尧 作品简介:提供给当代大学生的一个方便快速进行二手交易的平台 156 号作品 《AIB校友会》 队伍:miniFlash 成员:刘东盛、张新健 作品简介:主要针对某校学生用户群体,主要功能为团队招募,心里话,网管通道等为学生群体提供便利的功能。 157 号作品 《武冈微商城》 队伍:努力吧 成员:孙婷婷、谢烨烽 作品简介:参赛作品是基于微信小程序云开发,使用云数据库+云函数+云存储完成项目; 158 号作品 《薇科技弹幕墙》 队伍:单身狗 成员:王钊、周笛 作品简介:实时弹幕功能用于晚会等活动现场,扫码即可发弹幕实现显示在墙上; 159 号作品 《RedPoint红点》 队伍:WeClimb 成员:任蓓瑛 作品简介:RedPoint红点是一款面向攀岩爱好者的小程序,提供了攀岩相关信息的交流平台。 160 号作品 《悦分享》 队伍:好想ak 成员:苏明炯 作品简介:这是一款为在校大学生服务的博客分享小程序,通过它,你可以分享各学科知识,收藏他人博文,关注博主。 161 号作品 《实验室管理小程序》 队伍:Rick&Morty 成员:蔡棠汉、陈龙 作品简介:"实验室管理小程序”是一款结合管理实验室出入,记录出入日志,活跃度查看的小程序。 162 号作品 《铁路生涯》 队伍:铁路生涯 成员:徐大治 作品简介:待就业的铁道学院学生可以通过本程序向在职学长进行提问,全面了解各个铁路公司工作和生活信息。 163 号作品 《工程课表》 队伍:张张 成员:张成、张小龙 作品简介:依托微信#云开发#,校园助手类小程序。为用户提供 校园地图、校园Tips、校历查询、上课提醒等 164 号作品 《普罗名特》 队伍:大连队 成员:刘晓龙 作品简介:用于公司产品介绍,有主页,公司详情,产品列表,资料库及常用术语 165 号作品 《趣酿》 队伍:Jump 成员:金伟强、刘茜 作品简介:简单有趣的酿酒 app,用最简单的方式,带你领略啤酒酿造的过程。 166 号作品 《宠幸治疗》 队伍:still 成员:白书博、杨旭旺 作品简介:里面有针对宠物的护理活动,并且提供添加购物车、订单服务,以及展示了关于宠物的动态视频 167 号作品 《论坛小程序》 队伍:Two Pissed Men 成员:付阳烨、秦学聪 作品简介:论坛小程序致力于打造一款大家可以畅聊心得感受的发帖回帖、评论点赞,可在校园、职场等使用的社交平台。 169 号作品 《柠檬收纳》 队伍:蓝柠檬科技 成员:李文华、于杰 作品简介:柠檬收纳微信小程序,一款物品收纳、整理、记录、提醒的实用工具。 170 号作品 《糖友饮食助手》 队伍:A1 成员:田文生 作品简介:糖友饮食助手调用云函数实现对日常饮食中食物含糖量的查询,方便糖尿病患者日常饮食管理,控制血糖水平。 171 号作品 《魅力单词》 队伍:未央队 成员:曹禄丰 作品简介:魅力单词是一款面向学生的背单词小程序,提供了丰富的单词词库以及好玩的背单词模式。 172 号作品 《云迎新》 队伍:脱贫攻坚队 成员:柯华富、彭及钰 作品简介:“云迎新”是为了方便学校新学生及其家长前来报道时,快速了解校园环境的服务型小程序。 173 号作品 《电影周周荐》 队伍:同路人 成员:刘媛婷、尹佳怡 作品简介:本款小程序是专为年轻人开发的,设计的功能非常实用,有较高的利用价值。 174 号作品 《多源在线翻译》 队伍:qyy 成员:邱洋 作品简介:该小程序提供用户随时随地对疑难词汇进行查询的功能,并可进行收藏,帮助用户多次利用碎片化时间进行记忆。 175 号作品 《长大寻物》 队伍:明远 成员:靳明辉、徐源 作品简介:通过小程序良好特性的支撑,“长大寻物”运用信息技术解决人们寻物难,寻主难的问题,促进和谐校园生活。 176 号作品 《AI物以类聚》 队伍:云分类 成员:何鹏辉、李桢 作品简介:物以类聚小程序,依托国家标准,提供垃圾分类查询服务,文字搜索、拍照识图、AI智能机器人等功能便捷生活 177 号作品 《魔方训练计时器》 队伍:mainhanu 成员:马兴驰 作品简介:魔方训练计时器是专为魔方玩家打造的专业计时器,支持数十种打乱公式生成,支持数据记录。 178 号作品 《盲小鹿》 队伍:布丁与画家 成员:李冬冬 作品简介:帮助盲人用户在生活里,识别到取景器前方的道路是否存在盲道,为盲人发现盲道走上第一步 179 号作品 《星河意见箱》 队伍:金钥匙 成员:颜书豪、张辉 作品简介:星河意见箱小程序可以针对个人,集体或企业进行线上意见收集,同时可以对意见进行评论投票 180 号作品 《7日天气》 队伍:Meiōsei 成员:李展鹏 作品简介:7日天气天气预报平台 181 号作品 《每天都要上报体温》 队伍:一个人的队伍 成员:姜英豪、张连龙 作品简介:这是一款上报体温数据的小程序,可以应用在学校以及其他需要统计体温的群体组织。 182 号作品 《简约约拍》 队伍:自习社 成员:林志煌 作品简介:小程序为用户线上可随时随地约拍符合自己风格的摄影师、为消费者和热爱拍摄的摄影师构建一个联通的平台。 183 号作品 《历史上的今天TIH》 队伍:专业团队 成员:郑钰莹 作品简介:微信小程序“历史上的今天”主打历史阅读类,以日期分类历史事件方式,更直观展示人类千年变更进程。 184 号作品 《校园招聘》 队伍:一凡风顺 成员:杨伊凡 作品简介:本作品适用于定制企业的招聘项目,功能完全,页面简洁 185 号作品 《速派递》 队伍:泉知晓 成员:郑运杰 作品简介:速派递是一款校园智慧物流小程序,疫情期间起到了非常重要的作用,在大学校园内可以减少学生们的聚集程度。 186 号作品 《BT清单》 队伍:BT工作助手 成员:崔柏通 作品简介:BT清单是一个结合计时与清单功能的效率类小程序,给您的工作助一臂之力 187 号作品 《火查查》 队伍:火 成员:张洋、金立义 作品简介:消防检查工具,方便专业人员现场进行消防安全检查 188 号作品 《志愿校园》 队伍:菜鸟小程序 成员:孔明林、陆建丞 作品简介:对广西的几所大学进行简单展示,用户可以点赞表示他们的喜欢 189 号作品 《头马报名》 队伍:借书巴巴 成员:陈刚 作品简介:这是一个头马活动报名的小程序,用户可以发起报名活动,参加角色报名,投票和活动计时等功能. 190 号作品 《CAN课程表》 队伍:CTi 成员:王炜皓 作品简介:提醒学生上课的课程表。主要面向高校学生。定位是简洁高效,尽可能保证功能简单且实用。 191 号作品 《地摊生活》 队伍:itboy 成员:马浩阳、秦卫星 作品简介:地摊生活,助力城市夜经济,为周边群众提供多样化生活服务,让地摊生活成为城市的一道风景线。 192 号作品 《诗华社》 队伍:小小一秋 成员:陈小弟 作品简介:一个可以添加诗词阅读的小程序 193 号作品 《狗头的店,狗头管理》 队伍:GOUTOU_PLUS 成员:杨雪健 作品简介:动手打造属于自己的小商店。 194 号作品 《浙里淘志愿》 队伍:卡普中将 成员:孙昌谱、孙思思 作品简介:浙江高考淘志愿:解决考生如何填写志愿 195 号作品 《OTP动态验证码》 队伍:TORSER 成员:傅渭军、王晋鑫 作品简介:基于TOTP算法的动态验证码微信小程序,兼容Google Authenticator二步验证。 196 号作品 《一瞬相册》 队伍:就是随便起个名字 成员:刘钟钰、庞博 作品简介:一个上传自己照片的地方。 197 号作品 《急速查病》 队伍:YnnnP 成员:陈燕超、黄攀 作品简介:急速查病是一个以提供健康资讯、疾病预防、疾病数据查询、医患交流为主的健康小程序。 198 号作品 《蓝医先生》 队伍:蓝医先生 成员:时上、费吕宗 作品简介:本系统针对体检项目分离,采用线上预约的方式直接预约体检项目,为医患就诊关系提供了很大程度上的便捷。 199 号作品 《大师请提笔》 队伍:965 成员:苏鹏飞、朱令超 作品简介:生成你独特又搞笑的藏头诗,表爱,娱乐,吐槽,各种套路,尽由大师您来操刀 200 号作品 《tusake Today》 队伍:-404 成员:王耀、张煜 作品简介:本作品共三个模块为用户提供信息来准备一天的事项 201 号作品 《汉泰小词典》 队伍:掺点水分儿 成员:潘小龙、王子乾 作品简介:汉泰小词典是一款针对小语种开发的小程序 202 号作品 《次元乌托邦云网盘》 队伍:次元乌托邦 成员:康涛、王南恺 作品简介:次元乌托邦云网盘 203 号作品 《云线名片》 队伍:跨界王者 成员:曹文锋、卢聪 作品简介:一款简单的个人名片小程序。将云线名片分享给朋友,即使没有使用过这个产品也能快速完成名片交换。 204 号作品 《微源库》 队伍:微源 成员:黄涛、谢先锋 作品简介:微源库小程序就是微信资源库,为大家免费提供资源。 205 号作品 《focusair》 队伍:不知道对不队 成员:禤晓铖、姚森涛 作品简介:focusair一款为解决备考复习过程中低效率、无针对性的问题所搭建的复习资料与学习交流的共享平台。 206 号作品 《逛逛地摊》 队伍:特斯拉梦之队 成员:李子康、桑子灿 作品简介:本产品可显示周围的地摊,如果想自己摆摊,则可以注册摊主身份将自己的地摊显示给别人 207 号作品 《Y计算器》 队伍:去菲律宾冲浪 成员:刘昕怡、杨健聪 作品简介:「Y计算器」是一款旨在提高数学计算效率的工具型小程序。 208 号作品 《云表白》 队伍:姚一姚队 成员:姚泽盛 作品简介:小程序 云表白 打造大学生的表白平台 209 号作品 《林林的妙妙屋》 队伍:酸菜鱼 成员:刘柏成、刘振林 作品简介:林林的妙妙屋 210 号作品 《宝塔出行》 队伍:圣漫 成员:延绥强 作品简介:生活出行工具 211 号作品 《宠物营地》 队伍:巅峰战队 成员:邓旭晨、王辰然 作品简介:给现猫主人和未来得猫主人打开一条通道,更方便找到等待领取得猫猫狗狗,也可以发布自家得猫猫狗狗。 212 号作品 《YAccount记账助手》 队伍:红鲤鱼与绿鲤鱼与驴 成员:雷鸣宇、颜子清 作品简介:养成记账的好习惯,有助于您掌握个人或家庭收支情况,合理规划消费和投资。 213 号作品 《云校知》 队伍:天策阁 成员:李天赐 作品简介:校内里的百度,生活的助手,娱乐的指南一个能解决你在校园中的一半问题的小程序 214 号作品 《滑伴》 队伍:认真一伴 成员:张一男 作品简介:滑伴是一款面向滑雪用户的约滑平台、私教平台,用户可以在上面找到一起滑雪的同伴,进行技术交流。 216 号作品 《情侣券》 队伍:想做就做 成员:陈宇明、王丝雨 作品简介:恋爱必备,和好神器,大大增加情侣之间的感情。 217 号作品 《简单的课表小程序》 队伍:我是橙小白 成员:陈晓培 作品简介:简单的课表、校内通知小程序 218 号作品 《LE编程》 队伍:做梦都在敲代码 成员:赵敬轩、李家辉 作品简介:该小程序内置有行业动态,竞赛通告和算法知识,旨在为广大计算机爱好者提供便利。 219 号作品 《超市Boss助手(零售助手)》 队伍:焕然天成 成员:徐恒 作品简介:零售管理助手,用于货物管理、单据打印、数据监控分析、扫码查询等,让客户更加“便捷”、“高效”进行管理 220 号作品 《InterviewHub》 队伍:我一般一个人上单 成员:谢广平、尹可汗 作品简介:该项目是一个收录互联网行业开发岗方向常见面试题目的工具类小程序,希望能帮助开发者寻找到心仪的工作。 221 号作品 《私约团课》 队伍:莹仔 成员:王莹 作品简介:展示课程,可以看到课表的一个小程序 222 号作品 《顾家》 队伍:秋城与星辰大海 成员:林景恒 作品简介:家是一个实实在在,是父母为我们提供的温馨港湾,这里有亲情,有对我们生活的牵肠挂肚的人。 223 号作品 《买它or not》 队伍:KX 成员:谢彦恺 作品简介:想要做一些大额开销之前,先问问自己的钱包有没有准备好。良心劝退冲动消费小程序。 224 号作品 《Mayday Online》 队伍:Mayday Online 成员:朱顺意、朱照擎 作品简介:涉及技术为常用组件、API、订阅消息、数据库操作、定时触发器、云开发 225 号作品 《修补匠》 队伍:为梦而战 成员:欧阳艺铭、赵亚肖 作品简介:运用云函数、云存储、数据库 开发一款简洁的信息发布平台 商品修复展示 226 号作品 《趣答星球》 队伍:叶老板请吃饭 成员:邓裕发、王天池 作品简介:趣答星球是一款趣味答题小程序,让大家能够更好地了解到生活中一些小常识和有趣的事情 227 号作品 《流浪猫速查手册》 队伍:猫 成员:杨先锋 作品简介:快速查询附近的流浪猫 帮你找到"梦中情猫" 228 号作品 《运动会管理系统》 队伍:业余爱好队 成员:张建明 作品简介:运动会管理系统适用于各级各类学校(单位)召开运动会进行在线报名管理查询,可以同时有多个单位使用。 229 号作品 《为特餐饮助手》 队伍:白马为科技 成员:黄日强 作品简介:基于微信小程序.云开发技术 结合物联网云打印服务,实现低成本,高效能的互联网+餐饮解决方案 230 号作品 《我车呢》 队伍:try 成员:刘畅 作品简介:本项目为解决经常忘记自己车辆所放位置而设计,提高人们的工作与生活效率。 231 号作品 《校园疫情管理小程序》 队伍:放我出去 成员:段奔飞、徐胜 作品简介:为方便被封校管理的大学生以及配合校园疫情管理,设计了一款包含请假,体温上报,出行记录等功能的小程序。 232 号作品 《AI写诗》 队伍:Citizen Four 成员:姜波、王世龙 作品简介:人工智能帮你写诗,人人都是徐志摩 233 号作品 《芳甸鲜花商城》 队伍:小哥别哭 成员:黄娟、孙乐进 作品简介:乐闻商城是一个服务独立商户的内容完全可配置的商城微信小程序。 234 号作品 《席博》 队伍: 王泽中 成员:王泽中 作品简介:这个作品是一个博客平台。 235 号作品 《垃圾分类赢好礼》 队伍:我爱吃雪糕 成员:李旭杰 作品简介:在日常生活中帮助用户垃圾分类,并通过动态发表的形式积累环保积分兑换奖品,鼓励人们垃圾分类! 236 号作品 《企业招聘》 队伍:云中君 成员:黄文宝、谢建辉 作品简介:企业招聘小程序是基于纯云开发进行开发的,企业进行注册和发布岗位等,为毕业生提供更方便的就业渠道和方向 237 号作品 《LoRa智能家居管理》 队伍:智能家居冲冲冲 成员:蔡伟钧、吴浩明 作品简介:LoRa智能家居云开发小程序能实现获取web端通过mqtt协议收集的智能终端数据并显示,以及远程控制 238 号作品 《悦寻失物招领》 队伍:百分之五 成员:王浩、卓圣洁 作品简介:悦寻失物招领设计了一个无需工作人员管理、无需建立失主与拾物者联系的自助失物招领中心 239 号作品 《嘿!我在这儿!》 队伍:星辰大海 成员:姚海 作品简介:朋友圈不一样的地方,在空间和时间上去发现陌生人吧 240 号作品 《实用小工具》 队伍:我来打酱油 成员:林再飞、刘桥敏 作品简介:可订阅天气小程序 241 号作品 《梦凡云OA》 队伍:梦凡 成员:孟雪、赵晨辉 作品简介:梦凡云OA,实现公司的通知动态展示,内部收发信件, 请假审批功能, 工资查询功能 242 号作品 《重邮课后小程序》 队伍:金皆 成员:钟锴锴 作品简介:重邮课后小程序拥有活动发布、二手发布和根据学校课表自动生成值班表三大功能。 243 号作品 《每日戒糖》 队伍:冲鸭 成员:赵鹤宇 作品简介:过度吃糖危害皮肤健康等,使用每日戒糖小程序,让您更具智慧的面对糖。 244 号作品 《高级工匠心录》 队伍:小北鱼 成员:刘畅畅 作品简介:一个练习题目的工具,特色多人聊天室答题,专用的答题按钮,方便快速,独特的拟态风设计 245 号作品 《农大饭食》 队伍:博瑞12313 成员:刘国瑞、杨树博 作品简介:校内约饭 246 号作品 《Holly食刻》 队伍:蓝天白云 成员:许堃莹、周巍 作品简介:一款为提供点餐的在线餐厅点餐的小程序,其主要功能为:到店堂食点餐。服务覆盖午餐、水果、甜品饮品等。 247 号作品 《JF校园云招聘平台》 队伍:雏鹰团队 成员:李海亮、梅树正 作品简介:该项目的宗旨是以广东石油化工学院为起始,以小程序为运营主体的校园招聘平台! 248 号作品 《学辰ing》 队伍:知吾煮 成员:陈鸿基、王祺珑 作品简介:项目致力于为校园生活提供一个完整的二手交易社区 249 号作品 《LMSH7TH》 队伍:lmsh7 成员:袁承勋 作品简介:使用云开发功能写的树洞,目前支持注册登录,树洞广场,个人树洞,发布树洞。 250 号作品 《微信小程序工具箱》 队伍:逍遥子 成员:陈卓鑫 作品简介:一款后端完全基于云函数,云存储,云数据库实现实用工具小程序 251 号作品 《微助helper》 队伍:微光 成员:周芒 作品简介:一款以上传排班表和管理排班表为主题的小程序 252 号作品 《小记易》 队伍:尽力而为 成员:练方梯、李俊峰 作品简介:语音识别,富文本编辑器,图片识别,文字大爆炸。超棒的用户体验。 253 号作品 《随变记账》 队伍:随便蛐蛐 成员:黄美、黄鑫 作品简介:随变记账——基于云开发的记账微信小程序 254 号作品 《叮咚倒数日》 队伍:咚咚宇宙无敌舰队 成员:左太宇 作品简介:⛅️ 微信小程序,叮咚倒数日-生活提醒好帮手 255 号作品 《画画的北鼻》 队伍:黑镜 成员:陈家辉、陈光亮 作品简介:类似你画我猜,让用户可以通过画一个东西和填充它的答案,进去详情页可以猜测这张图片的是什么 256 号作品 《吃吃等你》 队伍:吃吃等你 成员:陈佳键、刘桂冕 作品简介:“吃吃等你”小程序,集分享与互动于一体的菜谱小程序 257 号作品 《待办事项工具》 队伍:腾沐之光 成员:林佳鸿 作品简介:直观便捷地管理待办事项,帮你保持专注与高效工具型小程序。 258 号作品 《男人买菜》 队伍:JS起舞 成员:贾涛 作品简介:小程序通过对菜肴的食材进行分析介绍和种类数量的分割重组,为买菜的男人提供一份简明扼要的列表清单!!! 259 号作品 《高校信息共享平台》 队伍:这是个队 成员:李吉望、张维科 作品简介:小程序集查询专业信息、高校状况、校园生活服务、综合性强,建立社团或学生组织运营平台,实现良性循环。 260 号作品 《一只书匣》 队伍:天城软件 成员:王心圆 作品简介:一只书匣,用于记录自己读书计划以及,养成习惯的读书小程序 261 号作品 《PicGo图旅》 队伍:jotang 成员:马世豪、王省 作品简介:PicGo是一款微信小程序,借助云开发平台,它的拍照搜索,智能推荐能为用户提供低成本智慧旅行解决方案 262 号作品 《云享坊》 队伍:学习小鑫 成员:陈泽鑫 作品简介:云享坊(cloudshare)是一个分享与交友平台 263 号作品 《拯救不开心》 队伍:不吃辣条了 成员:管政、孟笑晨 作品简介:每个人都或多或少会有一些抑郁甚至压抑的感觉。俗话说,没有音乐不能治愈的心灵,没有交流不能放大的美好。 264 号作品 《旅梦恋爱》 队伍:金龙 成员:段鑫、吴季龙 作品简介:都说有情人终成眷属,但没有好的方法去解决问题,也是徒劳而旅梦恋爱便是这样一款解决男生恋爱问题的小程序 265 号作品 《一起来学计组叭》 队伍:行健622 成员:付航、范晰雯 作品简介:学习计算机组成原理的小程序 266 号作品 《科联答题》 队伍:可达鸭小团队 成员:林科达、毛蕴祺 作品简介:用户在小程序中参与与社团有关的答题以及在社团vr实景中寻找线索进行解密,以达到线上招新宣传的作用。 267 号作品 《祥云》 队伍:llx 成员:林立祥 作品简介:图片的存储转发分享等功能的实现,实现拍照上传,添加照片,分享链接小程序码,下载,删除照片等功能 268 号作品 《群消息公示》 队伍:flyingman 成员:石鹏、孙硕硕 作品简介:为群管理员提供可编辑图文公告的工具 269 号作品 《准到聚餐》 队伍:准到科技 成员:陈洋、徐呈龙 作品简介:准到聚餐是一款能够解决朋友间聚餐最佳时间选择、精准人数统计、人员准时到达的小程序。 270 号作品 《课室助手》 队伍:队雷队去 成员:罗俊杰、潘金泉 作品简介:去纸化申请预约课室,方便快捷,高效率。 271 号作品 《泊宠》 队伍:猫南北 成员:故里、钟粤 作品简介:宠物上门喂养服务 让您的爱宠安心在家,铲屎官定时上门照顾。 272 号作品 《会议邀请函》 队伍:我们队 成员:林浩昌、杨浩 作品简介:“会议邀请函”是一个基于云开发的微信小程序,方便人们在线生成与分享会议邀请 273 号作品 《电魔方智能家居》 队伍:羊羔队 成员:高飞翔、杨承举 作品简介:羊羔队高飞翔与杨承举的小程序作品 274 号作品 《安全帽智慧监控小程序》 队伍:魔法少女 成员:罗姣、谭秋璐 作品简介:智能监控能够保证在没有人员监管的时候提醒相关人员佩戴安全帽 275 号作品 《社交平台》 队伍:ccc 成员:陈源坤、徐健猇 作品简介:该小程序给用户提供了交友的平台,用户可修改自己的信息,并与其他用户进行互动(点赞、分享位置、加好友) 276 号作品 《weSport》 队伍: emBus 成员:陈晓俊 作品简介:约球小程序:方便球队直接的约球; 277 号作品 《微信自助点餐小程序》 队伍:Never Give Up 成员:钟朋 作品简介:1.微信位置定位和显示 2.主页轮播图 3.无缝滚动 4.横向滑动tab选项卡 5.Menu菜单栏 278 号作品 《二手市场》 队伍:生榨米粉 成员:李燕华、周志明 作品简介:在平台上发布二手商品的消息,同时享受线上交易商品,发布商品交易并交易完成可增加用户在平台的信誉积分。 279 号作品 《校园简单易》 队伍:白嫖怪队 成员:汤国龙 作品简介:校园简单易-科创中心智能收取系统,旨再为各高校科创赛事提供一个收取、审核、汇总于一体的智能化服务平台 280 号作品 《温湿度实时监控及开关控制小demo的设计》 队伍:漂泊的太阳 成员:李焰权 作品简介:温度实时监控到小程序,小程序也能通过button组件控制灯的开关 281 号作品 《图迹圈》 队伍:Ylhaaa 成员:杨良浩 作品简介:提供一个平台给予用户分享自己喜欢的图片或视频,并提供诸如点赞,评论之类的社交功能。 282 号作品 《缸中之鱼导购系统》 队伍:缸中之鱼 成员:石洪玮 作品简介:缸中之鱼 一款能把针对买点的调查问卷过程和消费者网购过程二合一的小程序 283 号作品 《识译小程序》 队伍:秃头小队 成员:李鑫桃、黄智毅 作品简介:一个集图像识别、菜品识别、实时语音识别的小程序。主要面向用户群体为境外游的旅客 284 号作品 《数字余杭》 队伍:长天 成员:陈好好 作品简介:“数字余杭”构建余杭本地区域数字化 依托本地信息资讯,构建本地用户画像 285 号作品 《MallBook》 队伍:方丘子 成员:曾钱松、兰汶鑫 作品简介:本产品的针对人群是在校大学生。设计一款能够帮助学生学习又能实现便捷校园服务的应用、新鲜的体验的产品 286 号作品 《成长课程表》 队伍:老干妈战队 成员:王勃涛 作品简介:一个课外补习班的课程表 287 号作品 《小婷和小天一起记账》 队伍:Sunday 成员:何胜天 作品简介:一名普通程序员甲 288 号作品 《心里有树》 队伍:心里有树 成员:黎钎桦、周灿基 作品简介:心里有树是一款打卡小程序,为了让人们更好地发现目标,坚持目标,完成目标。该项目由两位广州大学学生完成 289 号作品 《优鲜配送联盟》 队伍:JYTX 成员:陈梓杰 作品简介:线上买菜服务平台,轻松便捷,高效省时,助力打造“智慧防疫农贸市场”。 290 号作品 《青存纪》 队伍:奖你一条鱼 成员:蒋吉平、余淑豪 作品简介:人生是酸甜苦辣的,至少在某一刻你应该记录下来 291 号作品 《酒肆 家谱》 队伍:酒肆 成员:韩佩珍 作品简介:酒肆家谱:①基于云开发的家谱管理②家谱信息保存在云数据库③成员编码由云函数生成④照片保存在云存储 292 号作品 《天天诗词》 队伍:绯光深林虹彩桥 成员:林纪元 作品简介:用于查看日期 293 号作品 《城市预警系统》 队伍:喵星队 成员:林妙妙 作品简介:城市预警系统,用于辅助城市设施管理部门管理城市,借助城市居民的力量,帮助城市问题的快速发现和解决 294 号作品 《契约farm》 队伍:twelve 成员:曹月星、吴静怡 作品简介:契约farm,拥有自己的虚拟farm,同时与商家交互,实现现实化。 295 号作品 《糗事》 队伍:奥利给 成员:马意然、唐滢沛 作品简介:为各类人群提供有趣的短文章短视频 296 号作品 《CUMTB疫情管控期间学生外出申请系统》 队伍:未命名 成员:高扬 作品简介:疫情管控期间,矿大北京学生出入校园可在本小程序中提交申请,由辅导员审核后,获得对应时间段的外出许可。 297 号作品 《比斯兔u》 队伍:好听的音乐 成员:陶俊岚 作品简介:给自己学校设计的圈子应用的demo。主要功能有:问答式贴吧论坛,提高寻找信息的效率。校内参数组队。 298 号作品 《校园书友》 队伍:一人一队 成员:许乐怡 作品简介:校园书友小程序的主要功能是读书分享和督促阅读,可以给用户提供一个专门用于读书分享的平台 299 号作品 《汇尤e家》 队伍:尤佳 成员:苏姗、张正午 作品简介:汇尤e 家小程序是基于云开发的社区服务商城,与普通商城不同的是我们特别推出了资源置换的功能。 300 号作品 《哏儿通》 队伍:哏儿通 成员:刘雨洋、李英军 作品简介:致力于推广哏都传统文化,专注于分享优质城市信息,打卡地点,特色美食······ 301 号作品 《FTodoList》 队伍:107 成员:曹瑞辰、王涛 作品简介:todolist,帮助计划管理的一款小程序,简约的封面和简单的操作 302 号作品 《统一运维平台》 队伍:蓝天碧水 成员:宋志军 作品简介:小程序实现页面 303 号作品 《虾麦》 队伍:动感JY 成员:王嘉懿 作品简介:二手物品信息分享平台,一键生成长海报 利用分享到微信群获取群id,看群成员都在卖什么 304 号作品 《餐饮流水记账》 队伍:鑫队 成员:袁鑫 作品简介:餐饮流水记账小程序是用于中小餐厅流水记账的小程序,在记账能力不强的餐馆中,帮助商家进行交易管理。 305 号作品 《迷你小摊》 队伍:我的小摊 成员:胡其洋、李浩楠 作品简介:给地摊经济下的摊主提供一个信息发布渠道,让喜爱逛夜市的人多一个信息获取的渠道 306 号作品 《抽屉表情》 队伍:为了获得T恤 成员:黄志杰 作品简介:帮助用户存放相册中杂乱的表情包,提供添加标签快速搜索分享,还有趣味的表情包加字功能。 307 号作品 《招新Plus》 队伍:对怼堆兑队 成员:金奕辰 作品简介:适用于大学校级组织大规模招新,完全基于微信小程序原生云开发能力开发的小程序 308 号作品 《中北请假助手》 队伍:田园创新队 成员:宋文暄、樊旭超 作品简介:解决高校请假事务管理处理效率较低的问题,利用高校校园网络和人手一部的学生智能手机解决。 310 号作品 《初心日历》 队伍:嘟嘟队 成员:王泽世 作品简介:一款记录亲人好友的生日日期的小程序 311 号作品 《知侬》 队伍:知侬 成员:黄彭志 作品简介:本小程序用于华中农业大学活动信息实时预告、本科毕业生情况查询、各类考 试信息实时提醒、个人目标制定。 312 号作品 《“倾听者”综合型语音评价系统》 队伍:驭键师 成员:潘晨杰 作品简介:“倾听者”综合型语音评价系统是一个智能的口语评测系统,对用户的发音问题进行分析和纠正。 313 号作品 《快表白》 队伍:小猿人 成员:刘永建新 作品简介:本小程序是一个表白小程序,有为五个页面,分别是:首页、结果页、个人中心页、预览页、创建页。 314 号作品 《校园二手购》 队伍:大王叫我来巡山 成员:连梓煜、黎烨亮 作品简介:校园二手购是一个供学生进行二手物品交易的平台,可以在此发布或者寻找自己闲置或者喜欢的物品。 315 号作品 《CC交个朋友》 队伍:余衫马 成员:马建生、邹烨 作品简介:一个轻量简洁的图片社交小程序,愿你在这里能够找到分享的欢乐和志同道合的朋友。 316 号作品 《校园小唤》 队伍:校园小唤 成员:蒙焕厅、谢先晖 作品简介:“校园小唤”,一款专门为大学生提供服务的社区平台 317 号作品 《校园寻回》 队伍:小旅分队 成员:郭逸涵、吴海兵 作品简介:校园失物招领平台,详情请见文章链接 318 号作品 《seven取餐小程序》 队伍:Seven 成员:叶尔扎提•赛热哈力、哈那拜·巴依居玛 作品简介:此项目用于高校拥挤的餐厅排队打饭,这个可以很好的节省排队时间,还可以再等餐的同时能够干其他事。 319 号作品 《闪加》 队伍:zaaaap 成员:胡泰康、唐源 作品简介:闪加,一款快速分享您的社交app的小程序 320 号作品 《格式转换工厂》 队伍:One-YuTian 成员:李进 作品简介:文件格式转换工具,PDF免费转Word,200种文件格式在线转换。 321 号作品 《点滴互助》 队伍:小鱼队 成员:刘宁波 作品简介:点滴互助,互相帮助平台 322 号作品 《小青考证》 队伍:做什么都队 成员:许芸、钟卓伦 作品简介:小青考证,一个“想练即练,快速刷题,随时回顾”的考证刷题小程序 323 号作品 《IAI CDS》 队伍:disassembly 成员:侯力新、焦丹阳 作品简介:工业智能组件拆解小程序 324 号作品 《人脸识别虚拟仿真实验》 队伍:科学探索小队 成员:陈鹏宇、耿雪纯 作品简介:人脸识别虚拟仿真实验平台是将人脸识别的每一步进行可视化的过程,并且可以自定义一些参数。 325 号作品 《广大搜搜》 队伍:特种部队 成员:黄思豪、吴坤 作品简介:广大搜搜小程序是为了方便学生交流与更高效地获取对自己有用的信息而产生。 326 号作品 《寝记账》 队伍:秃如其来 成员:归律发、王宇海 作品简介:让您的记账和分帐变得简单,算账交给寝记账,收支管理更清晰。 327 号作品 《大宗交易数据查询分析助手》 队伍:Y2020 成员:杨坤、杨威 作品简介:A股历史大宗交易数据条件查询、A股历史大宗交易数据云端计算分析、分析结果可视化。 328 号作品 《無音不泉》 队伍:無音不全 成员:付永杰、马菀君 作品简介:無音不泉小程序,集歌曲播放,图片社交为一体,让现当代青年在音乐中找寻没有烦恼的自己。 329 号作品 《ITD智慧校园》 队伍:ITD智慧校园 成员:梁奕隽、张镜濠 作品简介:ITD智慧校园是套基于微信小程序+web的校园生活平台,可对在校生实施精准管理,并连接家校关系。 330 号作品 《We广油》 队伍:快乐sleep 成员:张伟、陈伟达 作品简介:致力于帮助我们广东石油化工学院的师生更方便的查询教务信息,测试账号和密码为test和test 331 号作品 《地图留言》 队伍:Nodejs单推人 成员:桑子瑞、易立 作品简介:一款可以在地图上留言的小程序 332 号作品 《照片时光机》 队伍:AmazingPromise 成员:何长霖 作品简介:一个帮助你在同一地点同不同时间,拍出相同角度照片的小程序。实现便捷的查看功能和惊艳的照片效果。 333 号作品 《恋爱空间》 队伍:君吹 成员:何嘉润 作品简介:一个私密的二人空间,帮您记录恋爱中的点点滴滴。 334 号作品 《文艺比赛小行家》 队伍:流浪者 成员:张达 作品简介:主要用于公司内部的文艺比赛活动,小程序成了普通观众的投票器,主办方控制屏幕的遥控器。 335 号作品 《哪天约》 队伍:BK 成员:高亦非、王帅雨 作品简介:「哪天约」小程序是群约时间协调的效率类工具。可以根据活动类型,通过群聊或二维码分享群约,获得最优解。 336 号作品 《社交点评》 队伍:123 成员:黄义斌 作品简介:社交点评 337 号作品 《疫简签》 队伍:L.Y 成员:李旭利、薛涛 作品简介:疫简签小程序用于各大高校对于疫情现状的查询以及以自己所在班级为单位汇报体温,确认学生身体的健康情况。 338 号作品 《小神助手》 队伍:小龙虾队 成员:齐若涵 作品简介:生活中并不起眼的却很有趣的小功能集合。 339 号作品 《HomeAssistant》 队伍:远哥制造 成员:高晨远 作品简介:查看家中传感器数据并控制各种开关的物联网微信小程序 340 号作品 《健身小程序简介》 队伍:昆工代码疯狗 成员:马一文、张学晨 作品简介:健身小程序 341 号作品 《东方小游戏》 队伍:一枝花 成员:李君豪 作品简介:基于云开发的小程序文字小游戏,包含了一个玩家可以留言的留言板。 342 号作品 《郑州限行查询》 队伍:鲤鱼绿与路驴绿 成员:杜明亮、李文 作品简介:采用了云函数+云数据库的形式,判断当天的限行数字 343 号作品 《布告》 队伍:一杯茶一包烟 成员:陈嘉鹏、赵宇凯 作品简介:小程序希望打造一个大学生活动信息交流平台,使得参与者有渠道寻找活动并参加,发布者有渠道发布活动并引流 344 号作品 《心跑道》 队伍:敲菜队 成员:黄承大、邱宣富 作品简介:本小程序适用于心理知识竞赛,旨在为举办方和参赛选手提供“一站式”快捷,便利的服务平台。 345 号作品 《义思丽代办平台》 队伍:翱翔队 成员:伊力哈木·阿布都克热木 作品简介:一般用户可以通过此小程序提交个体工商注册订单,平台管理员可以代用户办理对应的执照 346 号作品 《江大电服》 队伍:lime2019 成员:夏家华、夏天 作品简介:基于腾讯云开发环境的Web网页和小程序,主要功能为部门内成员管理和全校师生电子技术问题填报。 347 号作品 《BJUT活动助手》 队伍:工大小分队 成员:李泊岩、李金星 作品简介:《BJUT活动助手》是一款集发布、报名、汇总于一体的活动助手小程序,从而提升学生和老师的活动参与度。 348 号作品 《佤山行》 队伍:寻影智联 成员:裴晓航、成广彦 作品简介:以临沧市沧源佤族自治县的佤族特色为契机,结合当地旅游现状、农副产品、民族饰品,开创的微信小程序平台。 349 号作品 《定约》 队伍:三十而已 成员:李亚飞、陈文烽 作品简介:帮助你和朋友建立一个未来时间、地理位置的见面协议。小小的约定,也有我们一起见证,一起积极参与生活! 350 号作品 《云开发带后台商城系统》 队伍:半瓶子 成员:宋文凯 作品简介:全由云开发实现的带后台的商城系统,所有的图片和文字可以改动,后台是手机直接操作的。 351 号作品 《流量计设备性能测试平台》 队伍:北京素水 成员:王建存、赵子坤 作品简介:腾讯云物联网+云开发+小程序,轻松实现设备临时测试和长期监测,综合成本低,稳定性高。 352 号作品 《预付费机票销售小程序》 队伍:我行我素 成员:宋清华 作品简介:预付费机票销售预约小程序 353 号作品 《失全拾美》 队伍: 周易 成员:张毅、周鼎举 作品简介:该小程序为失物招领平台。针对在校大学生,使用该小程序后可快速物归原主失主 354 号作品 《微购收单》 队伍:讯洲科技 成员:周靖 作品简介:微购收单是一款辅助线下团购、拼单类的工具应用。主体逻辑是线上预约,微信转账,到店自提 355 号作品 《校拍》 队伍:校拍 成员:李超超、张砚耕 作品简介:校拍小程序和同名公众号主要是为了展示用户学校的校园美景以及分享各种摄影入门小技巧,吸引更多的人参与。 357 号作品 《校内外卖》 队伍:996秃头小分队 成员:邓嘉豪、胡严 作品简介:一个针对于学校饭堂或小卖部商家们的一个外卖小程序 358 号作品 《秀食餐饮小程序》 队伍:橙启盈 成员:王皓 作品简介:本作品主要的应用场景是为线下的小型餐饮企业打造一个低成本的私域部署的电商O2O平台。 359 号作品 《自助心理成长》 队伍:小黑 成员:程思、刘韬 作品简介:自助心理成长,靠自己的力量,觉察自己的内心,应用心理学知识,使我们此刻更心安,未来更幸福。 360 号作品 《xcu许院生活》 队伍:codeOne 成员:杨少博 作品简介:许院生活是一款生活交流类小程序,针对同校同学需求实现了二手交易、兼职发布接取、校园动态展示等功能。 362 号作品 《零工哥》 队伍:阿司匹林 成员:叶世红、周清平 作品简介:零工哥小程序是给需要雇佣临时工的企业,和需要打零工的工人和团队搭建一个平台。 363 号作品 《预约挂号小程序》 队伍:三缺一 成员:王泰禹、余建诚 作品简介:每个去医院看过病的人都经历过很长的队伍,白白浪费了大半天时间,于是乎,一个预约挂号小程序由此诞生。 364 号作品 《智慧账本》 队伍:为了苹果 成员:杨凯博、蔡利江 作品简介:小程序主要用于方便学生统计日常开销,提升学生的开源节流能力 365 号作品 《印纪》 队伍:残阳如血 成员:刘烨 作品简介:一款基于现实事件的通用成就系统 记录自己高光时刻,发现分享成就,结识更多志同道合小伙伴的平台 366 号作品 《我家的WIFI》 队伍:延旭未来 成员:晏旭 作品简介:利用云开发实现wifi密码备份,联网的小工具,再也不会忘记密码了,也可以把密码分享给朋友使用! 367 号作品 《瓜大e拼车》 队伍:四四四一队 成员:马翔、宋文超 作品简介:拼车 368 号作品 《校云通》 队伍:校云通 成员:朱子言、周何顺 作品简介:校云通是一个基于云开发的校园商家点单、排队微信小程序,未来加入跳转功能实现校园内商家互通。 369 号作品 《迷你论坛》 队伍:sfasheep 成员:冯学煜 作品简介:本微信小程序于通过无干扰项的简陋论坛,弥补社团微信群交流的不足 370 号作品 《袋鼠培培》 队伍:阿婕和她的叔叔 成员:钟雅婕、张宇浩 作品简介:袋鼠培培 带你飞!袋鼠培培是一个专注教育培训行业,以个人兴趣爱好、才能类培训为主的O2O平台。 371 号作品 《物流小程序》 队伍:不重要二队 成员:薛凯 作品简介:物流小程序,方便用户下单,司机和管理员管理订单 372 号作品 《Simple Note 短记》 队伍:代码工坊 成员:李忠义、张京 作品简介:小程序云开发挑战赛作品——Simple Note 373 号作品 《见字如面》 队伍:雏鹰队 成员:王庆洲、陈月 作品简介:公众号有留言、消息时运营人员第一时间接到推送通知,并回复处理。 374 号作品 《易珠》 队伍:拈花我把酒 成员:陈炼鹏、陶绍基 作品简介:本小程序为了服务学校师生毕业季物品和平时二手书的交易问题。既环保又方便
2020-09-25 - 开放平台绑定小程序时提示不是同一主体?
你好,我们在『微信开放平台』申请绑定小程序时,提示『不支持绑定不同主体的小程序』 但我们的小程序与开放平台主体都是一致的 我们的开放平台尚未开发者认证,但根据页面提示,未认证的账号仅是不能绑定不同主体 而我们现在的操作是绑定2个相同主体的,麻烦帮我们查下是哪里出错了? [图片] [图片] # 开放平台账号和小程序APPID 将通过私信提供
2020-09-10 - 小程序客服无法接收用户消息
没有开启推送功能 [图片] 用户发送消息客服端不管是客服小程序里还是PC里都无法接收到消息,但使用pC端的主动发起消息之后却可以跟用户正常交流。关闭会话之后用户再发送消息。客服端就收不到了。麻烦看一下
2020-09-01 - 跑腿小程序,支付跑腿费,属于虚拟支付吗?可以在ios里进行支付吗?
跑腿小程序,支付跑腿费,属于虚拟支付吗?可以在ios里进行支付吗?
2020-07-29 - 微信原生小程序转移到QQ小程序过程记录
本文背景我有个小程序目前已在微信上线,反应非常好,面向人群主要是20岁左右,甚至十几岁的,计划在QQ上再复制一份 本文主要记录这个QQ上架的过程 参考文档请问我现在有个微信原生的小程序,如何部署到QQ小程序上?? - 微信开放社区 https://developers.weixin.qq.com/community/develop/doc/000c8649a680985b9dda5480751400 https://support.qq.com/products/134621/ https://q.qq.com/wiki/ https://q.qq.com/wiki/cloud/base/intro.html 本文内容目前微信小程序采用原生的,未使用任何多端框架,用原生小程序云开发实现的,所以也计划用QQ小程序的云开发,大致情况是这样 接下来在每一步我都会记录下 本文总结 未完待续
2020-08-26 - 为什么申请小商店提示该微信号不符合注册条件?
问题如图,个人和企业都申请不了,但是我直接登陆电脑端,会有一个企业/个体户店(我没申请过,因为申请企业店也会提示如图,不知道这个店是从哪冒出来的),但是我没有那些证,我想开个人店啊 [图片]
2020-08-20 - 小程序客服自动回复如何回复图片?
小程序客服自动回复如何回复图片?
2020-08-20 - 微信小程序通过websocket实现实时语音识别
之前在研究百度的实时语音识别,并应用到了微信小程序中,写篇文章分享一下。 先看看完成的效果吧 [图片] 前置条件 申请百度实时语音识别key 百度AI接入指南 创建小程序 设置小程序录音参数 在index.js中输入 [代码] const recorderManager = wx.getRecorderManager() const recorderConfig = { duration: 600000, frameSize: 5, //指定当录音大小达到5KB时触发onFrameRecorded format: 'PCM', //文档中没写这个参数也可以触发onFrameRecorded的回调,不过楼主亲测可以使用 sampleRate: 16000, encodeBitRate: 96000, numberOfChannels: 1 } [代码] 使用websocket连接 [代码] linkSocket() { let _this = this //这里的sn是百度实时语音用于排查日志,这里我图方便就用时间戳了 let sn = new Date().getTime() wx.showLoading({ title: '识别中...' }) recorderManager.start(recorderConfig) //开启链接 wx.connectSocket({ url: 'wss://vop.baidu.com/realtime_asr?sn=' + sn, protocols: ['websocket'], success() { console.log('连接成功') _this.initEventHandle() } }) }, //监听websocket返回的数据 initEventHandle() { let _this = this wx.onSocketMessage((res) => { let result = JSON.parse(res.data.replace('\n','')) if(result.type == 'MID_TEXT'){ _this.setData({ textDis: 'none', value: result.result, }) } if(result.type == 'FIN_TEXT'){ let value = _this.data.text let tranStr = value + result.result _this.setData({ value: '', valueEn: '', textDis: 'block', text: tranStr, }) } }) wx.onSocketOpen(() => //发送数据帧 _this.wsStart() console.log('WebSocket连接打开') }) wx.onSocketError(function (res) { console.log('WebSocket连接打开失败') }) wx.onSocketClose(function (res) { console.log('WebSocket 已关闭!') }) }, [代码] 发送开始、音频数据、结束帧 [代码] wsStart() { let config = { type: "START", data: { appid: XXXXXXXXX,//百度实时语音识别appid appkey: "XXXXXXXXXXXXXXXXXX",//百度实时语音识别key dev_pid: 15372, cuid: "cuid-1", format: "pcm", sample: 16000 } } wx.sendSocketMessage({ data:JSON.stringify(config), success(res){ console.log('发送开始帧成功') } }) }, wsSend(data){ wx.sendSocketMessage({ data:data, success(res){ console.log('发送数据帧成功') } }) }, wsStop(){ let _this = this this.setData({ click: true, }) let config = { type: "FINISH" } wx.hideLoading() recorderManager.stop() wx.sendSocketMessage({ data:JSON.stringify(config), success(res){ console.log('发送结束帧成功') } }) }, [代码] 小程序录音回调 [代码] onShow: function () { let _this = this recorderManager.onFrameRecorded(function (res){ let data = res.frameBuffer _this.wsSend(data) }) recorderManager.onInterruptionBegin(function (res){ console.log('录音中断') _this.wsStopForAcc() }) recorderManager.onStop(function (res){ console.log('录音停止') }) }, wsStopForAcc(){ let _this = this this.setData({ click: true, }) let config = { type: "FINISH" } wx.sendSocketMessage({ data:JSON.stringify(config), success(res){ wx.hideLoading() console.log('发送结束帧成功') } }) }, [代码]
2020-08-20 - 官方出来解释一下 project.config.json 文档 配置中缺少参数解释?
官方出来解释一下 useIsolateContext useCompilerModule userConfirmedUseCompilerModuleSwitch 这三个参数完全找不到什么意思 [图片] https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html
2020-08-18 - 微信公众号返回错误信息格式修改?
由hint xxx 改为 rid xxx 不通知一下吗
2020-08-18 - PC电脑微信显示“未能登录”
PC电脑微信显示“未能登录”[图片]
2020-06-11 - 公众平台群发消息如何删除?
1、通过微信公众平台群发的图文消息内容(包括群发成功或群发后审核中的内容),可在“已发送”中删除;进入微信公众平台->首页->群发->找到需删除的消息->点击“删除”图标删除即可。 2、将删除图文消息内容,已收到消息的粉丝,手机端图文的封面及标题暂不支持删除。 3、将删除公众号的“查看历史消息”中的相关记录; 4、图文消息删除后,群发权限不会恢复;图文消息删除5分钟后全部生效。 5、支持删除多图文消息的其中一条。 温馨提示:目前在微信公众平台中只能删除已发送成功的消息;正在群发中的消息,暂不支持撤回或删除。 [图片]
2019-11-21 - 组件导出安全风险
安卓在接入微信分享时,需要将继承IWXAPIEventHandler的Activity,在AndroidManifest.xml中注册时设置android:exported属性为true,是存在安全风险的,这个问题能不能在升级中进行修改呢
2020-05-20 - 微信认证分为资质审核和名称审核的说明
1、审核阶段分别对应功能(为什么审核通过后无认证标识?) 微信认证分为帐号主体资质和帐号名称两部分审核: 1)帐号主体资质审核成功可使用功能权限:卡券功能、多客服功能,此外订阅号自定义菜单(可设置跳转外部链接,设置纯文本消息)、服务号可获得公众平台开放的所有高级接口; 2)帐号名称审核成功:则完成完整的微信认证,帐号会有认证标识、认证信息等。 温馨提示:设置业务域名、申请广告主功能需要同时通过资质审核及名称审核才可以申请。 2、申请认证时怎么区分资质审核和名称审核? 您在微信认证时填写页面保持不变,微信认证您填写完成后,会进入审核阶段,分为帐号主体资质和帐号名称两部分进行审核,无须用户手动选择。 温馨提示:帐号名称审核通过前(未获得认证标识),不影响自定义菜单和高级接口的使用。
2020-04-23 - [填坑手册]假如你被要求上线beta版功能--小程序分享到朋友圈
[图片] 看到各种大V和技术圈都说在小程序分享到朋友圈的事情,不少人忍不住开始尝试起来,不少甲方爸爸、需求方大佬看到了宣传,就想直接用上。。。我想说beta测试的东西常常有很多坑要填的,慎用· 先来看下官方文档: https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/share-timeline.html [图片] 很明显,还只是beta版,而且只支持Android分享,还有很多不完善的地方。(截止7月28日) 如何操作 1.先下载最新版IDE工具 https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html 2.代码 [代码]Page({ onLoad: function (options) { //用于设置显示分享到朋友和朋友圈的icon wx.showShareMenu({ withShareTicket: true, menus: ['shareAppMessage', 'shareTimeline'], success(res) { console.log('showShareMenu',res); } }) }, onShareTimeline(res){ let shareObj = { title:"前端智酷方程", path:"/pages/news/index" // 配置这个目前是没有用!!! 不能自定义路径 query:"a=1&b=2", imageUrl:"/pages/img/logo.png" } return shareObj; } }) [代码] 可以看到目前分享到“朋友圈”只能分享当前页面,可以带参数,但是不能自定义路径。 3.具体操作 IDE上 [图片] [图片] [图片] [图片] 实际手机上朋友圈的效果: [图片] 误区:分享到朋友圈不是小程序入口,其实是单页模式 很多人以为分享到朋友圈,就是在朋友圈直接打开小程序,其实并不是,而是打开一个单页,你可以认为是一个“独立的空间”,有诸多限制! “单页模式”下,页面顶部固定有导航栏,标题显示为当前页面 JSON 配置的标题。底部固定有操作栏,点击操作栏的“前往小程序”可打开小程序的当前页面。顶部导航栏与底部操作栏均不支持自定义样式。 “单页模式”默认运行的是小程序页面内容,但由于页面固定有顶部导航栏与底部操作栏,很可能会影响小程序页面的布局。因此,请开发者特别注意适配“单页模式”的页面交互,以实现流畅完整的交互体验。 “单页模式”下,一些组件或接口存在一定限制。 限制:很多功能无法使用 页面无登录态,与登录相关的接口,如 [代码]wx.login[代码] 均不可用;云开发资源需开启未登录访问方可在单页模式下使用,详见未登录模式。 不允许跳转到其它页面,包括任何跳小程序页面、跳其它小程序、跳微信原生页面 不允许横屏使用 若页面包含[代码]tabBar[代码],[代码]tabBar[代码] 不会渲染,包括自定义 [代码]tabBar[代码] 本地存储与小程序普通模式不共用 云函数部分功能不支持 如下: 最基本的[代码]wx.login[代码] 明确说不可用了 [图片] [代码]wx.getUpdateManager()[代码] 用户更新小程序的 [代码]onCheckForUpdate[代码] 方法也报错 [图片] 实际使用和总结 目前(7月28日)只有Android设备才能分享到朋友圈,但是IOS和Android设备都可以访问,只要避开文档上写的一些不支持的api,普通的页面展示还是没问题的。 现在还在beta测试,建议大家还是忍忍,等正式版上了再用,毕竟有些坑没必要去跳。如果被甲方架着走,要硬上。。。你就跟他们说二个字:加钱 ! ! ! 这样或许能逼退他们大胆的想法~ 看完觉得有帮助记得点赞哦~ 你的支持是我持续分享的最大动力yo ^-^
2020-07-28 - 如何查询身份证个人微信号手机号绑定的帐号?
查询登记的身份证绑定 请使用微信扫一扫以下二维码 [图片] 查询个人微信 请使用微信扫一扫以下二维码 [图片] 查新手机号绑定 请使用微信扫一扫以下二维码 [图片] 温馨提示: 1)若您忘记绑定帐号的登录邮箱,请您通过浏览器打开该网页(网页地址:https://mp.weixin.qq.com/acct/findacct?action=scan)根据页面提示操作。 2)帐号找回时提供的新邮箱需未绑定过个人微信,且未申请过公众号/小程序的新邮箱,提交成功后,3个工作日内审核结果将发送至您扫码时的个人微信号上。 3)如需解绑公众号运营者微信号(长期及短期)和小程序的项目成员,请关注公众号“公众平台安全助手(mphelper)”,点击底部菜单栏“绑定查询”选择“微信号绑定帐号”,点击要解绑的公众号/小程序,点击解除绑定即可。
2020-03-18 - 小程序加急审核流程上线
为优化小程序审核体验,配合各位开发者解决小程序的紧急迭代需求。平台上线了加急审核流程,开发者可根据自身业务情况进行审核加速申请。 1.加急申请入口 符合条件用户在审核提交页面【审核加急】,选择【加急】并填写【“加急类型”“ 加急说明”】情况后提交审核。 [图片] 2.加急次数说明 (1)非个人主体类型:每个自然年有3次申请加急机会 (2)个人主体类型:每个自然年有1次申请加急机会 注:①提审勾选加急后,如在审核前撤回,机会不被消耗;如加急审核单已被审核,无论审核结果通过/不通过,加急机会都将被消耗。请开发者谨慎合理使用加急机会; ②如勾选加急后,审核单被驳回。开发者在12小时内再次提交审核或者通过驳回站内信内的【前往反馈页面】提交反馈,可获得相对加急的审核队列。 3.加急审核时间段与审核时长 (1)非个人主体类型:00:00-23:59 (2)个人主体类型:9:00-22:00 审核时长:正常加急审核预计2小时内完成。请开发者结合审核工作时间及加急单等待时长综合评估提审加急单的时间。 注意:如遇节假日如春节假期前等加急提审队列拥挤,或小程序代码包含复杂逻辑等特殊情况,将无法保证加急审核在2小时内完成。 4. 以下情形的代码提审单暂不支持加急审核 选择国内主体的以下类目或选择海外主体后首次提交代码审核,需报属地网信部门复核,预计审核时长7天左右,暂不支持加急审核。 [图片] 加急审核机会是根据平台审核资源调配,配合开发者遇重大提审节点快速审核迭代的体验优化。每个小程序的加急额度是有限的,请提交前自行检查,确保加速版本的小程序符合法律法规和平台规则,避免浪费有效加急机会。同时,开发者也可以通过小程序评测达标来获取更多的加急机会。 加急审核机制上线后,我们会根据开发者的使用额度情况及审核资源情况等,对目前加速审核机制进行动态调整与优化。
2022-07-26 - 微信授权踩坑
可能有不少人认为微信小程序授权是刚开始就请求的,其实不然,前几天本人审核没通过,就是说需要用户自行体验一番,之后用户再自己决定登录授权与否;这里容易遇到一个问题假如是一个商城类的小程序,tabbar有首页、推荐、订单、个人四个模块,因为一开始是不在登录状态的,所以获取不到订单信息,如果用户点击订单页之后再通过个人页来进行授权,就会发现订单页因为已经缓存,不会再因为用户之后的授权而更新数据,我这里是用wx.ralaunch(关闭其他所有页面,跳到某个页面)来实现的,这样就会在用户授权之后可以“重新开始”
2020-03-24 - 来自海拉鲁的社区常见问题汇总(不定时更新)
1、微信服务号第一次进页面正常,手动刷新当前页面就404了 问题链接:https://developers.weixin.qq.com/community/develop/doc/000c2cba014b6816a4a9d97a555400 经了解到项目中使用了vue-router 的 history 模式,项目在本地yarn serve运行时访问二级页面,再刷新是问题的,yarn build后, 放到nginx里运行,再刷新就404了,主要原因是路由的路径资源并不是一个真实的路径,所以无法找到具体的文件。 s: https://router.vuejs.org/zh/guide/essentials/historymode.html 使用前先看说明,官方提供了一些配置例子,大家可以参考参考 2、wx:for循环打印的数据添加进去了却不循环? 问题链接:https:/developers.weixin.qq.com/community/develop/doc/00080a499b85c03bafa9e3b325b400 这位同学修改数值,没有调用this.setData触发视图更新,原因在于开发前没看文档 ps:https://developers.weixin.qq.com/miniprogram/dev/reference/wxml/data.html 数据绑定 3、这是接口问题吗?怎么解决? 问题链接:https://developers.weixin.qq.com/community/develop/doc/00040ae531c710caaea9c551456400 这位同学想调用逆地址解析接口,无奈粗心打印调成了地理编码接口 ps: https://lbs.qq.com/webservice_v1/guide-gcoder.html 腾讯位置服务逆地址解析 4、小程序如何获取好友列表? 问题链接:https://developers.weixin.qq.com/community/develop/doc/000cc82a9a00e09e78a9bcffe51c00 有类似需求的同学就不用想了,不可能提供,我在此:噗哈哈哈 5、我把自己的本地数据复制到另一小程序中就出错? 问题链接:https:/developers.weixin.qq.com/community/develop/doc/000c6ef50b0bb8bf59a98242c5b400 经过私聊该同学,代码写的少,碰见问题不会排查,错误出现在路径问题上,对于路径问题,有个笨办法,就是在/show/show 前面加..或/,一个一个加,加到能位置,不必研究目录关系。 6、微信小程序步数返还的时间戳为什么返回的全是1970? 问题链接:https://developers.weixin.qq.com/community/develop/doc/000caa9effce70ca5ea93371f5bc00 微信步数或者其它的API的时间戳字段没有写明是秒还是毫秒,碰到该类问题,大家先看看时间戳的长度判断是秒还是毫秒。该问题反馈给华哥了 7、picker多项选择器 循环渲染修改另外一个第一行 另外一个第二项数据会变化 问题链接:https://developers.weixin.qq.com/community/develop/doc/000026e420c9e89755a984fb856c00 https://developers.weixin.qq.com/community/develop/doc/0002c846538448b037a908c3951800 该问题对象复制的问题,还有的同学反馈console.log()打印出来的结果和展开的结果不一致问题,console.log打印出来的只是快照, 展开才是实际内容。 s: 可参考《javascript高级程序设计》第三版68页 基本类型和引用类型的值 8、为什么有的部分参数传不过去然后显示undefined? 问题链接:https:/developers.weixin.qq.com/community/develop/doc/0004626abb4b28eabf9988b4c56000 这位同学data-* 命名不规范有大写字母,所以没获取到值。此类传参问题,还有变量和等于之间多了个空格,眼神不好的,真以为代码没问题。 ps: 参考文章 https://developers.weixin.qq.com/community/develop/article/doc/0080aa5b441d81eb499a954056c13 9、wx.request() post请求中,data中的参数的封装? 问题链接:https//developers.weixin.qq.com/community/develop/doc/00048ac54e81e03474b95166c51000 10、大家调用安全检测接口有提示敏感词没? 问题链接:https://developers.weixin.qq.com/community/develop/doc/00040e0f33c5083bd5b976f1751800 该问题是调用文本安全检测不成功 不少同学都卡在这块了,本人不喜欢php,所以没有列出php的代码,也不想会,噗。以下列举java、nodejs、python2、云调用的调用代码 nodejs request库 (yarn add request) [图片] java okhttp库 [图片] [图片] [图片] linux环境的 python2 requests库 (pip install requests) [图片] [图片] 云调用示例: [图片][图片] 11、导入数据,这样的json格子哪里不对吗? 问题链接:https://developers.weixin.qq.com/community/develop/doc/0002a6973348e0396fc9aa61b52800 云开发数据库导入json数据,其实是{"name": "binnie", "age": 18}{"name": "binnie", "age": 18} 这种格式, 外层没有[],并且{}之间没有逗号,也算是新手容易犯的错误吧
2020-01-18 - 【项目备注】的妙用
项目备注是什么? 在使用 微信开发者工具 上传体验版的时候,会有一个项目备注的条目,如图: [图片] 现在就来简单说说【项目备注】的一些基础用法吧(采取QA形式) Q:我的小程序/小游戏需要账号登录才能使用,但是小程序提审没有输入测试账号和密码的地方,怎么办? A:可以在醒目备注里面把测试账号和密码写上去,这样审核人员就能看到啦 Q:我的小程序被驳回,说不能完整体验所有功能,我小程序是内部使用的,需要登录才行,不登录当然不能体验啦。 A:可以给审核人员一个测试账号进行测试,同上。 Q:我小程序是内部使用的,必须授权才能使用,但是一直被驳回说登录流程不规范。 A:可以在项目备注里面写明该小程序的应用场景,供审核人员进行判断。 Q:小程序被驳回,说需要XX资质,但是我们这里XX部门说不需要这个资质,也没用这个资质了,该怎么办? A:可以在项目备注里面写明该资质无需提供,最好再带上你所联系的XX部门相关人员的单位、姓名以及联系方式,以便审核人员核实。 tips: 可以把本次的更新内容写到项目备注,也许能加快审核也说不定呢~ 目前暂时就想到这些,以后有想到啥就回来补充,也欢迎各位大佬在评论区留言,然后我编辑到文章中来~
2019-09-18 - 小程序跳转数量限制总结
总结一下小程序的跳转能力和数量限制 表格 来源 目标 方案 数量限制 优点 缺点 小程序 小程序 通过原生Api跳转 10个 用户体验最好 仅限跳转10个小程序,且不可动态替换 官方已放开限制 小程序 小程序 通过预览Api,预览小程序码,长按识别跳转 无 无数量限制 操作复杂,需要先预览图片,然后用户长按识别 小程序 小程序 webview打开H5,在h5中长按识别小程序码 无 无数量限制 需要对接额外开发h5,但相比上一方案,可减少一步预览图片 小程序 h5 webview 20个业务域名 减少小程序页面的开发,直接对接已有的h5 需要配置业务域名,限制为20个 公众号h5 小程序 小程序卡片 10个相同主体,3个不同主体 用户体验最好 需要关联公众号,且仅支持微信文章h5,无法动态进入 公众号h5 小程序 长按识别小程序码 无 无限制,可动态生成二维码 需要用户自己长按图片,用户体验较差 app 小程序 微信sdk 50个相同主体、5个不同主体 就这一个方案,没得选 需要在开放平台上关联app和小程序 小程序 app 小程序原生Api 无 就这一个方案,没得选 只能从小程序返回app,不能主动打开app 小程序 公众号 原生关注公众号组件 1 必须是扫码进入小程序的场景,才会出现公众号关注组件,且需要关联公众号和小程序 小程序 公众号 小程序客服消息发送公众号二维码,用户自己长按识别 无 操作复杂,用户体验差 小程序 公众号 通过预览Api,预览公众号二维码,长按识别跳转 无 无数量限制 操作复杂,需要先预览图片,然后用户长按识别 小程序 公众号 webview打开H5,在h5中长按识别公众号二维码 无 无数量限制 需要对接额外开发h5,但相比上一方案,可减少一步预览图片 思维导图 [图片]
2020-06-24 - 小程序流量主运营技巧
前言(写给入坑的小白) 本文不涉及任何需要资质的小程序(如:视频类目)。小程序流量主是个人和小微企业主要变现途径之一,满1000人即可开通流量主(登录mp.weixin.qq.com,左侧边栏-推广-流量主-开通即可)。开通后,开发者可从流量主-广告位管理添加广告位,目前有6种广告位。 [图片] 正文(本文约很多字,分为四大主类,手里有1-10个小程序建议全部看完;手里有10个以上小程序,可跳过1、2、3,均为个人观点,不喜使劲喷) 一、小程序定位 小程序定位目前有以下四种,均不需要任何资质,个人(商城除外)/小微企业都可以做,由于本人不擅长文字表达,每个类型只选择一个做分析,谅解。 1、工具类 工具类有很多可以做:题库、技术文档、教程、去水印等。目前最火爆的应该属于疫情相关类的工具,关于疫情数据类小程序不做分析,没资质也没权利,主要说疫情周边可运营的工具。头像口罩,代表小程序:头像加口罩、戴个口罩吧、戴上口罩(每日搜索量约等于2000),可参考以下做法: [图片] 以下为近7日访问数据量 [图片] 盈利方式:流量主 延伸参考:如果仅做头像加口罩的话,那么疫情过后,这个小程序会直线下降,将无任何作用。如果开发者手里目前有类似小程序,可参考“头像加口罩”做法,逐渐去延伸头像周边功能,例: ①、头像加字:头像+数字、头像加V、头像加字、头像加圣诞帽、新年头像边框、头像加福、头像加明星等 ②、聊天背景图、壁纸:武汉加油、卡通、美女(不要漏点太多)、二次元、跑车、科技等 ③、趣味九宫格配图:类似朋友圈9张图,中间获取用户自己头像,周围8张图弄点能吸引用户的等 ④、文字秀:微信昵称下标、上标、个性昵称等 运营分析:如果参考以上4点做法,首先你的程序再疫情结束后,不至于直线下滑,最起码能留住一些用户(UI很重要) 个人建议:工具类的好处就是不需要去长时间盯着后台,建议有想法的开发者,可以入门5-10个左右工具类小程序(功能不要相同)。 推广方式:参考本文第四大板块内容 2、返利类 主流返利平台:淘宝、天猫、拼多多、京东、蘑菇街、唯品会、网易考拉,以下参考 [图片] 盈利方式:返利(主)+流量主(辅) [图片] 基础分析:每个人微信里都会有一个或多个微信群是给你们购物优惠券链接的,他们盈利方式主要是靠每个平台的返利,比如淘宝天猫的叫“阿里妈妈”、拼多多的叫“多多进宝”等 运营分析: ①、平台功能:提供所有优惠券、商品返利、代理入驻、提现(个人可做收款码、企业可对接微信支付到零钱) ②、招代理商、可以给代理商(兼职、宝妈)50%以上的返利 ③、除了商品优惠券之外,可以把返利分给一部分给到用户。首先,用户会花更少的钱买到商品;其次,用户买完东西还会赚点小钱,每个月可提现到微信零钱。这样用户会发生裂变,省钱+赚钱。 个人建议:开发者至少有一个类似的返利小程序,每个月只需运营一天,工作内容一是把用户的返利发给用户&代理商,二是自己去各大平台领取每个月的“工资” 推广方式:参考本文第四大板块内容 3、商城类(个人开发者可跳过) 商城类,本人运营的比较少,每天就10-20单左右,卖啥就不做广告了 盈利方式:差价 基础分析:如果自己手里有一些商品低价资源,可以做一个“综合服务商城类目”,然后去试着用广告主去推一下 运营分析: ①、平台功能:砍价、返利、拼团、回购、入驻、积分、抽奖、游戏营销 ②、广告主曝光&点击报价不要最低,也不要最高,理由就是最低的话,80%的钱会给你推到一些质量很差的微信用户,比如我。 ③、对接圈子,虽然圈子刚起步,不确定能不能做大,万一呢? 个人建议:企业一定要有一个自己的商城,哪怕没人买。这种东西怎么说呢,就好比一个企业站,虽然没什么用,但是得放那儿,万一客户要看呢? 推广方式:参考本文第四大板块内容 4、游戏类(非小游戏) 答题、成语、找茬等类似运营的比较多,可自行搜索,不要认为这是游戏,开发者就望而却步,在线教育类目是可以通过的,这个开发者很多都不知道。以下可参考: [图片] 盈利方式:流量主 基础分析:基本所有的模式都是闯关类型,这种类型的小程序,基本都是用户消磨时间用 运营分析:关卡尽量多,入门、初级、中级、高级,高级模式可以做类比循环,形成无限关卡模式,闯关奖励机制,签到机制等。这种类型的小程序比较方便运营,裂变起来也快。 个人建议:裂变模式一定要有,虽然微信会严格把控这方面功能,但是开发者可以做一些技巧,不要让用户强制或者主动去触发,这样微信对开发者还是很友好的。 推广方式:参考本文第四大板块内容 二、小程序开发 有实力的开发者,自己开发,云开发很快,会前端就可以了,没实力的去正规平台买源码,论坛源码也很多,有部分论坛还是嵌入了比特币勒索,自己做好防护。个人建议:开发者能开发尽量自己开发,后期迭代方便,不要像我一样,50多个小程序80%是买现成去运营的。反正各有各的好处,开发者可自行决定,运营者可选择直接购买源码直接上线运营,前提是自己看好功能是不是和自己要的一样。有些SAAS平台的开发者实力还是可以的,支持定制功能。此处不做广告,自行搜索或者询问朋友。 三、广告位位置及利润 开发者的每个页面广告位一定要分开!一定要分开!一定要分开!这样做的目的是为了分析每个广告位的利润,好去做调整,把收益最大化。 失败案例举例:小程序的主页、个人中心页用同一个banner广告位,这样做出来一点好处都没有,后台只能看到banner收益是多少,看不到是哪个页面收益。极端情况,收益全部再首页,个人中心页没有广告收益,这种情况开发者是不知道的,如果把广告位分开,这种情况可以去优化个人页面,或者主页面换成视频banner。广告位分析页面:流量主--数据统计--广告数据--广告指标明细--细分数据 [图片] [图片] 1、很多人表示,疫情期间流量主收入下滑。这个原因不是因为微信调整流量主收益,根本问题是自己的用户质量。举个例子,当你开通流量主之后,你的用户还是这1000个,假如你第一天收益为100,你很开心,1000用户就能赚100,你第二天就放弃推广了,这样的话,你的用户质量是会逐渐下滑,微信方完全可以认定为你这1000人都是自己的号,去刷广告费的。长此以往下去,你的流量主利润会无限趋向于0。举个栗子: [图片] 2、广告位位置一定要合理好看,但是不代表“流氓”,比如全明星代言的某游戏“元宝无限收一刀999”点哪儿哪充值。开发者需要注意的是小程序的质量,需要用户在每个页面停留的时长最起码30秒,这样一个完整的视频广告才能曝光完。 3、banner广告收益是按有效点击计算的。很多人好几千曝光,但是点击只有几个、十几个,这种情况需要不断去优化接入的场景/位置,提高用户点击意愿。个人技巧:banner广告位尽量不要太多,1-2个就可以。尽量多放几个视频广告位,这样曝光也有收益。格子广告没试过,用过都说不好~ 4、激励广告作为流量主最高收益是有一定道理的,用户为了获取某些奖励是必须观看完整的,所以给开发者建议:用户如果可以获得小程序内某些奖励,可以适当多放一些激励广告位。 5、所有的广告位都是根据用户年龄、爱好等参数去调取相应的广告,开发者不需要去考虑 6、广告收益个人认为:激励》视频》插屏》前贴》banner》格子(格子没试过,暂放倒数第一) 四、小程序推广 尽量做成年人主打的小程序,有些开发者觉得好玩儿,做一些儿童益智类的小程序,你是认为儿童有手机,还是认为家长愿意让孩子玩儿手机呢?这个很不解。没有鄙视的意思,也许是情怀吧~~毕竟我做小程序比较俗,就是为了赚钱。 主流推广方式:公众号引流、截流,由于涉及一些不合常规的内容,本文只说常规操作,剩下的自己领悟,或者可以联系我~ 首先小程序的名字至关重要,一个好的名字可以带来无限的流量,再加上裂变功能(邪恶的微笑)。起名字的时候可以用到的工具:搜索小程序-微信指数,查询关键字,尽量找稳定再1000万以上的搜索量,从关键字中摸索自己的小程序名字。这样用户搜索到你的小程序几率会很高~ 1、工具类核心玩儿法(适用于所有小程序推广):文章引流,截取关键字,火爆主题,比如2019年12月19日庆余年全集泄露、2020年疫情(不要发疫情数据内容,要发一些正能量的有内容文章去引流),我阅读过的文章最低的阅读量8000左右,最高的10万+,据说有好几百万的阅读量。如果你的文章写的好,结尾放一个小广告:为防止疫情蔓延,请给您的头像带上口罩~,啪,一个卡片小程序(或二维码),流量自己想~ 推广对象:18-30岁 2、返利类核心玩儿法: ①、可以参考工具类玩儿法 ②、各大微信群、QQ群,去推广,招代理等方式,或者去买一些基础流量,进行裂变,实际运营看下效果,好继续针对用户群体去推广,建立自己的群体系,群内发商品返利链接。微信好友没人?给你举个例子,我这篇文章发完,如果加个我的二维码,最起码能有100人加我,不是我文章写的有多好,是你永远不知道用户有什么样的目的和需求~ 推广对象:18-60岁 3、商城类核心玩儿法 ①、可参考返利类核心玩儿法,拥有自己的客户群体系,发一些自己的商品还是可以的,一定要带分销体系,你懂得~(最高3级,再高就是传销了) ②、广告主、目前效益个人感觉不明显,每次花1000块钱做广告,利润基本没有,和发广告的钱持平,而且用户留存也不是很高,可能是我的商品比较单一等各方面因素吧,不过赚流量还是不错的。 推广对象:18-30岁(以我的商城为例,还需看商城出售的内容) 4、游戏类核心玩儿法(非小游戏) ①、一个好的名字就够了。举例:精选商品橱窗(腾讯官方),微橱窗(我朋友的)。不得不说,这波流量很高,遗憾的是,他不是火爆的游戏类小程序~ [图片] ②、参考工具类玩儿法,文章引流截流 推广对象:18-40岁 五、小程序矩阵 矩阵一定要有,矩阵一定要有,矩阵一定要有,防截流,底配10个小程序。不是纯矩阵,是微信开发规定,每个小程序可以跳转10个小程序,开发者可以利用这个功能去添加自己的矩阵来获取更多的流量收益,保证自己的用户在自己的矩阵圈活动。 [图片] 写这篇文章主要是给大家传授经验,希望小白能学到点东西,入门后的朋友可领悟到更多运营方法,江湖之大,附月账单有缘再见 [图片]
2020-05-25