关于微信支付

final String tv_paytype;
api = WXAPIFactory.createWXAPI(BuyActivity.this, APP_ID, false);
api.registerApp(APP_ID);
if (paytype.equals("1")) {
    //纯微信
    paytype = "4";
    tv_paytype = "微信支付";
} else {
    //都有
    paytype = "5";
    tv_paytype = "微信支付+K";
}
BigDecimal b = new BigDecimal(payprice);
double payprice1 = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
OkGoUtils.getInstance().getOrderParameterW(MyApplication.CallResult.appkey, couponNumber, youhuijia, bi, MyApplication.CallResult.email, rowsBean.id + "", rowsBean.name, paytype, MyApplication.CallResult.phone, new Double(Double.valueOf(payprice1 + "") * 100).intValue() + "", "", rowsBean.personalprice + "", "", MyApplication.CallResult.id + "", MyApplication.CallResult.username, new OkGoUtils.HttpEngineListener() {


    @Override
    public void onSuccess(String s1, HashMap<String, Object> s) {

        Log.e("aaaaa", s1);

        WxPayBean wxPayBean = parseJsonToBean(s1, WxPayBean.class);
        if (wxPayBean.result == 0) {
            SortedMap<String, Object> params = new TreeMap<String, Object>();
            wxdata = wxPayBean.data;
            api = WXAPIFactory.createWXAPI(BuyActivity.this, null);
            api.registerApp(APP_ID);
            // 检测是否有微信软件
            if (isWeixinAvilible(BuyActivity.this)) {
                PayReq request = new PayReq();

                request.appId = APP_ID;

                request.nonceStr = wxdata.nonce_str;
                request.packageValue = "Sign=WXPay";
                request.partnerId = "*******";

                request.prepayId = wxdata.prepay_id;
                Log.e("aaaaa", "wxdata.prepay_id:" + wxdata.prepay_id);

                request.timeStamp = (System.currentTimeMillis() / 1000) + "";

                Log.e("aaaaa", "sj" + request.timeStamp);
                Log.e("aaaaa", "nonce_str" + wxdata.nonce_str);
                params.put("appid", request.appId);
                params.put("partnerid", request.partnerId);	//商户号
                params.put("prepayid", request.prepayId);
                params.put("package", request.packageValue);
                params.put("noncestr", request.nonceStr);
                params.put("timestamp", request.timeStamp);
                String sign = createSign(params);
                request.sign = sign;
                request.extData = "app data";
                Log.e("aaaaa", "wxdata.sign:" + request.sign);
                SharedPreferences order = getSharedPreferences("order", 0);
                order.edit().putString("name_product", wxdata.name_product).commit();
                order.edit().putString("timestamp1", wxdata.timestamp1).commit();
                order.edit().putString("trade_no", wxdata.trade_no).commit();
                order.edit().putString("style_pay", tv_paytype).commit();
                order.edit().putString("useyouhui", discountid).commit();

                String string = Utils.Object2String(rowsBean);
                order.edit().putString("aa", string);
                order.edit().commit();
                api.sendReq(request);
                finish();
            } else {
                ToastUtil.show(BuyActivity.this, "亲,您还没有安装微信");
            }
        }


    }

    @Override
    public void onErroe(okhttp3.Call call, Exception e) {

    }


});
 
获取预支付订单后,还要对参数进行MD5签名(服务端和本地做应该是都可以的),否则返回-1会造成支付失败。其他的参数按照文档来就可以了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值