# Android微信支付接入

Android微信支付接入

一、 前期准备

二、微信支付业务流程
统一下单API、支付结果通知API和查询订单API等都涉及签名过程,调用都必须在服务器端完成。
这里写图片描述
商户系统和微信支付系统主要交互说明:
步骤1:用户在商户APP中选择商品,提交订单,选择微信支付。
步骤2:商户后台收到用户支付单,调用微信支付统一下单接口。
步骤3:统一下单接口返回正常的prepay_id,再按签名规范重新生成签名后,将数据传输给APP。参与签名的字段名为appid,partnerid,prepayid,noncestr,timestamp,package。注意:package的值格式为Sign=WXPay
步骤4:商户APP调起微信支付。
步骤5:商户后台接收支付通知。
步骤6:商户后台查询支付结果。
三、接入步骤
步骤一:在微信开放平台现在最新sdk,并集成到项目中。
步骤二:在应用启动的时候初始化api

IWXAPI msgApi = WXAPIFactory.createWXAPI(context, APP_ID);
    msgApi.registerApp("wxd930ea5d5a258f4f");

步骤三:调起支付

PayReq req = new PayReq();
PayResult.DataBean data = payResult.getData();
req.appId = data.getAppId();
req.partnerId = data.getPartnerId();
req.prepayId = data.getPrepayId();
req.packageValue = data.getPackageX();
req.nonceStr = data.getNonceStr();
req.timeStamp = data.getTimeStamp();
req.sign = data.getSign();
// 在支付之前,如果应用没有注册到微信,应该先调用IWXMsg.registerApp将应用注册到微信
LogUtil.logByD("PAY_GET", req.toString());
if (!api.isWXAppInstalled()) {
    AppUtil.showToastMsg(view.getFragment().getContext(), "您还未安装微信客户端,请先安装微信客户端");
    return;
}
api.sendReq(req);

这里写图片描述
在调用支付之前需要统一下单,这个操作在服务端进行,上面的payResult就是服务端返回的统一下单结果。

步骤四、支付结果回调
参照微信SDK Sample,在net.sourceforge.simcpux.wxapi包路径中实现WXPayEntryActivity类(包名或类名不一致会造成无法回调),在WXPayEntryActivity类中实现onResp函数,支付完成后,微信APP会返回到商户APP并回调onResp函数,开发者需要在该函数中接收通知,判断返回错误码,如果支付成功则去后台查询支付结果再展示用户实际支付结果。注意一定不能以客户端返回作为用户支付的结果,应以服务器端的接收的支付通知或查询API返回的结果为准。

publicvoidonResp(BaseRespresp){
    if(resp.getType()==ConstantsAPI.COMMAND_PAY_BY_WX){
        Log.d(TAG,"onPayFinish,errCode="+resp.errCode);
        AlertDialog.Builderbuilder=newAlertDialog.Builder(this);
        builder.setTitle(R.string.app_tip);
    }
}

返回结果码

回调中errCode值列表:

名称  描述  解决方案
0   成功  展示成功页面
-1  错误  可能的原因:签名错误、未注册APPID、项目设置APPID不正确、注册的APPID与设置的不匹配、其他异常等。
-2  用户取消    无需处理。发生场景:用户不支付了,点击取消,返回APP

接受到结果后展示不同的结果。至此,维信支付就全部完成了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于Android应用接入微信支付,您需要按照以下步骤进行操作: 1. 在微信支付开放平台注册账号并登录。前往微信支付开放平台(https://pay.weixin.qq.com/)注册一个账号,并进行登录。 2. 创建应用并获取应用ID。在开放平台创建一个应用,并获取到对应的应用ID,这是后续接入过程中的重要标识。 3. 配置应用信息。在应用管理页面填写应用的基本信息,包括应用名称、AppID、支付回调URL等。确保信息填写准确无误。 4. 下载SDK和文档。在开放平台下载对应的微信支付SDK和接入文档,以便后续进行接入操作。 5. 导入SDK到Android项目。将下载的微信支付SDK导入到您的Android项目中,可以使用Gradle或手动导入的方式进行集成。 6. 配置权限和签名。在AndroidManifest.xml文件中添加必要的权限声明,并确保应用的签名信息与在微信支付开放平台注册时填写的一致。 7. 实现支付功能。根据微信支付开放平台提供的接入文档,按照要求实现支付功能的相关代码逻辑。 8. 发起支付请求。在合适的时机,通过调用微信支付SDK提供的API发起支付请求,并传递必要的订单信息和回调参数。 9. 处理支付结果回调。在您的应用中处理微信支付结果的回调通知,根据返回的支付结果状态进行相应的处理操作。 10. 测试和上线。在开发阶段进行测试,确保支付流程和结果正常。待测试通过后,提交应用上线并进行发布。 请注意,以上只是一个大致的流程概述,具体的接入步骤和代码实现会因应用的具体需求和技术栈而有所差异。建议您仔细阅读微信支付开放平台提供的官方文档,并根据文档中的指引进行接入操作。如果遇到问题,可以参考文档中的常见问题解答或联系微信支付开放平台的技术支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值