微信支付启动时总是返回-1问题解决方法

很多人在开发的时候都遇到问题:为什么签名、appid都是正确的,但是运行应用的时候总是返回-1,提示签名错误。到底为什么呢?


微信支付申请有两种支付方式:一种是公众号支付,另一种是App支付,而微信支付申请通过后会发送邮件到你的账户,如果你申请了公众号支付和app支付的话你将会收到两封邮件,截图如下:

两封微信支付审核通过的邮件想孪生兄弟,如果不仔细看的话乍一看是一样的,注意画红框的地方是不一样的。是的,我就看错了,我申请了两个微信支付,发来了两封邮件,因为间隔了几天才收到,错误的把公众号支付的appid当作应用的appid填入进去了,后来打开应用之后就是报错,返回值-1。因为用了错误
appid、 mchId、partnerKey 去签名,所以导致了签名错误,返回值是-1。如果你确定你的应用签名没有问题的话,但启动应用还是返回-1错误的话,请检查一下你的邮件。

公众号APPID:使用与公众号内的支付。
应用APPID:适用于手机APP的支付。

另外微信公众号支付和微信app支付申请时都会分配不同的商户号,密钥问题需要到各自的商户号里面自行设置。

如果以上配置正确的话,使用官方实例云编译后可以进行微信支付。如果启动的时候返回错误代码:1,请检查你的必填参数是否正确,还有您的订单号,每次提交的订单号不能重复,如果重复也会返回1

 

转载自:

http://community.apicloud.com/bbs/forum.php?mod=viewthread&tid=17352&page=1#pid140079

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ASP.NET Core Web 可以通过微信支付提供的 API 进行扫码的接入。下面是实现步骤: 1. 申请微信支付账号和开通扫码功能。在申请过程中,需要提供商户信息和开户银行信息等。 2. 在 ASP.NET Core Web 中引入微信支付 SDK,可以通过 NuGet 包管理器安装。 ``` Install-Package Senparc.Weixin.MP.Pay ``` 3. 在 ASP.NET Core Web 项目中添加配置文件 appsettings.json,用于存储微信支付相关的配置参数,如下所示: ``` { "WeixinPay": { "MchId": "微信支付分配的商户号", "AppId": "应用ID", "Key": "商户支密钥" } } ``` 4. 在 ASP.NET Core Web 项目中创建一个控制器,用于处理扫码的请求。控制器代码如下所示: ``` [Route("api/[controller]")] [ApiController] public class WeixinPayController : ControllerBase { private readonly IOptions<WeixinPayOptions> _options; public WeixinPayController(IOptions<WeixinPayOptions> options) { _options = options; } [HttpPost("unifiedorder")] public async Task<IActionResult> UnifiedOrder([FromBody]UnifiedorderRequest request) { // 设置请求参数 var data = new TenPayV3UnifiedorderRequestData( body: request.Body, outTradeNo: request.OutTradeNo, totalFee: request.TotalFee, spbillCreateIp: request.SpbillCreateIp, notifyUrl: request.NotifyUrl, tradeType: "NATIVE", productId: request.ProductId ); // 调用统一下单 API 进行支 var result = await TenPayV3.UnifiedorderAsync(_options.Value.AppId, _options.Value.MchId, _options.Value.Key, data); // 处理返回结果 if (result.ReturnCode == "SUCCESS" && result.ResultCode == "SUCCESS") { // 生成二维码图片 var url = result.CodeUrl; var qrCode = new QRCodeGenerator().CreateQrCode(url, QRCodeGenerator.ECCLevel.Q); // 返回二维码图片 return File(qrCode.GetGraphic(20), "image/png"); } // 返回错误信息 return BadRequest(result.ReturnMsg); } } ``` 5. 创建一个模型类,用于保存扫码的请求参数。 ``` public class UnifiedorderRequest { public string Body { get; set; } public string OutTradeNo { get; set; } public int TotalFee { get; set; } public string SpbillCreateIp { get; set; } public string NotifyUrl { get; set; } public string ProductId { get; set; } } ``` 6. 在 Startup.cs 文件中添加微信支付相关的配置,代码如下所示: ``` services.Configure<WeixinPayOptions>(Configuration.GetSection(nameof(WeixinPayOptions))); ``` 7. 启动 ASP.NET Core Web 项目,使用 Postman 或其他工具向接口发送扫码的请求,请求参数包括:商品描述、商户订单号、总金额、终端 IP、通知地址、商品 ID 等。 ``` POST /api/weixinpay/unifiedorder HTTP/1.1 Host: localhost:5000 Content-Type: application/json { "body": "测试商品", "outTradeNo": "123456", "totalFee": 1, "spbillCreateIp": "127.0.0.1", "notifyUrl": "http://localhost:5000/api/weixinpay/notify", "productId": "123456" } ``` 8. 如果请求成功,将返回一个二维码图片,可以使用扫码工具扫描该二维码进行支。如果请求失败,将返回错误信息。 以上就是 ASP.NET Core Web 支功能接入微信扫码的实现步骤。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值