6.9 Android 支付宝 开发者平台申请和接口调用

移动支付文档中心:https://doc.open.alipay.com/doc2/detail?treeId=59&articleId=103563&docType=1


SDK下载地址: https://doc.open.alipay.com/doc2/detail?treeId=54&articleId=103419&docType=1

软件发布一年了,SDK更新了,那么你的软件也要跟着更新。

注意如果开发平台有集成流程,就按照开发平台的集成流程做就行了。按照集成流程详解去做,集成流程详解去做

-------------------------------------------------------------------------------------------------------------------------------------------------------------

本例讲三个例子:

1:运行支付宝的alipay_demo,

2:拷贝文件的方式调用支付宝

3:将支付宝变成model调用。



接入之前准备工作包括商户签约和密钥配置,

第一个例子:运行支付宝的alipay_demo


将alipay_demo导入Android Studio,选择Import project fromEclipse

这个时候有一个东西需要更新的,如下图所示


把上面的括号里面删除了,可以直接删除也可以通过f4,把Dependencies 里面的删除掉。
里面是
libs/alipaySdk-20160120.jar
libs/android-support-v13.jar

6.9 Android 支付宝 开发者平台申请和接口调用_第1张图片

修改为:

---------------------------
在gradle里面添加

 compile fileTree(dir: 'libs', include: ['*.jar'])


这个时候运行以后,点击“支付”按钮会显示

警告:PARTNER|RSA_PARIVATE|SELLER,原因是:


公钥,上传给服务器,服务器就认可这台电脑私钥加密的东西。
在PayDemoActivity:里面有。 下面的几个是公司给的或者是你帮公司申请的。
// 商户PID
public static final String PARTNER = "";
// 商户收款账号
public static final String SELLER = "";
// 商户私钥,pkcs8格式
public static final String RSA_PRIVATE = "";
// 支付宝公钥


暂时可以用的一个测试信息:2088其实就是阿里巴巴。
// 商户合作ID 必须以 2088 开头
public static final String PARTNER = "2088601082136243";??// 收款人,支付宝账号  账号是固定的,一个商户一个账号?
public static final String SELLER = "[email protected]";??// 客户端使用的私钥,对于请求进行数字签名,传给服务器,服务器使用公钥进行验证?
public static final String RSA_PRIVATE = "MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAM62H9NVaAFL54uyqjNv11J7eeOsh/xRQ2c31zUXGmFvuq5iUVxahQBNKa5O3w4qoOdzCt6yw+Fcl9hN/9NV9pWiCUBzNBluUMyqTb2Qs+bULisevBk810Uevo/Cct+gu+6e2tTal2dXszAXK7tYjJqd5Rzmc/qJRzFPNn4j3W2NAgMBAAECgYEAwEDBHtPrNHF9O/+Cru5RLGSs++SmYTTPZLuZy8XeAkthK/lDRIrn8lzR7E1sxYc+OaVUscU/y2VL0KDS06K6/8gVCcJe4UiCjIBXyhmwNBKBHf4jlKKAlaWZkPwJSxpfE1O16epBvTHZdyEY0ALfMnvQlUZ8RAAXo5DHGutHscECQQD++08BYfWDhYVpDzlEcPM+9fyecen8vGiX/T0+LB88kREIldjiQmqJyBvKECRBUJYg+2mqHGQjQMfBHfaaUsC9AkEAz4l27Qps5e93EmNlDn3RsMH+JVzMu0442nA8SbpRJOtmuqYDZAH7W2uj3J3J1gIbZg5zCxQc9rLDYcq2wo21EQJBAK1x/ZgPLpa8qLeCZ44q1wwpACI3ktccwnlBBfvYv5bPhyqz48hlLVt0B5M3z7GuQ7FD0+inT2a7liXDYBAx4nECQD8SSsc9LN0wSmKXPGYMDMcIHcGjE0E1Q4f3JgtOCU0MEVtWCp/BDm+5JcJtXaKhX0xDxeivAyJiL4ivv50ezdECQHptoOYG0tMCHL0oOXrZXsdpAFL/c8vX25Oq/uaYaR+Zgv02ipt+81YQ+8nYTwD55TZytt0TcifqUQhDf0y7XyQ="; //注意了上面的这个RSA_PRIVATE 一定不能换行


支付宝一定要了解的内容
1:支付宝支付时候的签名机制:和oAuth 有很大的关系,有可能面试的时候可能会遇到
2:支付宝客户端错误码
3:Android 中PayTask 内部的参数orderInfo 必须要看
4:提交请求时的notify_url:让支付宝完成支付或者为完成支付的时候给商家服务器的



支付宝支付需要三个子系统:客户端,支付宝的服务器,商家(客户端自身的)服务器
9件以上85折, 注意这些都是服务器端计算的,而不是可以客户端计算.我之前写的订餐软件是在客户端计算的。
客户端下订单,服务器算好价格,客户端支付.

如果订单是100元,而我支付的是1块钱,怎么办呢? 这个是不是bug的部分呢?


首先客户端下一个订单
服务器告诉我需要1000元钱,
客户端交1000元,给支付宝服务器
支付宝服务器返回已经扣款或者失败.
支付宝服务器告诉商家后台某一个订单已经支付成功了


2:将支付宝的demo内容拷贝到现有的项目工程中,最好的方法还是第三种方法,因为第三种方法不用我们自己去申请权限了。

新建一个项目

在布局文件中:添加一个button “下订单”
下订单(从服务器获取订单信息,订单号,金额,打折信息,描述信息,然后将这里面的一些信息传送给支付宝,特别是订单号)

ali的libs 里面有jar包
把com 拷贝过来.
把res 里面的拷贝过来.跳过string
清单文件的操作:
权限
   
   
   
   
   

拷贝清单文件中activity内容到

            android:name="com.alipay.sdk.pay.demo.PayDemoActivity"
            android:icon="@drawable/msp_icon"
            android:label="@string/app_name" >
           
               


               
           

       

                    android:name="com.alipay.sdk.pay.demo.H5PayDemoActivity"
            android:configChanges="orientation|keyboardHidden|navigation"
            android:exported="false"
            android:screenOrientation="behind" >
       

       
                    android:name="com.alipay.sdk.app.H5PayActivity"
            android:configChanges="orientation|keyboardHidden|navigation|screenSize"
            android:exported="false"
            android:screenOrientation="behind"
            android:windowSoftInputMode="adjustResize|stateHidden" >
       



在button 上面添加事件

你可能感兴趣的:(6,Android,常用第三方类库)