Android开发集成微信支付

释放双眼,带上耳机,听听看~!

第一步:在微信开放平台,注册开发者账号 地址:https://open.weixin.qq.com

第二步:在微信开放平台上,新建自己的应用,等待审核,审核通过会得到appid和appsecret,但是要开通微信支付

第三步:后台设置(第三步用的是微信支付官方文档的)

商户在微信开放平台申请开发应用后,微信开放平台会生成APP的唯一标识APPID。由于需要保证支付安全,需要在开放平台绑定商户应用包名和应用签名,设置好后才能正常发起支付。设置界面在【开放平台】中的栏目【管理中心 / 修改应用 / 修改开发信息】里面,如图8.8红框内所示。

修改开发信息

应用包名:是在APP项目配置文件AndroidManifest.xml中声明的package值,例如DEMO中的package=”net.sourceforge.simcpux”。

应用签名:根据项目的应用包名和编译使用的keystore,可由签名工具生成一个32位的md5串,在调试的手机上安装签名工具后,运行可生成应用签名串,如图8.9所示,绿色串即应用签名。签名工具下载地址https://open.weixin.qq.com/zh_CN/htmledition/res/dev/download/sdk/Gen_Signature_Android.apk

修改开发信息

第四步:添加jar包

第五步:在项目的报名文件夹下添加wxapi文件夹和添加两个文件(WXEntryActivity是用于微信登入和微信分享的,WXPayEntryActivity是用于支付回调的)

第六步:注册APPID

调用API前,需要先向微信注册您的APPID,代码如下:

/微信支付APP_ID
public static final String APP_ID = "wx7***********b8";
public IWXAPI msgApi;
msgApi = WXAPIFactory.createWXAPI(this,Constants.APP_ID,false);
private PayReq req;

// 将该app注册到微信

msgApi.registerApp(Constants.APP_ID);

第七步:先用订单的id调接口,从后台获取订单详情,再用订单详情返回的值,调起微信支付

req = new PayReq();
if (null != wXAdvanceChargeBean.getResult()) {
req.appId = wXAdvanceChargeBean.getResult().getAppid();
req.partnerId = wXAdvanceChargeBean.getResult().getMch_id();
req.prepayId = wXAdvanceChargeBean.getResult().getPrepay_id();
req.packageValue = "Sign=WXPay";
req.nonceStr = wXAdvanceChargeBean.getResult().getNonce_str();
req.timeStamp = wXAdvanceChargeBean.getResult().getTimeStamp();
req.sign = wXAdvanceChargeBean.getResult().getSign();
msgApi.sendReq(req);

}

第八步:在回调WXPayEntryActivity里添加回调处理操作

public class WXPayEntryActivity extends Activity implements IWXAPIEventHandler {
private static final String TAG = "MicroMsg.SDKSample.WXPayEntryActivity";
public static final String ACTION = "xyh.net.rrbus.weixin.wxapi.intent.action.WXPayEntryActivity";
private IWXAPI api;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.pay_result);
api = WXAPIFactory.createWXAPI(this, Constants.APP_ID);
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) {
int code = resp.errCode;
switch (code){
case 0://支付成功后的界面
ToastUtil.showLongToast("支付成功");
Constants.WEI_XIN_PAY_RESULT = 0; //这个是调起微信支付后,zai
//返回主页面 然后在跳转至订单页面
this.finish();
break;
case -1:
//ToastUtil.showToast(getApplicationContext(), "签名错误、未注册APPID、项目设置APPID不正确、注册的APPID与设置的不匹配、您的微信账号异常等。");
ToastUtil.showLongToast("支付失败");
Constants.WEI_XIN_PAY_RESULT = -1;
this.finish();
break;
case -2://用户取消支付后的界面
ToastUtil.showLongToast("您已取消支付");
Constants.WEI_XIN_PAY_RESULT = -2;
this.finish();
break;
}
//微信支付后续操作,失败,成功,取消
}
 

为TA充电
共{{data.count}}人
人已赞赏
Android文章

Android开发集成支付宝支付

2021-2-1 18:01:22

Android文章

Android集成阿里消息推送

2021-2-1 18:55:09

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索