Android客户端集成微信支付
来源:互联网 发布:铲形门齿 知乎 编辑:程序博客网 时间:2024/06/16 04:51
##集成流程
1、导入微信支付需要的jar包libammsdk.jar
2、服务器端将需要的信息配置齐全
3、在项目中创建爱你weapi文件夹,在该文件夹下创建WXPayWntryActivity,需要注意:
①、WXPayWntryActivity必须在com.xxx.app.wxapi文件夹下
②、在AndroidMainfest.xml下添加WXPayWntryActivity注册,不要自动生成
<!--这里如果自动生成,安装则会出现两个Logo图标--><activity android:name="com.XXX.app.wxapi.WXPayEntryActivity" android:exported="true" android:launchMode="singleTop" />
③、WXPayWntryActivity的具体代码如下:
public class WXPayEntryActivity extends Activity implements IWXAPIEventHandler { private IWXAPI api; private PayUtil payUtl; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_wxpay_entry); // 通过WXAPIFactory工厂,获取IWXAPI的实例 api = WXAPIFactory.createWXAPI(this, AppConstants.WX_APPID);//AppConstants.WX_APPID是你自己APP申请的ID api.handleIntent(getIntent(), this); payUtl = PayUtil.getInstance(); } @Override protected void onNewIntent(Intent intent) { super.onNewIntent(intent); setIntent(intent); api.handleIntent(intent, this); } @Override public void onReq(BaseReq req) { } @Override public void onResp(BaseResp baseResp) { //这里是对结果的回调 if (baseResp.getType() == ConstantsAPI.COMMAND_PAY_BY_WX) { Log.d("info", "onPayFinish,errCode=" + baseResp.errCode); if (baseResp.errCode == 0) {Toast.makeText(this,"支付成功",Toast.LENGTH_LONG).show();this.finish(); } else if (baseResp.errCode == -1) {Toast.makeText(this,"配置错误",Toast.LENGTH_LONG).show();this.finish(); } else if (baseResp.errCode == -2) {Toast.makeText(this,"用户取消",Toast.LENGTH_LONG).show();this.finish(); } } else {Toast.makeText(this,baseResp.errStr,Toast.LENGTH_LONG).show();} }}
4、注册微信组件,并实例化微信API
// 微信相关APIpublic static IWXAPI wxApi;
wxApi = WXAPIFactory.createWXAPI(this, AppConstants.WX_APPID, true);
wxApi.registerApp(AppConstants.WX_APPID);
5、通过服务器提供的数据调用微信支付
PayReq req = new PayReq();req.appId = JsonUtil.getString(jsonArray, "appid");// 微信开放平台审核通过的应用APPID(服务器提供,跟本地存储的APPID是一个)req.partnerId = JsonUtil.getString(jsonArray, "partnerid");// 微信支付分配的商户号(可以服务器提供)req.prepayId = JsonUtil.getString(jsonArray, "prepayid");// 预支付订单号,服务器提供(服务器调用“统一下单”接口获取)req.nonceStr = JsonUtil.getString(jsonArray, "noncestr");// 随机字符串,不长于32位,服务器提供req.timeStamp = JsonUtil.getString(jsonArray, "timestamp");// 时间戳,服务器提供req.packageValue = JsonUtil.getString(jsonArray, "package");// 固定值Sign=WXPay,可以直接写死,服务器返回的也是这个固定值req.sign = JsonUtil.getString(jsonArray, "sign");// 签名,服务器提供,他会根据:https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=4_3指导得到这个wxApi.sendReq(req);//wxApi为注册微信组件的api实例6、做完以上操作就已经完成微信支付的集成了
注意:运行时使用的签名要与微信开放平台注册时的签名保持一致!!!
阅读全文
2 0
- Android客户端集成微信支付
- android集成微信支付
- android集成微信支付
- Android 微信支付集成
- android集成微信支付
- Android集成微信支付
- Android微信支付集成
- Android集成微信支付
- Android集成微信支付
- Android 集成微信支付
- Android集成微信支付
- Android集成微信支付
- android集成微信支付
- Android集成微信支付
- Android集成微信支付
- Android 微信支付集成
- Android 集成微信支付
- android集成支付,支付宝,微信
- html表格
- 浏览器内部工作原理
- 数组
- 循环请求数据时,返回的结果没有按照顺序显示的解决方法
- java.util.ResourceBundle使用详解
- Android客户端集成微信支付
- 关于__ATTRIBUTE__ 使用
- 刷清橙OJ--A1020.数列排序
- storm应用场景
- CentOS 系统启动流程
- 视图
- 要休假了,四个月后再来更新
- 捕获异常的方法、以及常见异常类型
- 51nod 1179 求数组中一对数的最大gcd