app微信支付
来源:互联网 发布:艾瑞咨询 大数据 编辑:程序博客网 时间:2024/04/30 15:51
1) 支付流程
1、 首先是把该app注册到微信,
2、 发起一个线程生成支付订单。这里要注意金额的单位为分,只能为整数。
3、把支付订单post到后台生成一个预支付订单,返回prepay_id(预支付回话标识)
4、将参数再次签名传输给app发起支付,
5、支付结果会在WXPayEntryActivity类里onResp函数中查看,当errCode为:0表示成功-1表示错误-2表示用户取消。
2) 第三方登录微信实现
è注册应用
private IWXAPI msgApi;
msgApi = WXAPIFactory.createWXAPI(this, null);
msgApi.registerApp(Constants.APP_ID);
è然后拉取微信到授权登陆界面
final SendAuth.Req req = new SendAuth.Req();
req.scope = "snsapi_userinfo";
req.state = "wxdemo";
msgApi.sendReq(req);
è在WXEntryActivity中的onResp(BaseResp resp)方法中获取code:
String code = ((SendAuth.Resp) resp).code;//需要转换一下才可以
注意:要能回调到这个方法需要注册此activity:
msgApi.handleIntent(getIntent(), this);
3) 阅读微信支付开发文档
èApp支付
就是在移动端应用App中集成开放SDK调起微信支付模块完成支付的模式;
è支付账户(申请支付方式)
当在微信支付平台上申请支付方式后,会受到相应的邮件,在该邮件中主要是包含着4个参数,分别是appid,mch_id,key,secret;
Appid:标识当前我们在微信开发平台上创建应用的唯一标识;
Mch_id(微信支付商户号):商户申请微信支付后,有微信支付分配的商户收款账户;
Key(Api密钥):
交易过程生成签名的密钥,仅保留在商户系统和微信支付后台,不会在网络中传播;
Secret(AppSecret):
AppSecret是APPID对应的接口密码,用于获取接口调用凭证access_token时使用。在微信支付中,先通过OAuth2.0接口获取用户openid,此openid用于微信内网页支付模式下单接口使用。在开发模式中获取AppSecret(成为开发者且帐号没有异常状态)。
4) App支付开发步骤
è申请应用
在微信中申请应用,目的就是为了获取appid;
è注册Appid
先要引用微信支付的jar包;
其次就是在调用Api前,先要向微信进行注册Appid;
IWXAPI api = WXAPIFactory.createWXAPI($.getContext(),null);
api.registerApp(WXPayConfig.APP_ID);
这里的WXPayConfig,APP_ID就是表示的是当前该应用在微信中所注册的应用所申请的appid.
5) 调起支付
商户服务器生成支付订单,先调用统一下单API生成预付单,获取到prepay_id后将参数再次签名传输给APP发起支付;
PayReq req = newPayReq();
req.appId = jsonObject.getString("appid");
req.partnerId = jsonObject.getString("partnerid");
req.prepayId = jsonObject.getString("prepayid");
req.nonceStr = jsonObject.getString("noncestr");
req.timeStamp = jsonObject.getString("timestamp");
req.packageValue = jsonObject.getString("package");
req.sign = jsonObject.getString("sign");
api.sendReq(req);
首先调用的是微信支付的统一下单的Api,此时主要是为了生成prepay_id,当生成了preapay_id,此时就可以进行再次签名,生成了这个签名后,再传递给APP,此时在App中就进行调起支付。
è这个调起支付,首先在APP端要先向服务器端发出请求,服务器端得到请求后,先不是进行的签名操作,而是进行的是生成prepay_id,得到了这个prepay_id后,判断如果所返回的result_code为success时,那么此时就进行签名操作,注意的是,上面的向服务器传递参数,是为了在服务器中生成预付单,当预付单生成成功时,此时就进行的是签名操作,并将所生成的json格式的数据传递给APP端,由APP端发起微信支付。
6) 支付结果回调
1)首先在我们的项目路径下创建一个wxapi目录,在该目录下,要创建WXPayEntryActivity类(包名和类名要都是这两个),因为当服务器端签名成功后,就会掉起支付界面,此时回调到APP端,首先执行的是WXPayEntryActivity类中的onResp()方法,主要是处理的是服务器端所返回的是三种状态,分别是0(success),-1(failure),-2(cancel);
- 支付--微信APP支付
- 微信支付app
- 微信支付app
- 微信APP支付
- app微信支付
- APP微信支付
- app微信支付
- 微信APP支付
- 支付--微信APP
- 微信APP支付
- 微信app支付
- 微信APP支付
- 微信APP支付
- APP微信支付集成
- 微信app支付问题
- 微信APP支付填坑记
- 微信支付 app 服务器
- 微信APP支付 C#
- EF中执行存储过程,获取output返回值
- 网络规划设计师论文考察要点
- Qt布局
- 安卓系统添加字体库和修改系统默认的字体
- C++ 用libcurl库进行http通讯网络编程
- app微信支付
- DBA_Oracle Event等待事件分析(概念)
- libc++abi.dylib handler threw exception
- Windows环境下solrCloud 6.x的配置安装(单机模拟多服务器) - zookeeper部署
- Android init进程启动过程
- 加速Android Studio/Gradle构建
- Windows虚拟机NAT模式无法上网解决方案
- 图片处理日常记录
- 求N个数的阶乘和