微信支付

  • 微信支付大体步骤:
    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。


  • 具体流程请参考:

    微信支付官网创建应用过程:
    https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419317780&token=&lang=zh_CN

微信支付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
    支付宝需要配置密钥(公钥)

.

你可能感兴趣的:(微信支付)