Android 集成微信支付
来源:互联网 发布:单片机的编程语言 编辑:程序博客网 时间:2024/05/18 17:57
情景 :Android 在集成友盟微信分享、微信登录后,继续集成微信支付
关键的依赖:
dependencies { compile files('libs/SocialSDK_WeiXin_Full.jar')}
微信支付流程:服务端组织生成订单信息提交到微信--->微信生成预支付订单(包括签名)返回到服务端--->服务端对签名进行二次签名--->客户端请求服务端获取预支付订单参数--->客户端向微信提交参数信息调起微信支付的方法----->微信支付成功后回调返回客户端—->客户端处理成功后的逻辑
下面直接说Android客户端业务逻辑:
一、客户端提交信息到服务器统一下单
public void placeAnOrder(String theurl) { RequestParams requestParams = new RequestParams(theurl); requestParams.addBodyParameter("id", id); requestParams.addBodyParameter("mobile", mobile); requestParams.addBodyParameter("name", name); requestParams.addBodyParameter("address", address); x.http().post(requestParams, new Callback.CommonCallback<String>() { @Override public void onSuccess(String result) { Log.e("Tag_OrderSuccessful", "订单生成!"); //服务器返回临时订单相关参数 //向微信提交订单进行支付 toWXPay(); } @Override public void onError(Throwable ex, boolean isOnCallback) { } @Override public void onCancelled(CancelledException cex) { } @Override public void onFinished() { } });}二、相关配置参数传递给微信,调取支付
private void toWXPay() {
IWXAPI iwxapi = WXAPIFactory.createWXAPI(this, null); //初始化微信apiiwxapi.registerApp("******"); //注册appid appid可以在开发平台获取
Runnable payRunnable = new Runnable() { //这里注意要放在子线程
@Override
public void run() {
PayReq request = new PayReq(); //调起微信APP的对象
//下面是设置必要的参数,也就是前面说的参数,这几个参数从何而来请看上面说明
request.appId = "*******";
request.partnerId = "******";
request.prepayId = "******";
request.packageValue = "Sign=WXPay";
request.nonceStr = "******";
request.timeStamp = "******";
request.sign = "******";
iwxapi.sendReq(request);//发送调起微信的请求
}
};
Thread payThread = new Thread(payRunnable);
payThread.start();
}三、支付成功后回调
在 wxapi 包下建立 类 WXPayEntryActivity用于处理支付后的回调逻辑
public class WXPayEntryActivity extends Activity implements IWXAPIEventHandler { private IWXAPI api; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);// setContentView(R.layout.pay_result); api = WXAPIFactory.createWXAPI(this, "******"); api.handleIntent(getIntent(), this); } @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 resp) { //支付后信息提示 if (resp.getType() == ConstantsAPI.COMMAND_PAY_BY_WX) { int code = resp.errCode; if (code == 0){ //支付成功后的逻辑处理 }else if (code == -2){ //用户取消 MyToast.showToast(WXPayEntryActivity.this,"支付取消").show(); }else if (code == -1){ //错误 MyToast.showToast(WXPayEntryActivity.this,"支付错误").show(); } finish(); } }}好了,完成!
阅读全文
0 0
- android集成微信支付
- android集成微信支付
- Android 微信支付集成
- android集成微信支付
- Android集成微信支付
- Android微信支付集成
- Android集成微信支付
- Android集成微信支付
- Android 集成微信支付
- Android集成微信支付
- Android集成微信支付
- android集成微信支付
- Android集成微信支付
- Android集成微信支付
- Android 微信支付集成
- Android 集成微信支付
- android集成支付,支付宝,微信
- Android 集成微信支付V3
- 自动寻路方案
- 在vue中如何引入element-ui
- python串口通信,pyserial安装
- IntelliJ IDEA2017.3激活
- 大数据24小时:网传万达云多个部门面临解散,阿里云与众安科技发布新金融营销平台“芭蕉扇”
- Android 集成微信支付
- win10 显示 “在此处打开命令窗口”菜单选项
- pom.xml文件报错:com.thoughtworks.xstream.io.HierarchicalStreamDriver
- C++ STL中迭代器失效问题
- 测试博文
- leetCode#83. Remove Duplicates from Sorted List
- hibernate5反向生成表
- Android系统开发之路--Linux shell脚本
- 数据猿·金猿榜丨2017中国智能营销域最具潜力创业公司