zoukankan      html  css  js  c++  java
  • Android开发——支付宝和微信支付快速接入流程

    一、Android快速实现支付宝支付

    1、首先,我们需要前往支付宝开放平台,申请我们的支付功能:https://open.alipay.com/platform/home.htm

    Android 支付宝以及微信支付快速接入流程

    支付宝首页

    这里 有两个需要注意的地方一个是管理中心,另外一个是我的支付宝

    管理中心:

    Android 支付宝以及微信支付快速接入流程

    管理中心

    我们需要创建一个应用提交给支付宝进行审核。

    我的支付宝:

    Android 支付宝以及微信支付快速接入流程

    在这里我的支付宝是一个商户版,一会我们会需要在这里处理一下相关的密匙。

    简单介绍完了,那么我们开始进入代码接入流程

    一、我们需要到支付宝的sdk地址下载相关的sdk

    https://doc.open.alipay.com/doc2/detail.htm?spm=a219a.7629140.0.0.P0wrvI&treeId=54&articleId=104509&docType=1

    Android 支付宝以及微信支付快速接入流程

    SDK下载后长这样:

    Android 支付宝以及微信支付快速接入流程

    这里我们需要关注的是:客户端和OpenSSL 解压客户端里面的Android压缩包,打开看看-_-# eclipse...

    不过不影响我们把它变成 studio工程

    Android 支付宝以及微信支付快速接入流程

    导入到 studio以后 会发现,真的没什么东西,好简单。

    Android 支付宝以及微信支付快速接入流程

    下面我们看看内部代码中比较重要的地方:

    Android 支付宝以及微信支付快速接入流程

    商户PID、收款账号、pkcs8格式的商户私钥、支付宝公钥

    那么商户PID是什么?

    Android 支付宝以及微信支付快速接入流程

    Android 支付宝以及微信支付快速接入流程

    PID在这里

    Android 支付宝以及微信支付快速接入流程

    收款账号:收款账号就是该支付宝账号,比如 xxxx@qq.com  等等

    这里最重要的就是公钥和私钥的配置了,公钥就是支付宝所需要的密钥,私钥是我们客户端所需要的密钥。

    首先我们来看看公钥如何生成。

    当前页面 填写好支付宝密码和手机验证码我们会进入以下界面:

    Android 支付宝以及微信支付快速接入流程

    注意看里面的 RSA 加密 ,我已经添加过,所以是查看。如果没添加过这里显示添加。

    Android 支付宝以及微信支付快速接入流程

    好了,我们这个公钥从那里来呢?回到我们下载的SDK 目录中打开OpenSSL你会看到一个生成命令的TXT文档:

    Android 支付宝以及微信支付快速接入流程

    RSA密钥生成命令

    生成RSA私钥

    openssl>genrsa -out rsa_private_key.pem 1024

    生成RSA公钥

    openssl>rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem

    将RSA私钥转换成PKCS8格式

    openssl>pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt

    注意:“>”符号后面的才是需要输入的命令。

    如果在mac下可以直接使用 openssl 

    如果是win下需要openssl路径下找到bin文件夹进入以后双击 openssl.exe 就ok了

    首先进入 openssl目录

    Android 支付宝以及微信支付快速接入流程

    Android 支付宝以及微信支付快速接入流程

    生成后我们可以通过 txt等工具打开我们的公钥

    Android 支付宝以及微信支付快速接入流程

    在这里我们填写的公钥是排除 -----BEGIN PUBLIC KEY-----和 -----END PUBLIC KEY-----以及制表符的,简单出来下效果

    Android 支付宝以及微信支付快速接入流程

    不可以有空格和和制表符号,将串码复制到刚刚我们提到的合作伙伴秘钥中。

    同理:继续改造我们的私钥,将 私钥放置到我们的代码中。

    Android 支付宝以及微信支付快速接入流程

    配置完成了,那么另外需要注意的地方就是getOrderInfo()方法了。

    Android 支付宝以及微信支付快速接入流程

    Android 支付宝以及微信支付快速接入流程

    见到就介绍到这里,开始集成你的支付宝吧(☆_☆)

     

    二、Android快速实现微信支付

    如果你已经成功集成了微信登录和分享,那么此文将助你快速集成微信支付,此文基于微信支付SDK3.1.1,也就是目前为止最新的SDK

    1)微信官方的集成文档

    2)微信官方资源下载

    Android 支付宝以及微信支付快速接入流程

    资源下载

    不过我相信,即便你看了微信的官方文档,你依然不知道微信支付怎么集成,因为微信支付的官方文档简直太.....

    如果你已经准备好了资源包,接下来正式开始集成。

    我们需要的资源其实有以下几样,在开始前,就这些转备好吧

    1)微信支付的APPID

    2)微信支付依赖包 >>>libammsdk.jar

    3)一个Activity类 >>>WXPayEntryActivity.Java

    这里需要特别说明一下,这个Activity类,直接从下载到的范例代码中copy到自己的工程中即可,这个页面是在你调起微信支付完成支付(或取消或失败)后,再回到你的App时会调用的一个页面。页面的布局可以是你自定义的布局,直接放图讲解:

    先说一下这个类的路径,网上也有一大堆介绍了,我直接放图,路径一定,而且必须是这样的:

    Android 支付宝以及微信支付快速接入流程

    WXPayEntryActivity 的路径

    在这个类中需要注意的地方有两个:

    1、这个类中的布局是可以自定义的,如果你不需要展示什么布局,而是要跳转页面,把这段代码删除即可

    Android 支付宝以及微信支付快速接入流程

    回调页面的布局

    2、回调结果的处理,下面是官方的处理方式,直接给了一个dialog,很多人会摸不着头脑,如果你不需要这个dialog,直接删除就好了,不需要把官方demo中的布局和资源都复制过来

    Android 支付宝以及微信支付快速接入流程

    官方的处理方式

    下面是我自定义的处理方式,比较简单,就是土司显示了一下支付结果,如果你需要支付成功后跳转,那么直接在这里startActivity即可,别忘记最后要将这个页面finish()

    Android 支付宝以及微信支付快速接入流程

    自定义的处理方式

    这个类中的其余的回调方法,我们都不需要去操作

    然后我们就可以开始支付了

    Android 支付宝以及微信支付快速接入流程

    参数列表

    这是微信支付需要我们携带的参数,对于新人来说,可能比较困惑的是我怎么生成这些参数呢?其实这些参数都是服务器返回给我们的,APPID我们可以自己保存在本地一份,其余的都是服务器返回给我们的,大概介绍一下流程:

    Android 支付宝以及微信支付快速接入流程

    发起支付的流程,提交订单的时候的参数根据项目需要配置

    最后,服务器返回给我们微信支付的参数后,我们就可以愉快的支付了,这里是关键一步,注意!!

    Android 支付宝以及微信支付快速接入流程

    发起支付的关键步骤

    至此我们已经可以调起微信支付页面来支付了

    最后还有一个需要注意的是,很多人被这一步坑了,就是关于微信开放平台签名的问题。其实只要你手机上的程序的签名和你在微信平台登记的签名一致即可,无论是debug版本,还是release版本

    Android 支付宝以及微信支付快速接入流程

    微信开放平台签名

    为了方便测试,我暂时填写的是我debug的签名,当然这个是可以改的,修改后会有审核期,几天就不知道,有时会很快,当应用快上线之前,记得去改为正式的签名即可,修改次数我也不知道了,可以自行百度一下!

    Android 支付宝以及微信支付快速接入流程

    修改签名

    感谢:

    http://www.jianshu.com/p/feb5923c6728

    http://gold.xitu.io/entry/5718aae02e958a00688ef601

  • 相关阅读:
    周鸿祎笔录
    set multiset 集合实现众数的统计
    栈实现 汉诺塔 操作是否符合规范
    优先队列----解决排序问题
    字符串的应用(续一)
    优先队列 的实例(未完----待续)
    字符串的应用
    栈实现括号
    Jave垃圾回收算法
    Java 按代回收垃圾以及回收算法
  • 原文地址:https://www.cnblogs.com/qitian1/p/6461469.html
Copyright © 2011-2022 走看看