解决安卓本地微信支付功能

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_34369025/article/details/67637341

很多人在实现微信支付的时候摸不着头脑,微信本身对文档的说明就少的可怜。之前我也去问过客服,直接丢一句话,微信平台暂时没有客服......也是呵呵了。相比较来说,支付宝支付功能好实现很多,这是题外话。这里教大家简单实现本地微信支付,包括加签也是(加签之后要由后台来处理比较安全)。亲测有效

首先先下载一下这里的demo,下载地址如下:http://download.csdn.net/detail/qq_34369025/9796656

里面的代码修改步骤如下:

第一步,将之前申请的appid、商户号api秘钥填入Constants中

public class Constants {


    //appid
  public static final String APP_ID = "";

  //商户号
   public static final String MCH_ID = "";

//  API密钥,在商户平台设置
    public static final  String API_KEY="";

}

第二步,登录开放平台,在你创建的应用中输入你的包名和应用签名













第三步,对于用eclipse平台的来说,debug.keystore要替换成平台的debug.keystore


可以从这个地址找到本地的debug.keystore



之后运行应用,按照生成支付订单-》生成支付参数-》调起支付的顺序点击,即可调起微信支付





ps:注意WXPayEntryActivity.java这个页面是回调微信支付结果用的,要求比较苛刻,必须在将它创建在 项目下的“wxapi”包名下才能成功调起!!

eclipse:


AS:


如果有什么微信支付问题随时私信或者评论,我尽量解答

展开阅读全文

安卓 微信支付code=-1 问题

11-26

本人在做项目涉及到微信支付,已经卡住一天了,本人确定使用微信提供的签名获取工具获取到的应用签名与微信开放平台上的app签名是一致的,测试前,是将微信卸载掉重装过的,包括换手机,但是实验结果依旧是支付失败,code= -1。项目中,appId,partnerId,prepayId,nonceStr,sign均由服务端提供,ios版本没有问题,安卓版本则一直返回code=-1 ,求各路大神帮忙出计献策。rn代码如下:rnpublic class WechatPay rn private IWXAPI msgApi = null;rn private Context mContext;rn private PayReq req;rnrnrn public WechatPay(Context context) rn mContext = context;rn req = new PayReq();rn rnrn public void payByWechat(WeChatPayModel weChatPayModel) rn genPayReq(weChatPayModel);rn msgApi = WXAPIFactory.createWXAPI(mContext.getApplicationContext(), weChatPayModel.getAppid(), false);rn msgApi.registerApp(req.appId);rn msgApi.sendReq(req);rn rn //WeChatPayModel为自己定义的一个实体类,包括: Appid,MchId,PrepayId,NonceStr,Sign,由服务端提供数据。rn private void genPayReq(WeChatPayModel weChatPayModel) rnrn req.appId = weChatPayModel.getAppid();rn req.partnerId = weChatPayModel.getMchId();rn req.prepayId = weChatPayModel.getPrepayId();rn req.packageValue = "Sign=WXPay";rn req.nonceStr = weChatPayModel.getNonceStr();rn req.timeStamp = String.valueOf(genTimeStamp());rn req.sign = weChatPayModel.getSign();rn rnrn private long genTimeStamp() rn return System.currentTimeMillis() / 1000;rn rn 论坛

没有更多推荐了,返回首页