版权声明:程序员就应该有开源精神。转载请留链接。 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 获取统一下单