【微信支付】调起微信支付,总是显示-1的解决办法

版权声明:程序员就应该有开源精神。转载请留链接。 https://blog.csdn.net/qq_26030147/article/details/86224025

如果你检查过 APPID,检查过商户号,检查过包名,检查过应用签名,依然显示 -1

那么你可以尝试我这种方式

记住下面这句话

https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=8_5

商户服务器生成支付订单,先调用【统一下单API】生成预付单,获取到prepay_id后将参数 再次签名 传输给APP发起支付。

参与签名的字段名为appid,partnerid,prepayid,noncestr,timestamp,package。注意:package的值格式为Sign=WXPay

通俗来讲:服务器要做两次签名

流程:

1、服务器请求“统一下单接口”,得到微信返回的如下数据

2、服务器使用 得到的数据进行再次签名

服务器这时候能拿到的有用的数据有

appid,mch_id,nonce_str,prepay_id

而我们需要

appid,partnerid,prepayid,noncestr,timestamp,package。

其中  partnerid 就是 mch_id

其中 timestamp,是时间戳,单位为秒,记住这一点,获取系统时间后,看情况是不是要 除以 1000,这个是服务器自己获取一下系统时间就行,没有什么刻意的要求。

其中 package = Sign=WXPay,这个是写死的

3、服务器把再次签名后得到的数据传给我们

使用就可以了

重点:

不用后台人员我们也可以调用微信支付。

只要我们知道 后台人员设置的 key就行。

然后使用

https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=20_1

自己生成sign

postMan  获取统一下单

猜你喜欢

转载自blog.csdn.net/qq_26030147/article/details/86224025
今日推荐