起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1419|回复: 2

[结贴] 我需要修改微信支付插件代码,需要注意些什么?

[复制链接]

25

主题

76

帖子

226

积分

中级会员

Rank: 3Rank: 3

积分
226
QQ
发表于 2017-1-8 21:07:27 | 显示全部楼层 |阅读模式
我们接的是第三方支付 预支付订单是在服务器生成的 返回过来可以调起微信支付的参数 签名什么的都齐全 修改了 插件的weixin.js
sendPayReq : function(prepayId,noncestr,timestamp,partnerid,sign, onSuccess, onError) {
        exec(onSuccess, onError, "Weixin", "sendPayReq", [ {
            "prepayId" : prepayId,
            "noncestr":noncestr,
            "timestamp":timestamp,
            "partnerid":partnerid,
            "sign":sign
        } ]);
    }
还修改了安卓的java代码
protected boolean sendPayReq(JSONArray args) {
        Log.i(TAG, "pay begin");
        try {
            JSONObject prepayIdObj = args.getJSONObject(0);
            String prepayId = prepayIdObj.getString("prepayId");
            String nonceStr = prepayIdObj.getString("nonceStr");
            String timeStamp = prepayIdObj.getString("timeStamp");
            String partner_id = prepayIdObj.getString("partnerid");
            String sign = prepayIdObj.getString("sign");
            sendPayReq(prepayId,nonceStr,timeStamp,partner_id,sign);
        } catch (JSONException e) {
            e.printStackTrace();
            currentCallbackContext.error("参数错误");
            return false;
        }
        return true;
    }

private PayReq genPayReq(String prepay_id,String nonceStr,String timeStamp,String partnerid,String sign) {
        PayReq req = new PayReq();
        req.appId = app_id;
        req.partnerId = partnerid;
        req.prepayId = prepay_id;
        req.packageValue = "Sign=WXPay";
        req.nonceStr = nonceStr;
        req.timeStamp = timeStamp;

        /*List<NameValuePair> signParams = new LinkedList<NameValuePair>();
        signParams.add(new BasicNameValuePair("appid", req.appId));
        signParams.add(new BasicNameValuePair("noncestr", req.nonceStr));
        signParams.add(new BasicNameValuePair("package", req.packageValue));
        signParams.add(new BasicNameValuePair("partnerid", req.partnerId));
        signParams.add(new BasicNameValuePair("prepayid", req.prepayId));
        signParams.add(new BasicNameValuePair("timestamp", req.timeStamp));*/

        req.sign = sign;
        return req;
    }

private void sendPayReq(String prepayId,String nonceStr,String timeStamp,String partnerid,String sign) {
        api.registerApp(app_id);

        final PayReq req = genPayReq(prepayId,nonceStr,timeStamp,partnerid,sign);
        cordova.getThreadPool().execute(new Runnable() {
            @Override
            public void run() {
                Boolean sended = api.sendReq(req);
                if (!sended) {
                    currentCallbackContext.error("发送支付请求失败");
                }
            }
        });
    }
还有哪些地方需要修改的啊? 请大神指教
QQ:236468070 欢迎学习交流
发表于 2017-1-9 13:33:40 | 显示全部楼层
如果想修改原生代码!需要使用原生开发的方式才可以进行调试!
你可以试试源码导入到原生开发的方式,调试看下,代码运行过程中是否符合预期
肉眼看代码比较费劲

http://docs.wex5.com/wex5-studio-question-list-2013
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

25

主题

76

帖子

226

积分

中级会员

Rank: 3Rank: 3

积分
226
QQ
 楼主| 发表于 2017-1-9 21:03:00 | 显示全部楼层
liangyongfei 发表于 2017-1-9 13:33
如果想修改原生代码!需要使用原生开发的方式才可以进行调试!
你可以试试源码导入到原生开发的方式,调试 ...

谢谢  我已经修改好了 ,测试成功调起微信支付  就只需要修改我发上去的那几个地方 之前是因为app签名的问题所以调不起 现在可以结贴了
QQ:236468070 欢迎学习交流
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-5-6 07:19 , Processed in 0.058271 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表