频道栏目
首页 > 资讯 > 微信公众平台开发 > 正文

关于微信支付,以及返回-1的问题(千万不要慌不要慌!)

17-07-13        来源:[db:作者]  
收藏   我要投稿

1.关于微信支付返回-1的问题

从微信的官方文档来看,支付返回-1的都是ERR_COMM,也就是普通的,常见的错误。普通我倒是没觉得,常见我倒是常常见。
所有人都知道微信支付返回-1无非就是那几个常见的错误,什么sing错误,APP_ID错误什么什么的,但是很多情况都会返回-1,现在我们来一步一步的做排除。

2.一步一步的排除

2.1关于PayReq的配置

msgApi = WXAPIFactory.createWXAPI(RechargeActivity.this, APP_ID,false);
msgApi.registerApp(APP_ID);
PayReq request = new PayReq();
request.appId = json.getString("appid");
request.partnerId = json.getString("partnerid");
request.prepayId = json.getString("prepayid");
request.packageValue=json.getString("package");
request.nonceStr = json.getString("noncestr");
request.timeStamp = json.getString("timestamp");
request.sign = json.getString("paySign");

msgApi.sendReq(request);

appid:平台生成的

partnerId,nonceStr,timeStamp:后台给的

prepayId,sign:后台签名给返回的

packageValue:现在都写成固定值,而且也是微信官方推荐的"Sing=WXPay"

一般情况下req配置这几个就可以完成支付了,这个参数的值都是后台给返回的,可以让后台返回一个字符串自己解析进行赋值

2.2关于WXPayEntryActivity

当wxApi.sendReq(req);以后,会吊起这个类(这个类懒得话可以直接从官方demo中拷贝过来),这个类里的其他代买不要动,只需要动两个地方就可以了
第一:配置好自己的APP_ID
第二:
@Override
public void onResp(BaseResp resp) {
    
    switch (resp.errCode){
        case 0:
            //成功
            break;
        case -1:
            //失败
            break;
        case -2:
            //用户取消
            break;
    }
    
重写onResp方法,在里面坐一些支付结果的处理

2.3关于包名的签名

在微信开发平台的位置上,一定要讲包名和包名的签名写对了,签名就用微信官方的签名工具生成,一定要确保包名与你工程的包名一模一样。
 
最后,其实debug和release版都可以测试微信支付,我个人觉得返回-1和debug和release版本的问题没有多少关系,至少我在处理返回-1的问题上只要能支付成功,debug和release都行,如果不行的话两个版本都不行;还有关于缓存的问题,个人觉得支付的成功与失败和缓存也没有多少关系,至少现在还没有遇到
当你确定上边三处都没有问题的话,就要等你的后台了,因为客户端能做的就有这么多了,最后祝完美解决问题,千万不要焦虑,那样只会适得其反。
相关TAG标签
上一篇:qml与C++的交互
下一篇:linux SPI驱动框架(二) -- 设备驱动
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站