美文网首页
微信支付

微信支付

作者: 3Q竹林 | 来源:发表于2017-06-01 15:13 被阅读118次
    • 微信支付大体步骤:
      1. web上创建应用部分:
        注册账号 —> 添加移动应用 —> 等待审核 —> 审核通过后申请支付功能 —> 填写企业资料 —> 再次等待审核(7日) —> 通过审核(邮件中含商户号及登录密码) —> 验证结算账户,在线签署协议;
      2. 项目中集成部分:
        a、注册APPID:
             final IWXAPI msgApi = WXAPIFactory.createWXAPI(context, null);   
            msgApi.registerApp("wxd930ea5d5a258f4f");
    
        b、让用户选择商品,并选择支付方式(微信),请求我们自己的服务器,生成订单给微信平台,并获取到预订单(包含prepayId),将prepayId传回给我们的app;
    
        c、app调起支付:
                IWXAPI api;
                PayReq request = new PayReq();
                request.appId = "wxd930ea5d5a258f4f";
                request.partnerId = "1900000109";
                request.prepayId= "1101000000140415649af9fc314aa427",;
                request.packageValue = "Sign=WXPay";
                request.nonceStr= "1101000000140429eb40476f8896f4c9";
                request.timeStamp= "1398746574";
                request.sign= "7FFECB600D7157C5AA49810D2D8F28BC2811827B";
                api.sendReq(req);
    
        4、支付结果回调:
    

    在WXPayEntryActivity类中实现onResp函数得到支付结果,并判断返回是否为错误码,而如果支付成功则去后台查询支付结果再展示用户实际支付结果。

             publicvoidonResp(BaseRespresp){
                 if(resp.getType()==ConstantsAPI.COMMAND_PAY_BY_WX){
                    AlertDialog.Builderbuilder=newAlertDialog.Builder(this);
                    builder.setTitle(R.string.app_tip);
                }
             } 
    
             回调中errCode值列表:
                  名称    描述     解决方案
                    0   成功    展示成功页面
                   -1   错误    可能的原因:签名错误、未注册APPID、项目设置APPID不正确、注册的APPID与设置的不匹配、其他异常等。
                   -2   用户取消  无需处理。发生场景:用户不支付了,点击取消,返回APP。
    

    </br>

    微信支付app集成方法:
    https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=8_5

    微信支付后台使用接口:
    https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=9_1

    • 需要注意的地方:
    1. 对于微信支付结果通知, 同样的通知可能会多次发送给商户系统。商户系统必须能够正确处理重复的通知。
    2. 另外商户系统对于支付结果通知的内容一定要做签名验证,并校验返回的订单金额是否与商户侧的订单金额一致,防止数据泄漏导致出现“假通知”,造成资金损失。
    3. 微信支付功能只在app端,依赖或导入支付SDK就可以了,服务端不需要SDK,只要后台调用微信支付相关接口查询即可,而支付宝支付却需要双方都要导入相应的SDK。
    4. 微信支付只能用于企业(只有商业版,并非自用型应用),但支付宝是可以实现自用型应用的。
    5. app对应的网上微信支付应用,不需要进行上线申请,而支付宝的网上应用是需要进行上线申请的。
    6. 微信需要配置应用签名:d7a7a6a72b7627be785495b6b842dda8
      支付宝需要配置密钥(公钥)

    .

    相关文章

      网友评论

          本文标题:微信支付

          本文链接:https://www.haomeiwen.com/subject/drusfxtx.html