支付宝的快捷支付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_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 = "ssssss@163.com";
//商户私钥,自助生成
public static final String PRIVATE = "";
public static final String PUBLIC = "";
}
从Demo中提取Base64.javaResult.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支付宝快捷支付demo,简单实现快捷支付。
android 防支付宝支付界面
支付宝移动快捷支付android源码.
支付宝移动快捷支付android源码更新(Delphi 11.3 Android 应用接入支付宝SDK的方法).rar
android应用开发时遇到的支付宝快捷支付的Demo
Android高级应用源码-支付宝_安卓苹果_快捷支付_文档_代码例子.zip
简单快捷的Android仿支付宝提现,根据依赖,代码少,简单易懂。
快捷简洁的集成了安卓端支付宝支付demo只需三个参数,
快捷支付(无线)是一种程序式的支付方式,在手机、掌上电脑等无线设备的应用程序内,买家可通过支付宝进行付款购买特定服务或商品,资金即时到账。
只需输入自己的私钥(加密后)和PID以及企业支付宝账号
Android实例源码-支付例子类安卓源代码(11例) BlogForZFB NetPayClinet2.5 for java WS_SECURE_PAY 声波支付例子SinVoice-...支付宝_安卓苹果_快捷支付_文档_代码例子 支付宝无线支付官方的例子和资料 银联支付Demo
亲测可用,unity3d接入支付宝 android篇
支付宝快捷支付,联合登陆,android和iPhone版本sdk,以及文档。
Android通过支付宝进行刷脸认证 官方文档快速接入 一、简介 支付宝刷脸认证是通过支付宝人脸识别进行身份校验,主要包括三个模块身份认证初始化服务、开始认证、认证结果查询 二、应用场景 认证场景码 FACE SMART_...
支付宝移动快捷支付应用集成接入包支付接口接入与使用规则
Android应用源码之支付宝_安卓苹果_快捷支付_文档_代码例子.zip