美文网首页
Android支付宝支付功能接入总结

Android支付宝支付功能接入总结

作者: Yuki灬 | 来源:发表于2017-03-16 15:41 被阅读0次

    本文根据支付宝蚂蚁金服官方API和Demo编写,为博主实际项目开发中的经验总结,不包含公司和个人有关信息,相关密钥请同学们自己申请。

    随着智能手机的迅速普及,手机APP的功能也更加智能化,贴近我们的现实生活。也有更多的互联网公司和企业选择移动支付的功能,方便消费者可以快速购买他们的产品。其中国内使用最多的是支付宝和微信支付,下面我们来了解一下在Android设备上怎么接入支付宝的服务。

    • 创建应用
    • 获得所需数据
    • 集成开发环境
    • 支付接入

    创建应用

    第一步我们需要到开放平台上去创建我们的应用。

    应用页面

    获得所需数据

    这里我们还需要获取一些支付功能所需要的ID和密钥。

    应用的AppID 服务商PID

    请务必妥善保管你应用的私钥和公钥,以防丢失!!

    由支付宝签名生成工具生成的密钥

    集成开发环境

    首先需要从开发平台上下载支付宝SDK所用到的相关Jar包,下载完成后解压可以得到一个我们需要的jar文件。

    使用AndroidStudio新建一个Android项目,并在工程中引入我们的jar包。

    compile files('libs/alipaySdk-20170309.jar')
    

    另外我们还需要在proguard-project.txt文件下添加打包混淆的规则。

    -libraryjars libs/alipaySDK-20150602.jar
     
    -keep class com.alipay.android.app.IAlixPay{*;}
    -keep class com.alipay.android.app.IAlixPay$Stub{*;}
    -keep class com.alipay.android.app.IRemoteServiceCallback{*;}
    -keep class com.alipay.android.app.IRemoteServiceCallback$Stub{*;}
    -keep class com.alipay.sdk.app.PayTask{ public *;}
    -keep class com.alipay.sdk.app.AuthTask{ public *;}
    

    接着我们需要在AndroidManifast文件中引入相关权限。

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    ```
    最后添加两个Activity声明
    ```
    <activity
                android:name="com.alipay.sdk.app.H5PayActivity"
                android:configChanges="orientation|keyboardHidden|navigation"
                android:exported="false"
                android:screenOrientation="behind" >
    </activity>
    <activity
                android:name="com.alipay.sdk.auth.AuthActivity"
                android:configChanges="orientation|keyboardHidden|navigation"
                android:exported="false"
                android:screenOrientation="behind" >
     </activity>
    ```
    到这里我们的支付宝SDK就集成好啦,接下来我们看看在项目里是怎么去调用他的。
    
    ##支付接入
    >以下代码均运行在沙盒环境下,实际部署请根据Demo中提示进行。
    
    
    我们从官方提供的Demo中复制所有的Java文件到我们的项目里。因为官方为我们做了很完善的封装,所以并不需要额外实现。复制过来后记得Mark一下项目,检查有无包引用错误。
    ``` 
    /** 应用APPID */
    public static final String APPID = "";
        
    /** 商户信息中的PID 点击右上角头像可以看商户信息*/
    public static final String PID = "";
    /** 支付宝登录功能所用的参数,这里可以不填 */
    public static final String TARGET_ID = "";
    
    /** 私钥,RSA2算法生成的私钥 推荐使用*/
    public static final String RSA2_PRIVATE = "";
    /** RSA算法生成的私钥 官方已不推荐*/
    public static final String RSA_PRIVATE = "";
    ```
    
    在`PayDemoActivity`文件中,我们需要注意上述的变量。这里我重新修改了一下他们的注释,方便各位理解。
    
    
    ![](https://img.haomeiwen.com/i5201995/51f90828d8539ffb.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
    最后我们需要关注的是`OrderInfoUtil2_0`文件的buildOrderParamMap方法,该方法用于构建订单的详细信息,这里开发者可以根据[*官方文档*](https://doc.open.alipay.com/doc2/detail.htm?spm=a219a.7629140.0.0.x7kkCI&treeId=204&articleId=105465&docType=1)进行相应的修改。最后是集成完成后弹出的支付界面。
    
    ![](https://img.haomeiwen.com/i5201995/feb151b4c8e7c205.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
    
    
    ##FAQ
    **1、博主可以提供完整的Demo下载么?**
    不好意思哈,因为这里包含了项目相关内容,故无法提供详细Demo供下载,有不明白的地方欢迎在下方留言!
    
    **2、RSA2的私钥改怎么申请?**
    这个请根据官方给出的文档说明,下载签名软件进行生成,流程较长这里我就不一一说明了,不过官方给的说明还是很详细的哈!
    
    **3、为什么我支付时显示40247错误?**
    可能是APPID没有支付权限的问题,请检查APP是否拥有APP支付接口的权限。如果已经签约了APP支付接口,请检查商户公钥是否上传到对应的appid应用下,检查上传的商户公钥和商户私钥是否匹配。

    相关文章

      网友评论

          本文标题:Android支付宝支付功能接入总结

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