Android开发中的第三方支付SDK的接入与使用(支付宝+微信支付+银联)

支付宝微信银行卡支付SDK接入

支付宝支付:

一.  绑定前提:

  1. 我们自己要和支付宝签约(商户签约).-->运营完成
  2. 秘钥配置-->协助运营完成秘钥的配置(公钥互换),可能程序员会参与
  3. 集成支付宝-->必须是程序员去做

二.  绑定步骤

集成调用支付宝接口进行支付的步骤:

1.  将商户ID,收款帐号,外部订单号,商品名称,商品介绍,价格,通知地址封装成订单信息

2.  对订单信息进行签名

3.  将订单信息,签名,签名方式封装成请求参数

4.  调用pay方法。

三.支付完成.返回交易结果:

1.        支付结果作为接口返回的字符串返回。返回的参数包含在result字符串中,具体再进行解析。

2.  支付宝服务器通知。商户需要提供一个http协议的接口,包含在参数里传递给安全支付,即notify_url。支付宝服务器在支付完成后,会用POST方法调用notufy_url,以xml为数据格式传输支付结果。

具体参考支付宝开发文档或者链接如下:

http://blog.163.com/benben_long/blog/static/19945824320142279427395/

注意:

1.    添加android.permission.INTERNET权限和android.permission.ACCESS_NETWORK_STATE权限

 

二.微信支付

与支付宝类似,运营人员注册获取支付功能,得到平台给的APPID、APPsercet、以及商户平台上设置的APP_key

绑定支付步骤

1.注册registerApp
2.获取token 
3.获取prepayid
4.调用sendReq

二.   服务端签名,安卓客户端具体操作如下:
1.把Constants.java,MD5.java,PayActivity.jav,util.java拷贝到项目下,复制wxapi/WXPayEntryActivity.java到项目下;
2.修改微信开放平台中后台的包名和签名,可以用腾讯开放平台的签名工具获取签名Gen_Signature_Android.apk
(1)AndroidManifest.xml中package名字和项目包名一样;
(2)AndroidManifest.xml中添加.wxapi.WXPayEntryActivity(不添加,支付成功后无法跳转到相应的通知Activity界面);
3.具体调用参照微信支付开发文档:
       
4.接收支付结果的WXPayEntryActivity中的onResp函数里处理支付结果:
   

 

微信支付遇到的问题:

微信遇到的具体问题:
1.在demo中找不到APP_KEY,邮箱发过来的没有此参数,对应文档找到是PaySignKey;
2.测试返回的支付结果是-1,可能产生此问题的地方:包名不一致;应用签名和后台不一致。
3.如果是客户端demo测试,记得注意价格单位是分(调用失败),body是中文的时候需要字符转换(返回错误ERR_JSON)。
客户端demo测试返回支付结果-1,记得删除微信缓冲数据(设置-》应用程序管理器->选中微信->清除数据)
可以用demo里的debug.keystore来测试,功能修改目录:preferences->android->build->custom debugkeystore->browse。

 

三. 银行卡支付SDK

银联开发者中心连接

https://open.unionpay.com/ajweb/help/file/techFile?productId=3

 

前提:下载安卓版银联支付开发包

步骤

1.     导入银联支付依赖包

2.     在res目录下增加资源包

3.     在Manifest文件配置里配置打开的Activity

4.   获取TN号  2.

5.   请求控件界面(PayActivity)   

6.   ActivityResult处理支付结果


PS:完全具体版细节与流程请参照官方开发文档.





你可能感兴趣的:(安卓基础)