当前位置: 首页 > 工具软件 > wxpay-sdk > 使用案例 >

微信支付SDK的使用

卫志泽
2023-12-01

在此记录一下微信支付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 这个参数生成前拼接的那个串一定要注意!!!!!

 类似资料: