微信支付-Native支付中遇到的问题

用户打开微信扫一扫,扫描商户的二维码后完成支付。这个就是Native支付

准备工作

1-1选择接入模式:普通商户或普通服务商
1-2申请参数:AppID、商户号
1-3配置应用
如果上面的工作都做完了。你需要微信支付 - 在这里有账号,然后登录进去后做API安全配置。
微信支付-Native支付中遇到的问题_第1张图片

其他的可以直接看官方文档:
https://pay.weixin.qq.com/docs/merchant/products/native-payment/preparation.html
1-4下载并配置商户证书
下载的证书里面应该有这四个个文件。一定要保存好。
在这里插入图片描述

Native支付设计指引
线上扫码收银台界面规范,这个页面自己设计
微信支付-Native支付中遇到的问题_第2张图片

Java接入的时候有个商户私钥字符串?

merchantPrivateKey-商户私钥字符串,这个是那个呢?官方文档详细说明了。
商户申请商户 API 证书时,证书工具会生成商户私钥,并保存在本地证书文件夹的文件 apiclient_key.pem 中。私钥也可通过工具从商户的 p12 证书中导出。
官方文档

{“code”:“PARAM_ERROR”,“detail”:{“location”:“body”,“value”:“”},“message”:“输入源“/body/appid”映射到字段“公众号ID”必填性规则校验失败,此字段为必填项”}

微信支付-Native支付中遇到的问题_第3张图片

当秘钥。商户号。应用ID,证书。V3api秘钥都写了的时候。报错了。
原因:这个就是appid没写对或者把appid写成了appId,参数要跟文档一致
解决:我这里使用fastjson,所以在序列化的时候。我给加了一个注解@JSONField(name = “appid”)将参数名改为appid.
@Setter
@Getter
@Builder
public class PayParam {

/**
 * 应用ID
 */
@JSONField(name = "appid")
private String applicationId; // 应用id

/**
 * 商户ID
 */
@JSONField(name = "mchid")
private String merchantId;  // 商户id

/**
 * 商品描述
 */
@JSONField(name = "description")
private String description; //商品描述

/**
 * 订单号
 */
@JSONField(name = "out_trade_no")
private String outTradeNo; //订单号

/**
 * 支付成功回调通知地址
 */
@JSONField(name = "notify_url")
private String notifyUrl; // 支付成功回调通知地址

/**
 * 订单金额信息
 */
private Amount amount; //订单金额信息

}

403,return body = {“code”:“NO_AUTH”,“message”:“此商家的收款功能已被限制,暂无法支付。商家可以登录微信商户平台/微信支付商家助手小程序查看原因和解决方案。”}

原因是长时间没有使用支付、执照过期被停了等。收款功能呗限制了。
微信支付-Native支付中遇到的问题_第4张图片

然后前往操作就可以了。需要管理员身份才可以。大概几天就好了。

微信支付-Native支付中遇到的问题_第5张图片

下面这个是我的个人公共号 只会写Bug的程序猿,大家可以关注一下,一键三连。相互交流学习。

你可能感兴趣的:(微信,微信支付)