tsy12321 / PayAndroid

Android端对微信App支付和支付宝App支付的SDK进行二次封装,对外提供一个较为简单的接口和支付结果回调

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

微信支付调用后弹出支付失败

HeJingWei opened this issue · comments

这是我的param:{"appid":"wxc092bce380c0038c","noncestr":"1uT0PHHQwYwRmJPZ0NBGr8NuZQQ2R9Hi","package":"Sign=WXPay","partnerid":"wx20170117174110c14259b59e0856844978","sign":"58E8313401E052505CC0B509F1CD2788","timestamp":"1484646070000","prepayid":"wx20170117174110c14259b59e0856844978"}

APK是打包的,开放平台的签名也是打包后获取的签名,注册文件也是和你描述的一致。不知道为何一调用微信支付,就返回支付失败

微信页面调用起来了么

没有登录的时候出现了登录页面。登录了之后然后直接就弹出支付失败没有出现页面

你少一个参数 “ mch_id”

加上了还是出现支付失败。

你的timestamp单位错了。自己再检查下所有的参数。https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=9_12

我已经把timestamp换成秒了,十位数。其他数据都是后台返回的
现在param改成了:{"appid":"wxc092bce380c0038c","noncestr":"1uT0PHHQwYwRmJPZ0NBGr8NuZQQ2R9Hi","package":"Sign=WXPay","partnerid":"1429654602","sign":"58E8313401E052505CC0B509F1CD2788","timestamp":"1484646070","prepayid":"wx20170117174110c14259b59e0856844978"}
但是依然是支付失败
我是直接将上面这个字符串传入了dopay

  1. 检查下客户端调用api时的wxappid
  2. 检查下包名(applicationid和packageid)和签名
  3. 如果还是调用失败 返回的错误码是什么?ERROR_PAY_PARAM?

这是param:
{
"sign": "58E8313401E052505CC0B509F1CD2788",
"partnerId": "wx20170117174110c14259b59e0856844978",
"packageValue": "Sign=WXPay",
"nonceStr": "1uT0PHHQwYwRmJPZ0NBGr8NuZQQ2R9Hi",
"appId": "wxc092bce380c0038c",
"timeStamp": "1484646070",
"prepayId": "wx20170117174110c14259b59e0856844978"
}

开放平台的包名的确是项目的包名。签名是打包后获取到的。
APPID已经更改成自己项目的APPID。
返回的是ERROR_PAY=3 支付失败。

我是将您的这个项目依赖到自己项目里使用

log有么
image

打断点的结果是:
baseResp.errCode = -1;
baseResp.errStr = null;

image

微信应该已经成功调用起来,回调也是对的。只是回调数据是错的。说明包名 签名都没问题。
建议检查下支付参数中的签名、prepayid的生成这些东西。

但是IOS端调用成功并且成功支付了。

你把完整的传到doPay的参数再发上来

支付成功了。服务器端重新给我返回了一套参数。谢谢你~