最近接手一个小程序需求,小程序可以自己进行注册,想查看哪个参数很方便,但是需求方那边需要他们自己注册商户信息,要用到的商户信息就需要自己跟需求方对接了,里面需要进行很多关联操作。把对接过程中遇到的问题以及需要注意的点都简单记录一下,希望对小程序支付遇到同样问题的同学有所帮助。
    首先需要注册小程序,这个比较简单,这里不做说明,需要注意一下两个非常重要的参数:小程序APPID和AppSecret(小程序密钥),前者是创建小程序之后系统会自动创建,后者是需要手动进行生成的,并且手动生成之后需要自己单独记一下,如果找不到了只能进行重置,系统不会进行保存的。

    下面进入到开发阶段,简单说一下涉及到的信息.
    1.需要用到的参数信息以及查看路径
        1.1小程序appid(小程序账号中查看)
        1.2AppSecret小程序密钥(小程序账号中查看)
        1.3商户号(商户平台中查看)

1.4商户秘钥(商户平台中查看,需要商户进行手动记录,系统不会记录,忘记只能重置)

1.5商户证书(商户平台中查看,文末附参考链接)
    2.支付相关代码
    2.1此处使用封装好的支付依赖weixin-java-pay:

          <dependency><groupId>com.github.binarywang</groupId><artifactId>weixin-java-pay</artifactId><version>3.5.0</version></dependency>

2.2支付配置类伪代码
    应用启动时读取支付配置文件相关信息并创建WxPayService对象(此处省略配置文件):

@Configuration
@RequiredArgsConstructor
@ConditionalOnClass(WxPayService.class)
public class WxPayConfiguration {@Beanpublic WxPayService wxMpPayService() {WxPayConfig payConfig = new WxPayConfig();payConfig.setAppId("小程序APPID");payConfig.setMchId("商户id");payConfig.setMchKey("商户秘钥");payConfig.setKeyPath("商户证书路径,商户证书一般放在resource下面,参考路径:classpath:apiclient_cert.p12");payConfig.setSignType(WxPayConstants.SignType.MD5);WxPayService wxPayService = new WxPayServiceImpl();wxPayService.setConfig(payConfig);return wxPayService;}
}

