微信支付和集成微信支付的坑

  1. 微信demo里面的测试接口用不了,没办法测了.想要跑起来,只要用他自带的签名就好了.不能用自己.

微信准备配置

现在开始配置微信相关的东西吧
在微信开发平台注册好相关应用,交了该交的钞票.等到
这里写图片描述
你就可以开始测试你的微信支付代码了
这里写图片描述
应用签名用的是keyston的md5值是小写无冒号的 查看方式有

keytool - list - keystore xxxx.keystore

或者使用微信提供的工具
需要注意的是你调试的签名和发版的是不一样的要注意修改保证你跑的时候二个配置是一样的

微信代码工程的配置

  • 把demo里面的架包拿到你自己的工程
  • WXPayEntryActivity 这个类也需要拿到你自己的工程里面
    • 需要注意的是这个类必须放在你当前应用的包名.wxapi包下面

声明权限

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

<activity
 android:name=".wxapi.WXPayEntryActivity"
   android:exported="true"
   android:launchMode="singleTop"/>

之后你就可以调你们后台写的支付接口了.获得后台返回的数据后你需要

//注册到微信上面
api = WXAPIFactory.createWXAPI(this, Constants.APP_ID, true);

api.registerApp(Constants.APP_ID);

 private void sendPayRequest() {
        PayReq req = new PayReq();
        req.appId = wechatPayInfo.getAppid();
        req.partnerId = wechatPayInfo.getPartnerid();
        req.prepayId = wechatPayInfo.getPrepayid();//预支付订单号
        req.nonceStr = wechatPayInfo.getNoncestr();
        req.timeStamp = wechatPayInfo.getTimestamp() + "";
        req.packageValue = wechatPayInfo.getPackageValue();
        req.sign = wechatPayInfo.getSign();

        // 在支付之前,如果应用没有注册到微信,应该先调用//IWXMsg.registerApp将应用注册到微信
        //3.调用微信支付sdk支付方法

        api.sendReq(req);
    }

wechatPayInfo 是demo里面的类,你需要的话可以完全也拷贝进来
需要注意的是

  • req.packageValue 对应的是服务器返回给你的package对的字段的数据.

    这里很无语 package是java关键字真不懂为啥要用这个传,我这里是把他换成了packageValue在赋值的
    

这时候要是服务器没配置错,你基本可以调用起来了安装上面的做法

要是你发现掉用了之后一直是-1,检查下微信应用在微信开发平台的配置.要是没问题.接下来就是清除微信的数据缓存,或者卸载微信,重新装一个,你会神奇的发现ok了.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值