【郑州校区】微信支付开发
微信支付开发,相较于支付宝还是很简单的,有人说微信开发更麻烦,我想可能是以为后台有点麻烦吧,不过对于android来说,微信开发,简直比支付宝还要简单.下面就开始我们微信开发的介绍吧.
第一步:1、后台设置商户在微信开放平台申请开发应用后,微信开放平台会生成APP的唯一标识APPID。由于需要保证支付安全,需要在开放平台绑定商户应用包名和应用签名,设置好后才能正常发起支付。设置界面在【开放平台】中的栏目【管理中心 / 修改应用 / 修改开发信息】里面,如图8.8红框内所示。 应用包名:是在APP项目配置文件AndroidManifest.xml中声明的package值,例如DEMO中的package=”net.sourceforge.simcpux”。 注意:这里签名也就是一个应用的唯一标识,
1,如果你运行时,没有对项目进行签名,那么就是debug版的签名,
2,如果你运行时,是签名版的一定要使用签名版签名. 也就是说:这个签名工具获得的签名,一定要和后台设置的一致,如果不一致是不能调起微信支付的. 2、注册APPID商户APP工程中引入微信JAR包,调用API前,需要先向微信注册子商户的APPID,代码如下: final IWXAPI msgApi = WXAPIFactory.createWXAPI(context, “你的appid”); // 将该app注册到微信 msgApi.registerApp(“你的appid”); 3,导入微信jar包,在sdk中把jar导入你的工程即可. 4、调起支付子商户调用“服务商提供的接口”返回支付数据,在APP发起支付。以下是调起微信支付的关键代码: [AppleScript] 纯文本查看 复制代码
IWXAPI api;
PayReq request = new PayReq();
request.appId = "wxd930ea5d5a258f4f";//子商户appid
request.partnerId = "1900000109";//子商户号
request.prepayId= "1101000000140415649af9fc314aa427",;
request.packageValue = "Sign=WXPay";
request.nonceStr= "1101000000140429eb40476f8896f4c9";
request.timeStamp= "1398746574";
request.sign= "7FFECB600D7157C5AA49810D2D8F28BC2811827B";
api.sendReq(req);
注意: 以上字段都是后台传递给你的,不用自己去费心,只要后台传递过来的是正确的,支付肯定是没有问题的. 5、支付结果回调参照微信SDK Sample,在net.sourceforge.simcpux.wxapi包路径中实现WXPayEntryActivity类(包名或类名不一致会造成无法回调),在WXPayEntryActivity类中实现onResp函数,支付完成后,微信APP会返回到商户APP并回调onResp函数,开发者需要在该函数中接收通知,判断返回错误码,支付成功则调用“服务商提供的查询接口”获取到支付状态再展示用户实际支付结果。注意一定不能以客户端返回作为用户支付的结果,应以服务器端的接收的支付通知或查询API返回的结果为准。代码示例如下: [AppleScript] 纯文本查看 复制代码 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);
}
} 最后:
其实对于支付来说,我们也完全不用写第5不=步,我们完全可以在掉起微信支付后,根据后台返回数据来判断是否完成支付. 传智播客·黑马程序员郑州校区地址 河南省郑州市 高新区长椿路11号大学科技园(西区)东门8号楼三层 联系电话 0371-56061160/61/62 来校路线 地铁一号线梧桐街站A口出 |