赞
踩
老规矩,先感谢大神:
android 微信支付:统一下单接口获取_package=sign=wxpay_秋天不落叶-的博客-CSDN博客
Android 集成微信支付流程和统一下单接口的调用_微信统一下单接口vip2 android怎么调用_阿龙的故事的博客-CSDN博客
微信支付的先决条件是在微信开发平台,创建应用并审核通过,审核通过后就有appid了,
之后,需要在 微信商户平台拿到一个key
我接入的是微信统一下单地址是这个,v3的没有用明白
https://api.mch.weixin.qq.com/pay/unifiedorder
在商户平台的账户中心里找到API安全选项,拿到自己的密钥,可以看到我都申请了,实际使用的时候用的2,至于为啥申请多了,说起来都是泪
下一步就到android studio里了,微信支付的流程是先调用统一下单,微信返回一个他们的订单号,拿到后,在调用支付接口进入微信支付
我的app是一个按钮控制,开始微信支付,在按钮所在的activity同路径下,放入以下几个文件
第一个:class MD5
public class MD5 { private MD5() {} public final static String getMessageDigest(byte[] buffer) { char hexDigits[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' }; try { MessageDigest mdTemp = MessageDigest.getInstance("MD5"); mdTemp.update(buffer); byte[] md = mdTemp.digest(); int j = md.length; char str[] = new char[j * 2]; int k = 0; for (int i = 0; i < j; i++) { byte byte0 = md[i]; str[k++] = hexDigits[byte0 >>> 4 & 0xf]; str[k++] = hexDigits[byte0 & 0xf]; } return new String(str); } catch (Exception e) { return null; } } }
第二个:class PayReq
public class PayReq extends BaseReq { private static final String TAG = "MicroMsg.PaySdk.PayReq"; private static final int EXTDATA_MAX_LENGTH = 1024; public String appId; public String partnerId; public String prepayId; public String nonceStr; public String timeStamp; public String packageValue; public String sign; public String extData; public PayReq.Options options; public String signType; public PayReq() { } public boolean checkArgs() { if (this.appId != null && this.appId.length() != 0) { if (this.partnerId != null && this.partnerId.length() != 0) { if (this.prepayId != null && this.prepayId.length() != 0) { if (this.nonceStr != null && this.nonceStr.length() != 0) { if (this.timeStamp != null && this.timeStamp.length() != 0) { if (this.packageValue != null && this.packageValue.length() != 0) { if (this.sign != null && this.sign.length() != 0) { if (this.extData != null && this.extData.length() > 1024) { Log.e("MicroMsg.PaySdk.PayReq", "checkArgs fail, extData length too long"); return false; } else { return true; } } else { Log.e("MicroMsg.PaySdk.PayReq", "checkArgs fail, invalid sign"); return false; } } else { Log.e("MicroMsg.PaySdk.PayReq", "checkArgs fail, invalid packageValue"); return false; } } else { Log.e("MicroMsg.PaySdk.PayReq", "checkArgs fail, invalid timeStamp"); return false; } } else { Log.e("MicroMsg.PaySdk.PayReq", "checkArgs fail, invalid nonceStr"); return false; } } else { Log.e("MicroMsg.PaySdk.PayReq", "checkArgs fail, invalid prepayId");
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。