Android-支付宝快捷支付
支付宝的快捷支付Android版业务流程比較麻烦,出现的意外情况比較多.在此,简单说下开发流程以及出现错误的解决方式;
1.注冊支付业务.这里不在赘述.建立数据安全传输所须要的私钥公钥,这里採用的是RSA算法:
打开开发包找到例如以下路径,点击openssl.exe打开dos操作界面:
输入:
genrsa -out rsa_private_key.pem 1024
rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem
将生成在该文件夹下生成rsa_private_key.pem 和rsa_public_key.pem两个文件.
打开支付宝的界面登陆 然后在应用模块里面把rsa_public_key.pem中的数据输入到公钥模块里,
(关于公钥密钥的知识參考前面发表的点击打开链接);
如该文件用文本文档打开为
-----BEGIN PUBLIC KEY-----
xxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxx
-----END PUBLIC KEY-----
则我们要获取的仅仅是-----BEGIN PUBLIC KEY-----与-----END PUBLIC KEY-----中间的内容,并把他们作为一个字符串提交到站点例如以下位置的地方上去:
2.新建一个项目,设置android环境:
1)AndroidManifest.xml配置例如以下:
<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" />
<activity
android:name="com.alipay.android.app.sdk.WapPayActivity"
android:screenOrientation="portrait">
</activity>
2)配置lib包:
>将alipay.jar放到lib文件夹下(照道理他会自己主动生成lib文件,为了保险,选择右键BuildPath>..导入);
>将alipay_msp.apk放到asseets文件夹下,该包的作用是在没移动支付应用的情况下自己主动提供安装应用,假设不包括本包 将自己主动打开相应的版支付界面
>导入alipay_libproject作为我们project的资源project,该project必须跟我们的project在同一层级文件夹下,并作为android项目导入
点击我们的应用,右键properties属性,选择例如以下图:点击add将lib项目导进去;
此时还有问题,由于android项目的原因,所以我们要把导入的资源所有顶置,不然系统有可能报资源找不到的原因;
3)代码配置;创建key配置
public final class Keys {
//合作身份者id,以2088开头的16位纯数字
public static final String DEFAULT_PARTNER = "APPID";
//收款支付宝账号
public static final String DEFAULT_SELLER = "ssssss@163.com";
//商户私钥,自助生成
public static final String PRIVATE = "";
public static final String PUBLIC = "";
}
从Demo中提取Base64.java Result.java Rsa.java到你的项目中
查找全部KeyFactory keyf = KeyFactory.getInstance("RSA");代码改动为
KeyFactory keyf = KeyFactory.getInstance("RSA","BC");
调用代码如參考例如以下:
public class MainActivity extends Activity {
Handler mHandler=new Handler(){
public void handleMessage(Message msg) {
switch (msg.what) {
case 0x123:
System.out.println(msg.obj);
Toast.makeText(MainActivity.this,msg.obj+"",
Toast.LENGTH_SHORT).show();
break;
default:
break;
}
};
};
@SuppressWarnings("deprecation")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String info = getNewOrderInfo();
String sign = Rsa.sign(info, Keys.PRIVATE);
sign = URLEncoder.encode(sign);
info += "&sign=\"" + sign + "\"&" + getSignType();
final String orderInfo = info;
new Thread() {
public void run() {
AliPay alipay = new AliPay(MainActivity.this, mHandler);
String result = alipay.pay(orderInfo);
Message msg = new Message();
msg.what = 0x123;
msg.obj = result;
mHandler.sendMessage(msg);
}
}.start();
}
private String getNewOrderInfo() {
StringBuilder sb = new StringBuilder();
sb.append("partner=\"");
sb.append(Keys.DEFAULT_PARTNER);
sb.append("\"&out_trade_no=\"");
sb.append("12312313124451");
sb.append("\"&subject=\"");
sb.append("商品名..");
sb.append("\"&body=\"");
sb.append("商品描写叙述..");
sb.append("\"&total_fee=\"");
sb.append("0.01");
sb.append("\"¬ify_url=\"");
// 网址须要做URL编码
sb.append(URLEncoder.encode("http://notify.java.jpxx.org/index.jsp"));
sb.append("\"&service=\"mobile.securitypay.pay");
sb.append("\"&_input_charset=\"UTF-8");
sb.append("\"&return_url=\"");
sb.append(URLEncoder.encode("http://m.alipay.com"));
sb.append("\"&payment_type=\"1");
sb.append("\"&seller_id=\"");
sb.append(Keys.DEFAULT_SELLER);
// 假设show_url值为空,可不传
// sb.append("\"&show_url=\"");
sb.append("\"&it_b_pay=\"1m");
sb.append("\"");
return new String(sb);
}
private String getSignType() {
return "sign_type=\"RSA\"";
}
}
发送的商品參数与返回的商品參数依据自己的业务改动;
Tip:9000错误--报系统错误的 自己检查你的公钥 密钥在站点项目配置对不,大写和小写要注意;下面有出现过的错误及解决方式请补充.
Android-支付宝快捷支付的更多相关文章
- Android 支付宝快捷支付集成及ALI64错误的有效解决
支付宝开放平台採用了RSA安全签名机制,开发人员能够通过支付宝公钥验证消息来源.同一时候可使用自己的私钥对信息进行加密. RSA算法及数字签名机制是支付宝开放平台与开发人员网关安全通信的基础.若开发人 ...
- 移动APP 支付宝快捷支付开发流程
[代码] [Java]代码 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 ...
- android支付宝app支付(原生态)-包括android前端与java后台
本文讲解了 android开发的原生态app集成了支付宝支付, 还提供了java后台服务器处理支付宝支付的加密代码, app前端与java后台服务器使用json数据格式交互信息,java后台服务主要用 ...
- Android 支付宝/微信支付结果判断
微信支付结果码 private static final int PAY_OK = 0; //交易成功 private static final int PAY_ERR = -1; //交易失败 pr ...
- phonegap支付宝2.0移动快捷支付插件IOS版
坑爹的支付宝,一两年都没有更新sdk了,这两天突然更新sdk,而且更新的变化特别大,所以只能对之前的支付宝快捷支付插件重新写了一遍. 这样既顺应了支付宝的更新,同时也支持了ios8. 废话少说,集成过 ...
- Android 支付宝接入时常见的问题
1.概述 首先说明下,Android支付宝接入用的是快捷支付,下载地址是https://b.alipay.com/order/techService.htm 支付宝移动接入地址https://b ...
- Android学习笔记_69_android 支付宝之网页支付和快捷支付
参考资料: https://b.alipay.com/order/productDetail.htm?productId=2013080604609654 https://b.alipay.com/o ...
- android支付宝支付开发过程
原文:android支付宝支付开发过程 支付宝开发流程: 1.在支付宝申请一个账号并开通开发者功能和移动支付的功能. 支付宝地址:https://auth.alipay.com/login/index ...
- java如何集成支付宝移动快捷支付功能
项目需要,需要在客户端集成支付宝接口.第一次集成,过程还是挺简单的,不过由于支付宝官方文档写的不够清晰,也是走了一些弯路,下面把过程写出来分享给大家.就研究了一下:因为使用支付宝接口,就需要到支付宝官 ...
- (转载)Android支付宝支付封装代码
Android支付宝支付封装代码 投稿:lijiao 字体:[增加 减小] 类型:转载 时间:2015-12-22我要评论 这篇文章主要介绍了Android支付宝支付封装代码,Android支付的时候 ...
随机推荐
- improper Advertising identifier [IDFA] Usage. Your app contains the Advertising Identifier [IDFA] AP
找到答案了.随便传个包上去.然后拒绝掉,又一次prepare to upload.就会出现选项. 相应选择就好了.
- mapreduce程序来实现分类
文件的内容例如以下所看到的: 5 45 8 876 6 45 要求最后的输出格式: 1 5 2 6 3 8 4 45 5 45 5 876 首先,这个题目是须要对文 ...
- effective c++ 条款4 make sure that objects are initialized before they are used
1 c++ 类的数据成员的初始化发生在构造函数前 class InitialData { public: int data1; int data2; InitialData(int a, int b) ...
- 一道看似简单的sql需求(转)
听说这题难住大批高手,你也来试下吧.ps:博问里的博友提出的. 原始数据 select * from t_jeff t 简单排序后数据 select * from t_jeff t order by ...
- 实现能够直接粘QQ贴截图的bug管理功能
对于一个功能强大的协作平台来说,todo管理和bug管理是不可缺少的功能.Todo和bug往往不是通过一些简单的文字就能实现的,有时候须要配以图片的说名,之前用过的项目管理平台都是以附件的形式上传图片 ...
- WPF技术触屏上的应用系列(六): 视觉冲击、超炫系统主界面、系统入口效果实现
原文:WPF技术触屏上的应用系列(六): 视觉冲击.超炫系统主界面.系统入口效果实现 去年某客户单位要做个大屏触屏应用,要对档案资源进行展示之用.客户端是Window7操作系统,54寸大屏电脑电视一体 ...
- javascript有用小技巧—实现分栏显示
记得给师哥师姐測试考试系统的时候,看到他们的考试页面能够实现隐藏左边的考生信息部分,当时认为好高大上.好人性化. 如今学了javascript,我也能实现这个功能了,以下来显摆一下. 1.页面设计: ...
- [INS-32052] Oracle基文件夹和Oracle主文件夹位置同样
1.错误描写叙述 [INS-32052] Oracle基文件夹和Oracle主文件夹位置同样 2.错误原因 Oracle基文件夹和Oracle主文件夹位置同样 3.解决的方法 Oracle ...
- DSR on Openstack POC
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbWFvbGlwaW5nNDU1bWxwNDU1/font/5a6L5L2T/fontsize/400/fil ...
- 【Android进阶】Application对象的详解
1:Application是什么? Application和Activity,Service一样,是android框架的一个系统组件,当android程序启动时系统会创建一个 application对 ...