2.3统一下单伪代码

  @PostMapping("/pay")@SneakyThrowspublic ResponseEntity<WxPayMpOrderResult> pay(@RequestBody PayParam payParam) {// 省略业务代码,封装支付请求信息WxPayUnifiedOrderRequest orderRequest = new WxPayUnifiedOrderRequest();// 设置支付回调地址orderRequest.setNotifyUrl("设置支付回调地址");// 设置支付类型orderRequest.setTradeType(WxPayConstants.TradeType.JSAPI);// 设置当前登录用户的唯一标识:openIdorderRequest.setOpenid(openId);// 调用封装的wxPayService调用支付接口wxPayService.createOrder(orderRequest)// 省略业务代码}

如果配置文件信息正确并相关授权已配置则可以进行正常支付并回调.
3.开发中问题汇总
    3.1 APPID传公众号APPID还是小程序的APPID?
    小程序支付下单api接口文档地址:https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter3_5_1.shtml,
特别说明一下APPID为微信旗下产品的唯一id,这里对接的小程序支付,所以这里的APPID为小程序的APPID.这里有个小插曲,找支付文档的时候看的是:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_1,里面明确标注的APPID为公众号的APPID,误以为所有的微信支付都是基于公众号的APPID.这是个大坑,希望避免!这个也是appid和mch_id不匹配出现频率最高的原因。

3.2 网上帖子翻遍之后如何接入人工客服
    登录小程序账号中按照标注位置进行操作(其他页签下找不到人工客服入口):
![在这里插入图片描述](https://img-blog.csdnimg.cn/f706abcaa2824a7c8854a1cd4fa96d27.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Y2W5p-054Gr55qE5bCP5LyZ5a2Q,size_20,color_FFFFFF,t_70,g_se,x_16
小程序的在线人工客服一般回答非技术类的审核问题,对于技术问题需要官方协助定位的,需要从社区中进行发帖求助,回复的速度还是比较快的,应该是有一部分技术支持会时刻关注最新发帖动态。
    3.3 商户号绑定小程序
    下单接口中返回报文:appid和mch_id不匹配,需要从商户平台以及小程序账号中检查是否进行关联.首选看商户平台中是否关联了小程序,如果没有关联需要手动进行添加.添加路径:商户平台–产品中心–appid授权管理.

    绑定成功之后商品平台页面截图:

    小程序账号下关联的商户信息截图(商户平台提交关联申请之后小程序账号中允许授权会立即同步):

微信商户账号申请参考链接:https://www.yuntian.biz/support/112.html
微信商户证书申请流程参考链接:https://www.yw-jz.com/h-nd-1285.html

小程序支付:appid和mch_id不匹配采坑实录相关推荐

  1. 微信小程序支付接口报错:appid和openid不匹配

    一.接口地址 二.接口几个字段讲解 三.报错的原因 四.解决方法 一.接口地址 地址在 -> 微信官方文档 -> 微信支付 -> 小程序支付 -> 统一下单 对比 V2-旧版, ...

  2. u8 api开发报类型不匹配错误_小程序云开发入门学习,小程序支付功能常见错误汇总及解决方案...

    近期有比较多的同学反映,使用云开发调取微信支付时,老是提示订单不存在.今天就把这几天大家遇到的问题统一汇总到这里. 一,订单不存在的错误 如下图所示的错误. 通常看到这个错误时,最好去看下上面看下,有 ...

  3. 微信支付服务商,![CDATA[sub_mch_id与sub_appid不匹配],微信小程序支付,签名错误,CDATA[签名错误]解决方法,支付签名验证失败

    微信支付服务商,微信小程序支付,签名错误,CDATA[签名错误]解决方法 1:服务商和普通的商户支付在代码上没有太大差异(不同的是上传的参数,而且微信支付服务商参数上比较难找,官方文档又太简洁,所以很 ...

  4. 微信小程序支付错误提示“商户号mch_id或sub_mch_id不存在”

    微信小程序支付错误提示"商户号mch_id或sub_mch_id不存在" 今天做微信小程序支付遇到这样一个问题,支付接口返回错误信息出显示"商户号mch_id或sub_m ...

  5. 支付时报错java.lang.RuntimeException: 【微信统一支付】发起支付, returnCode != SUCCESS, returnMsg = appid和mch_id不匹配

    1.问题 Hibernate: select ordermaste0_.order_id as order_id1_1_0_, ordermaste0_.buyer_address as buyer_ ...

  6. 微信服务商-小程序支付-商户传入的appid参数不正确,请联系商户处理

    报错:商户传入的appid参数不正确,请联系商户处理. 处理方式: 1. 2.需要在商户号,配置小程序的APPID https://pay.weixin.qq.com/static/pay_setti ...

  7. 调用支付jsapi缺少参数:total_fee_小程序支付问题怎么解决?

    微信小程序开发的过程一定会遇到各种问题,最让人棘手的就是支付问题,因为没有支付做商城类似的小程序就没有办法完成最关键的一步.那么支付失败到底什么原因呢?一下子收集了几个错误类似,希望对你有帮助: No ...

  8. 加入域时出现以下错误 登陆失败 该目标账户名称不正确_微信支付踩坑合集:微信小程序支付失败是什么原因?持续更新...

    微信小程序开发的过程一定会遇到各种问题,最让人棘手的就是支付问题,因为没有支付做商城类似的小程序就没有办法完成最关键的一步.那么支付失败到底什么原因呢?一下子收集了几个错误类似,希望对你有帮助: No ...

  9. php小程序支付notify,PHP 小程序支付

    小程序端 调用wx.requestPayment,所需要的参数都从服务端获取 服务端小程序需要的参数: 小程序端需要的参数需要从服务端获取,这样签名才能一致/** * 随机数 * @param $le ...

  10. 微信支付踩坑合集:微信小程序支付失败是什么原因?

    微信小程序开发的过程一定会遇到各种问题,最让人棘手的就是支付问题,因为没有支付做商城类似的小程序就没有办法完成最关键的一步.那么支付失败到底什么原因呢?一下子收集了几个错误类似,希望对你有帮助: No ...

最新文章

  1. 标记一下 两个Google Chrome 源码研究的网站
  2. ios图文详情加载html_前端项目009 Vue 信息分享系统 商品列表、详情
  3. 2022年中国CRM行业研究报告
  4. CSE lab7 RPC 攻略
  5. MFC中使用TAB Control控件
  6. 《量化金融R语言初级教程》一2.6 如果方差不够用
  7. 神策数据推荐系统:中文关键词提取新模型
  8. burp放包_详解BurpSuite软件 请求包 HTTP (9.23 第十天)
  9. 局域网SDN技术硬核内幕 二 从局域网到互联网
  10. Php 实现在文档只读功能,如何将只读文档变成可编辑模式?
  11. 家庭软路由方案:3865U + ESXi6.7(OpenWRTiKuai) + 花生壳蒲公英P5 + 领势MX5300 + 群辉1621 做到国内国外分流、内网设备流控、内网穿透、异地组网
  12. angular7中使用jsonViewer
  13. HttpCore和HttpClient
  14. G003-182-18组
  15. 使用ATL创建简单ActiveX控件(一) —— 创建ATL项目
  16. 对话驴评网CEO崔继蓉:在线旅游的前途在移动端
  17. 结绳中文编程入门手册
  18. 机器人建模中移动关节如何建立坐标系_机器人工程师进阶之路(二)6轴机械臂D-H法建模...
  19. NT98520/NT98525(典型)/NT98528参数对比
  20. MacRansom:首款以RaaS服务形式出现的Mac勒索软件

热门文章

  1. C语言统计多个闰年,C语言统计闰年
  2. 目前国内的跨境收款通道有哪些还不错的?
  3. 阵列卡服务器装linux,Linux网卡阵列卡安装
  4. BMS模块相关的JTS-1108HL评测及BMS网络滤波器规格
  5. 《Adobe Photoshop CS4中文版经典教程》目录—导读
  6. 快速指数(快速幂)/模指数运算代码模板
  7. (2019)基于传感器融合的机会主义占用计数估计:一个案例研究
  8. 你想成为什么级别的程序员?
  9. 路由器当交换机用的设置方法
  10. 周杰伦的歌里都有些啥?