常见错误 强烈建议阅读完再搞避免踩坑多花冤枉钱

1、该ID未完成微信认证,请确认后再试
完成appid的认证,微信服务号为企业认证,开放平台为开发者认证。
2、你输入的APPID认证主体名称与实际认证主体不一致,请检查修改后重试
检查开放平台或者公众平台认证主体和商户号主体是否一致。
3、不支持关联该类型的appID
微信Native支付(PC网站)不能用开放平台的appid.
微信Native支付的appid 必须为 微信服务号 即认证主体为企业的公众号。
微信Native支付的appid 必须为微信服务号 即认证主体为企业的公众号。
微信Native支付的appid 必须为微信服务号即认证主体为企业的公众号。
4、修改支付时提示的收款方名称
收款方名称要修改商户号里面的商户简称

微信Native支付申请流程

1、 申请微信商户号
2、 申请微信企业服务号并且认证,拿到appid
3、 将服务号的appid与商户号绑定
4、申请证书key之类的

微信Native支付接入

java开发 推荐使用IJPay
1、引入ijpay的库

<dependency><groupId>com.github.javen205</groupId><artifactId>IJPay-WxPay</artifactId><version>2.7.3</version>
</dependency>

2、创建请求需要的参数类。配置信息在application中

public class WxPayConfig {/*** 设置微信公众号或者小程序等的appid.*/@Value("${wx.pay.appId}")private String appId;/*** 微信支付商户号.*/@Value("${wx.pay.mchId}")private String mchId;/*** 微信支付商户密钥.*/@Value("${wx.pay.mchKey}")private String mchKey;/*** 异步回调地址*/@Value("${wx.pay.notifyUrl}")private String notifyUrl;
}

3、配置信息application.properties

wxpay.appId=申请的服务号的appid
wxpay.appSecret=申请的服务号的appSecret
wxpay.mchId=申请的商户号
wxpay.partnerKey=商户号的partnerKey
wxpay.certPath=商户号p12证书
wxpay.domain=扫码支付完成的异步校验通知url

