Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

微信支付,支付页面闪退了一下 #115

Closed
xiejibiao opened this issue Sep 27, 2019 · 20 comments
Closed

微信支付,支付页面闪退了一下 #115

xiejibiao opened this issue Sep 27, 2019 · 20 comments

Comments

@xiejibiao
Copy link

微信支付,支付页面闪退了一下,已经再三确认参数,实在找不到原因了,微信登录,微信分享之类的功能都正常,也尝试在微信官方微信支付接口签名校验工具校验过签名,
WeChatb9a416872c51b9502ad82a40b3b389a7

@JarvanMo
Copy link
Member

JarvanMo commented Sep 27, 2019

那你去看看微信支付错误码挨个排查啊,看看-1都可能是什么问题引起的啊。看看你传来的appid签约了没有。这个问题本质是微信支付问题,可以百度微信支付。

@xiejibiao
Copy link
Author

我想问一下,后台统一下单,返回的数据,前端需要二次签名吗?
例如后台返回数据如下:
{
"code": "200",
"message": "请求成功",
"data": {
"return_code": "SUCCESS",
"return_msg": "OK",
"appid": "wx6135b0ad2c35654c",
"mch_id": "1556355751",
"nonce_str": "79uQpQyHFt8QuCO5",
"sign": "6A0A10E65C91F5198CE11183622EF3BE",
"result_code": "SUCCESS",
"prepay_id": "wx27201503246323e60c760b0b1741503200",
"trade_type": "APP",
"timestamp": 1569586503,
"nonceStr": "oj6kes4qb6hdkpb174drltds8n"
}
}

@JarvanMo
Copy link
Member

JarvanMo commented Sep 27, 2019

我不知道啊,我不做后端。后台给什么用什么。

@xiejibiao
Copy link
Author

我一直是做 Java后端的,这套统一下单的方法我一直在用,一直都没有问题,现在统一下单的接口是我做的,flutter 调起微信支付也是我做的,找了无数遍,真的找不到那里有问题,有大佬可以拯救我一下吗?

@xiejibiao
Copy link
Author

微信支付无比的坑(不是 fluwx 的锅),不知道广大程序员还好好活着吗,如果出现调起支付闪一下的情况,不妨试一下把 timeStamp,sign 这两个参数的值调转一下
例如后台统一下单参数返回如下:

{
"code": "200",
"message": "请求成功",
"data": {
"return_code": "SUCCESS",
"return_msg": "OK",
"appid": "wx6135b0ad2c35654c",
"mch_id": "1556355751",
"nonce_str": "DvpvR88NqJ5dTgiq",
"sign": "B793FFF4E64934C4499EAEDD66133732",
"result_code": "SUCCESS",
"prepay_id": "wx27210659270663a7cd23a5e81152701900",
"trade_type": "APP",
"timestamp": 1569589619
}
}
把参数的值调换一下就变成了
fluwx.pay 传参:
timeStamp = 统一下单返回的 sign 字段
sign = 统一下单返回的 timestamp 字段,或者自己创建一个当前的时间戳(秒)
即可

我已经一口老血吐在键盘上................

@csiy
Copy link

csiy commented Sep 29, 2019

你怎么解决的?

@JarvanMo
Copy link
Member

@csiy 上面人家不说了是自己的问题了吗。

@JarvanMo JarvanMo pinned this issue Oct 17, 2019
@YanHe2018
Copy link

把参数的值调换一下就变成了
fluwx.pay 传参:
timeStamp = 统一下单返回的 sign 字段
sign = 统一下单返回的 timestamp 字段,或者自己创建一个当前的时间戳(秒)
即可

换了之后类型不匹配, timeStamp 是Int型的, sign是String类型的.
编译不过

@xiejibiao
Copy link
Author

把参数的值调换一下就变成了
fluwx.pay 传参:
timeStamp = 统一下单返回的 sign 字段
sign = 统一下单返回的 timestamp 字段,或者自己创建一个当前的时间戳(秒)
即可

换了之后类型不匹配, timeStamp 是Int型的, sign是String类型的.
编译不过

你可以修改一下源码的呀

@androidmh
Copy link

@xiejibiao 你还在用这个框架吗- -,我也是一直闪屏,但是我把参数改了以后直接Android端报类型转换异常

@xiejibiao
Copy link
Author

@xiejibiao 你还在用这个框架吗- -,我也是一直闪屏,但是我把参数改了以后直接Android端报类型转换异常

你可以直接修改源码,如果你不知道修改哪里的话,你就把错误截图一下,我看看

@YanHe2018
Copy link

YanHe2018 commented Nov 1, 2019

大佬,你是怎么发现这个BUG的,你太有才了......终于解决了..泪奔...
就修改了一行插件代码...
fluwx_iml.dart
298行
String timeStamp,

@duleigiser
Copy link

出现了类似的问题
注意把所有的参数都检查一遍,对照文档 地址
问题出在后端接口返回数据的时候appid 返回的是公众号id,应该是访问开放平台的应用的id..后端大坑。

@unclexiao
Copy link
Contributor

微信商户文档说的很清楚了,一次交易需要三次个地方签名:统一下单、生成支付数据、校验支付结果。需要四个终端参与,如下图:
image

小程序换成了APP,但原理是一致的,与fluwx插件本身无关,主要是开发者对流程的理解。

具体流程,可以参考我以前的写的文章

@YDJSZY
Copy link

YDJSZY commented Dec 2, 2019

@xiejibiao 你这直接改源码不就说明是这个库的问题了?

@JarvanMo
Copy link
Member

JarvanMo commented Dec 2, 2019 via email

@YDJSZY
Copy link

YDJSZY commented Dec 2, 2019

试了下这库应该没问题的,不需要改源码。他这个改法也不知道为什么适用于他自己

@xiongchengdev
Copy link

测试Demo的后端接口昨天都可以,今天有错了哦

@yangchunboy
Copy link

我也遇到这个问题,解决方案是微信开放平台的微信支付里面安卓的有个应用签名,要和你的当前安卓APP的签名一致才可以调起,致郁怎么获取应用签名,自行百度微信支付获取应用签名,有个APP专门获取签名的

@JoannaGong
Copy link

@xiejibiao 按照你的办法弄好了,太感激了

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests