支付宝第三方登录集成文档
来源:互联网 发布:java投票系统源代码 编辑:程序博客网 时间:2024/05/02 02:57
之前项目用到支付宝的第三方登录,一看到就懵圈了,难道支付宝还有第三方登录吗?经过千辛万苦的百度,终于集成成功了,特在此记录下来供有需要的朋友们参考!如有不足,欢迎补充!!!
1. 从官方地址https://doc.open.alipay.com/doc2/detail.htm?treeId=54&articleId=104509&docType=1 下载demo (里面包含了sdk)
2. 导入到as中,找到PayDemoActivity类, authV2(View v)就是授权的方法,把这个方法copy到自己的需要调用的地方的方法
3. 把AuthResult类和OrderInfoUtil2_0工具类一起copy到自己的工程包下
4. 需要从你的上司那得到以下的参数
/** 支付宝支付业务:入参app_id */
public static final String APPID = "";
/** 支付宝账户登录授权业务:入参pid值*/
public static final String PID = "";
/** 支付宝账户登录授权业务:入参target_id值*/
public static final String TARGET_ID = "";
/** 商户私钥,pkcs8格式*/
public static final String RSA_PRIVATE = "";
5.在授权成功后得到返回的参数仅当== resultStatus为“9000”且result_code为“200”时,代表授权成功(result="success=true&auth_code=d9d1b5acc26e461dbfcb6974c8ff5E64&result_code=200 &user_id=2088003646494707")
auth_code : 是userOpenToken
user_id : 是uid
以下是开发过程中遇到的问题和解决方法:
摘要: java.security.spec.InvalidKeySpecException: java.lang.RuntimeException: error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag ClassCastException: com.android.org.bouncycastle.asn1.DLSequence cannot be cast to com.android.org.bouncycastle.asn1.ASN1Integer
public class SignUtils {
private static final String ALGORITHM = "RSA";
private static final String SIGN_ALGORITHMS = "SHA1WithRSA";
private static final String DEFAULT_CHARSET = "UTF-8";
public static String sign(String content, String privateKey) {
try {
PKCS8EncodedKeySpec priPKCS8 = new PKCS8EncodedKeySpec(
Base64.decode(privateKey));
KeyFactory keyf = KeyFactory.getInstance(ALGORITHM);
PrivateKey priKey = keyf.generatePrivate(priPKCS8);
java.security.Signature signature = java.security.Signature
.getInstance(SIGN_ALGORITHMS);
signature.initSign(priKey);
signature.update(content.getBytes(DEFAULT_CHARSET));
byte[] signed = signature.sign();
return Base64.encode(signed);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
第一开始,调用KeyFactory keyf = KeyFactory.getInstance(ALGORITHM);报错。如下:
java.security.spec.InvalidKeySpecException: java.lang.RuntimeException: error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag
KeyFactory keyf = KeyFactory.getInstance(ALGORITHM, "BC"); 加入了“BC”报如下错误:
com.android.org.bouncycastle.jcajce.provider.asymmetric.util.ExtendedInvalidKeySpecException: unable to process key spec: java.lang.ClassCastException: com.android.org.bouncycastle.asn1.DLSequence cannot be cast to com.android.org.bouncycastle.asn1.ASN1Integer
最终因为传入私钥错误。需要重新生成私钥
- 支付宝第三方登录集成文档
- Android 集成支付宝第三方登录
- Android 集成支付宝第三方登录
- 集成第三方支付宝
- 支付宝第三方登录
- 第三方支付集成
- 第三方支付集成
- 第三方登录之支付宝登录
- 安卓集成第三方支付宝
- 第三方支付宝的集成
- 第三方支付宝集成Demo
- 第三方登录之支付宝
- 第三方登录-支付宝篇
- 服务器端Thinkphp3.2.3集成支付宝第三方支付
- iOS第三方支付集成
- android集成第三方支付
- 集成第三方组件--Android 集成支付宝
- ShareSDK集成第三方登录
- convert(NVARCHAR,getdate(),23)中23是什么意思?
- mysql基本操作
- NNU_20161124_8PAT1013. 数素数
- 存储过程输出OUT参数为中文时,返回为null
- Android 状态栏的 颜色 的设置上的一些问题 4.4以上 ,字体颜色优化
- 支付宝第三方登录集成文档
- 自定义Retrofit转化器Converter
- maven项目update project 后项目jdk变成1.5
- HTTP状态码
- 冒泡排序的理解
- 实体类中使用包装类
- Android闪动的文字效果
- jquery onblur事件中调用focus方法获取不到焦点问题
- 浅谈工作流调度系统