4、统一下单

  Map<String, String> params = UnifiedOrderModel.builder().appid(wxPayConfig.appId).mch_id(wxPayConfig.mchId).nonce_str(WxPayKit.generateStr()).body("赵汤圆支付").attach("赵汤圆支付踩坑").out_trade_no(createOrderRequestDto.getId()).total_fee(total_fee).spbill_create_ip(ip).notify_url(wxPayConfig.domain).trade_type(TradeType.NATIVE.getTradeType()).build().createSign(wxPayConfig.partnerKey, SignType.HMACSHA256);String xmlResult = WxPayApi.pushOrder(false, params);Map<String, String> result = WxPayKit.xmlToMap(xmlResult);String returnCode = result.get("return_code");String returnMsg = result.get("return_msg");System.out.println(returnMsg);if (!WxPayKit.codeIsOk(returnCode)) {// 异常状态判断 替换成你自己的throw new ServiceException(ErrorTypeEnum.RECHARGE_ERROR);}String resultCode = result.get("result_code");if (!WxPayKit.codeIsOk(resultCode)) {// 异常状态判断 替换成你自己的throw new ServiceException(ErrorTypeEnum.RECHARGE_ERROR);}//生成预付订单successString qrCodeUrl = result.get("code_url");try {// 生成下单的二维码,返回给客户端显示ByteArrayOutputStream out = new ByteArrayOutputStream();QrCodeKit.encodeOutPutSteam(out, qrCodeUrl, BarcodeFormat.QR_CODE,3, ErrorCorrectionLevel.H, "png", 200, 200);BASE64Encoder encoder = new BASE64Encoder();imgBase64Str = encoder.encode(out.toByteArray());} catch (IOException e) {e.printStackTrace();}return imgBase64Str;```5、异步通知```javaString xmlMsg = HttpKit.readData(request);logger.info("支付通知=" + xmlMsg);Map<String, String> params = WxPayKit.xmlToMap(xmlMsg);String returnCode = params.get("return_code");// 注意重复通知的情况,同一订单号可能收到多次通知,请注意一定先判断订单状态// 注意此处签名方式需与统一下单的签名类型一致if (WxPayKit.verifyNotify(params, wxPayConfig.partnerKey, SignType.HMACSHA256)) {if (WxPayKit.codeIsOk(returnCode)) {// 更新订单信息// 发送通知等String out_trade_no = params.get("out_trade_no");String total_fee = params.get("total_fee");Map<String, String> xml = new HashMap<String, String>(2);xml.put("return_code", "SUCCESS");xml.put("return_msg", "OK");return WxPayKit.toXml(xml);}}

微信Native支付申请接入流程-避免踩坑指南相关推荐

  1. 微信APP支付申请配置流程

    微信APP支付申请配置流程 APP支付申请步骤 微信APP支付配置 APP支付:用户在APP内点击后跳转到微信内完成支付. APP支付申请步骤 注册开放平台账号 进入微信开放平台注册:https:// ...

  2. 为微信开发填坑:微信网页支付的开发流程及填坑技巧

    GitChat 作者:极笔北客 原文:为微信开发填坑:微信网页支付的开发流程及填坑技巧 关注微信公众号:「GitChat 技术杂谈」 一本正经的讲技术 [不要错过文末彩蛋] 小程序作为微信之父张小龙钦 ...

  3. 为微信开发填坑:微信网页支付的开发流程及填坑技巧 1

    GitChat 作者:极笔北客 原文:为微信开发填坑:微信网页支付的开发流程及填坑技巧 关注微信公众号:「GitChat 技术杂谈」 一本正经的讲技术 [不要错过文末彩蛋] 小程序作为微信之父张小龙钦 ...

  4. 美团外卖正向流程对接踩坑指南

    正向流程中的踩坑点 美团商户端自动接单 美团商户端有开启自动接单的设置,如果开启自动接单后会出现下面两种情况 下单后商户接单,美团不会向推送接单推送订单,但是会推送商家确认订单消息. 针对这种情况,需 ...

  5. 微信V3APP支付2022,全网最新+踩坑(已实现)

    前言 对于controller层 ,如果有几种支付类型,我们可以这样定义.

  6. 微信公众号支付申请配置流程

    微信公众号支付申请配置流程 公众号支付申请步骤 微信公众号支付配置 公众号支付:用户在微信内进入商家H5页面,在页面内完成支付. 公众号支付申请步骤 注册公众账号(政府或媒体订阅号.服务号才能接入支付 ...

  7. 微信APP支付申请方法

    2019独角兽企业重金招聘Python工程师标准>>> 目前,全国各大商场.超市.便利店.餐饮业.旅游业.医疗业等等都接入了微信支付,并开通微信公众号线上商城做起了线上推广和销售.微 ...

  8. 微信Native支付简单实现

    文章目录 微信Native支付简单实现 微信支付提供的几种对接方式 Native方式 JSAPI支付 APP支付 H5支付 小程序支付 正文开始 二维码生成 代码示例:源码才是做好的API 微信Nat ...

  9. SpringBoot集成支付宝沙箱手机网站支付详细流程和踩坑分享

    描述 本文主要讲解SpringBoot集成支付宝沙箱手机网站支付,即网页点击按钮发起支付,跳转到沙箱app付款 由于其他博客的流程大多笼统,有时候并不能找到正确的集成方式,本文尽可能详细的阐述付款,异 ...

  10. 微信Native支付V3版本

    微信Native支付V3版本 微信支付在开发之前也是需要进行商户接入的 接入文档链接: https://pay.weixin.qq.com/index.php/core/home/login Nati ...

最新文章

  1. 谈谈网站设计时图片的使用
  2. 【渝粤教育】电大中专会计电算化_1作业 题库
  3. java 写传奇游戏吗,文字版传奇游戏
  4. 那些年删过的库,跑过的路,你从中找到解决方法了吗?
  5. 转载-jmeter进阶功能
  6. Python实现最小二乘法曲线拟合
  7. 数据分析09|数据转换
  8. 基于 Si446x 上的 RSSI 测量的自动操作
  9. 微信小程序点击图片预览真机无法显示的问题
  10. MyEclipse 10.5下载地址及破解方法
  11. 9.PMAC上位机-上位机发送指令
  12. 录制iPhone屏幕
  13. unity3D 新建android apk
  14. 亚马逊商城评论数据分析与可视化(KNN预测评分,绘制云图)
  15. hdu4514 并查集+树直径
  16. 2022年最新网络与数据安全法规政策、国标、报告合集(141份)
  17. 鸟哥的Linux私房菜基础学习篇 第5章的重点探索
  18. 侠盗猎车手:圣安地列斯 中文版
  19. 2020-09-28-浙江大学软件学院面试有感
  20. 什么是晶闸管,简述晶闸管的工作原理

热门文章

  1. 企业级代码静态测试工具Helix QAC——从应用层级保证代码质量和安全
  2. 为什么Eclipse Iceoryx使用Helix QAC
  3. Chrome 截取长图
  4. 微信小程序实现tab切换(可滑动切换)
  5. Linux ERROR: configuration failed for package ‘rgeos’
  6. 褚霸:阿里开源四部曲,从拥抱到回报
  7. 域服务器系统建设方案,AD域及Exchange部署专项方案.doc
  8. S32K NVIC配置(以外部中断为例)
  9. sdk寄存器地址linux,S32K SDK使用详解之PinSettings组件配置与使用详解(S32K1xx PORT 和GPIO模块)...
  10. 微信分享等配置,微信授权失败讲解