微信支付SDK的使用

在此记录一下微信支付sdk的使用
  • 使用微信支付SDK理所应该去看官方文档,按步骤一步步来就好了,怎么还需要写博客呢?
  • 答案是因为使用支付SDK时,遇到了很多弱智的坑,希望后来人不要和我一样SB就好。
  1. 首先还是需要按照官方文档一步步的查看一遍流程。
  2. 支付流程文档查看这里流程文档,那个是叫时序图吧……
  3. 坑在步骤3,正常流程是调起微信的所有参数都由服务端生成,但是这个生成规则还是需要注意的。

        IWXAPI api = WeixinSDK.getInstance().getWxapi();
        PayReq request = new PayReq();
        request.appId = [微信开放平台申请的AppId];
        request.partnerId = [微信支付需要的商户ID];
        request.prepayId = [服务器接口请求微信后台获取到的prepayId];
        request.packageValue = "Sign=WXPay";//这是个固定字符串,就是它!

        Random random = new Random();
        String nonceStr = MD5.hexdigest(String.valueOf(random.nextInt(10000)).getBytes());
        String packageValue = "Sign=WXPay";
        String timeStamp = String.valueOf(System.currentTimeMillis() / 1000);

        String key = [在微信开放平台分配的密钥key];
        String str = "appid=" + [微信开放平台申请的AppId] + "&noncestr=" + nonceStr + "&package=" + packageValue + "&partnerid=" + [微信开放平台分配的商户partnerId] + "&prepayid=" + weixinOrderResult.prepay_id + "&timestamp=" + timeStamp;
        String str1 = str + "&key=" + key;
        String sign = MD5.hexdigest(str1).toUpperCase();

        request.nonceStr = nonceStr;
        request.timeStamp = timeStamp;
        request.sign = sign;
        api.sendReq(request);

一定要注意nonceStr、packageValue、sign 这三个参数的生成规则,尤其是 sign 这个参数生成前拼接的那个串一定要注意!!!!!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值