zoukankan      html  css  js  c++  java
  • 微信开发----支付

    参考资料:http://blog.fangjie.info/android%e5%be%ae%e4%bf%a1%e6%94%af%e4%bb%98/    Android微信支付

    http://blog.csdn.net/janice0529/article/details/38051987 Android学习之 移动应用<App>微信支付集成小结

    官方网站:https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&lang=zh_CN

    微信支付:http://pay.weixin.qq.com/wiki/doc/api/app.php?chapter=8_5

    1. 什么是token

      用户ID + 服务器随机分配的token 可以唯一标识这个用户。

      Token可以理解为验证用户登录状态的标识,可以防止其他人伪装用户进行操作(伪装请求+用户ID)。

      对于token的获取,是在用户登录之后才会随机分配的一个token,而且每次登录这个标识token都会改变。

      我们在进行用户操作的时候都会带上token,和sessionid很类似。我们可以把token解释为令牌。

    2. 微信支付的四个步骤:

      老版本: payActivity里面

      1. 利用APP_ID和APP_SECRET获取access_token

    2) 在上面的代码中,根据上面的代码。如下

    现在我们根据access_Token以及之前的参数partnerId等来获取预支付任务

    1. 根据获取得到的PrepayId,开启步骤3

     

    1. 根据最后一步,返回支付结果

      位置:WXPayEntryActivity.java

    微信会回调 WXPayEntryActivity 的public void onResp(BaseResp resp)方法,所以后续操作,放在这个回调函数中操作就可以了。
    resp.errCode== 0 :表示支付成功
    resp.errCode== -1 :表示支付失败
    resp.errCode== -2 :表示取消支付

    1. 新版本微信支付和老版本有区别

       

      1. 生成预支付订单

        主要在GetPrepayIdTask里面(关键代码)动态获取access_Token

        最关键的代码:

        与服务器交互完之后,获取到prepayId .

    2) 通过上一步得到的预支付订单,重新生成微信支付参数

    下面的genPayReq里面用到了很多的参数,不仅仅是prepayId。生成微信支付参数后,赋值给req.sign.

    上面这句代码里面会生成两个签名:一个是 genAppSign ,sign str。 一个是req.sign ,sign。这个是最后的MD5生成的

    唯一标识用户微信支付的参数。生成的界面如下:

    3) 调起微信支付

    Req是成员参数,刚刚获取到的微信参数都在这

    4) 微信会回调 WXPayEntryActivity 的public void onResp(BaseResp resp)方法

    Resp.errstr : 0 支付成功 -1 不成功 -2 取消支付。

  • 相关阅读:
    CentOS Grub、BASH 故障、解决方法
    Fail2ban 阻止暴力破解
    Extundelete 数据恢复
    HTTP 状态信息
    LNMP 参数调优 ( 无注释 )
    Mysql 性能优化 ( my.cnf )
    MantisBT 缺陷管理系统
    Zabbix Agent 源码编译安装
    Zabbix 监控 Mysql 状态
    Zabbix 监控 Nginx 状态
  • 原文地址:https://www.cnblogs.com/zhuxuekui/p/4546807.html
Copyright © 2011-2022 走看看