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.pemrsa_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_lib工程作为我们工程的资源工程,该工程必须跟我们的工程在同一层级目录下,并作为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 = "[email protected]";

	//商户私钥,自助生成
	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-支付宝快捷支付

时间: 2024-11-05 12:17:09

Android-支付宝快捷支付的相关文章

Android 支付宝快捷支付集成及ALI64错误的有效解决

支付宝开放平台採用了RSA安全签名机制,开发人员能够通过支付宝公钥验证消息来源.同一时候可使用自己的私钥对信息进行加密. RSA算法及数字签名机制是支付宝开放平台与开发人员网关安全通信的基础.若开发人员不熟悉RSA及数字签名.请先查阅相关文档. 1.RSA私钥及公钥生成 官方提供的开发文档存在一些误导,这里简要概括为这几句话: RSA密钥生成命令 生成RSA私钥 openssl>genrsa -out rsa_private_key.pem 1024 生成RSA公钥 openssl>rsa -

Android客户端集成支付宝快捷支付

一. 第三方支付开放接口 1. 支付宝 面向用户:  支付宝.微信 面向企业:  连连支付.东方支付 2. 官网 https://doc.open.alipay.com/doc2/detail?treeId=59&articleId=103563&docType=1 3. 请求参数说明 https://doc.open.alipay.com/doc2/detail.htm?treeId=59&articleId=103663&docType=1 4. 支付宝集成 1) 安全

关于集成支付宝快捷支付(无线)的流程

最近在开发Android客户端需要集成支付宝款姐支付(无线),被各种公钥私钥绕的头晕故在这里记录一下,希望对其他人也有所帮助 本文使用的开发语言: 客户端:JAVA 服务端:PHP 1.确保你的支付宝商家帐号已经签约快捷支付(无线) 2.下载快捷支付(无线)SDK,目录结构如下图 注:openssl用来生成商户的公钥和私钥,其余的一目了然 2.1 生成一对公钥和私钥,然后打开公钥(rsa_public_key.pem)去除-----BEGIN PUBLIC KEY----------END PU

2分钟快速集成支付宝快捷支付

本文介绍了iOS快速集成支付宝支付的方法,本文中介绍的方法是经过一次封装,因此配置完成之后调用仅需一行代码即可支付宝支付,非常的方便,希望大家喜欢. 我只是根据官方的文档,对支付宝的SDK做了进一步封装,其中密钥的生成很简单,需要看官方的文档,官方的文档我在工程附件目录里也有一份,如果需要马上集成,没工夫研究的话,可以大致看一下密钥的生成即可,其他的配置我会在下面进行讨论. 要在iOS应用里集成支付宝支付,需要公司和支付宝签约,然后生成相应的密钥.密钥的生成支付宝的开发文档里已经说的非常清楚了,

Android 支付宝 移动支付接口 快速配置

RSA签名 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 注意:“>”符号

实现Android支付宝声波支付时的波纹视图

转载请注明出处,本文来自[ Mr.Simple的博客 ]. 我正在参加博客之星,点击这里投我一票吧,谢谢~ 前言 自从支付宝声波支付的波纹效果出来以后,这种形式就慢慢流行开来,比如各种安全软件在扫描时会采用这种动画效果,这种波纹荡漾起来也是增加了动感十足呢,如图1. 图1 今天我们就来学习如何实现这种波纹效果,以及最大限度的支持低版本的系统. 波纹实现 看到这种效果,最直接的感官就是波纹视图慢慢的变大.并且颜色变淡,因此我在第一次摸索的过程中直接继承自View,然后开启一个线程来计算这个视图的此

iOS开发:2分钟快速集成支付宝快捷支付

?这篇文章介绍了iOS快速集成支付宝支付的方法,这篇文章中介绍的方法是通过一次封装,因此配备完结今后调用仅需一行代码即可支付宝支付,非常的便当,希望我们喜欢. 我仅仅根据官方的文档,对支付宝的SDK做了进一步封装,其间密钥的生成很简略,需要看官方的文档,官方的文档我在工程附件目录里也有一份,假设需要立刻集成,没工夫研讨的话,可以大致看一下密钥的生成即可,其他的配备我会在下面进行谈论. 要在iOS运用里集成支付宝支付,需要公司和支付宝签约,然后生成相应的密钥.密钥的生成支付宝的开发文档里现已说的非

Android 支付宝移动支付SDK集成

上传公钥

phonegap支付宝2.0移动快捷支付插件IOS版

坑爹的支付宝,一两年都没有更新sdk了,这两天突然更新sdk,而且更新的变化特别大,所以只能对之前的支付宝快捷支付插件重新写了一遍. 这样既顺应了支付宝的更新,同时也支持了ios8. 废话少说,集成过之前版本的,先把之前的所以代码删掉包括文件.然后全新的集成新版本插件.[所有拖放是在xcode下面进行] 需要完成Phonegap 的支付宝快捷支付 需要先配置好支付宝相应的信息具体看 phonegap -Android客户端集成支付宝快捷支付(一) 1.插件包里面有很多文件,解压后能大概看一下,同

API开发第五篇:服务端整合支付宝快捷移动支付接口

<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"><span style="white-space:pre"> </span>在开发中需要使用支付宝的快捷移动支付接口,通过文档知道,当完成客户端请求完成后,支付宝服务器会异步通知客户端的服务器.这里的关键是提供给支付宝的这个用于异步通知的con