首先我想说的支付宝开放平台也就是蚂蚁金服开放平台,对于移动端开发者的相关文档以及主页导航太少,不是很友好。我开发要用到用户芝麻分认证(普惠版),但是根本找不到移动端的相关开发配置文档(可能没开放就什么也没说)。找支付宝技术支持聊了一下,首先有个需求就是获取支付宝用户信息,给了我一个连接,看了一下,就是要在开放平台有获取用户信息的权限。但是相关的移动端文档,开发步骤没找到。

 有一个关键点就是,文档中说支付宝第三方登录和支付的SDK是融合的,所以我就去下载了支付宝支付的SDK&Demo,示例代码中还真有拉去授权的方法:

/**
  * 支付宝账户授权业务
  * 
  * @param v
  */
 public void authV2(View v) {


 if (TextUtils.isEmpty(PID) || TextUtils.isEmpty(APPID)
 || (TextUtils.isEmpty(RSA2_PRIVATE) && TextUtils.isEmpty(RSA_PRIVATE))
 || TextUtils.isEmpty(TARGET_ID)) {
 new AlertDialog.Builder(this).setTitle("警告").setMessage("需要配置PARTNER |APP_ID| RSA_PRIVATE| TARGET_ID")
 .setPositiveButton("确定", new DialogInterface.OnClickListener() {
 public void onClick(DialogInterface dialoginterface, int i) {
 }
 }).show();
 return;
 }


 /**
  * 这里只是为了方便直接向商户展示支付宝的整个支付流程;所以Demo中加签过程直接放在客户端完成;
  * 真实App里,privateKey等数据严禁放在客户端,加签过程务必要放在服务端完成;
  * 防止商户私密数据泄露,造成不必要的资金损失,及面临各种安全风险; 
  * 
  * authInfo的获取必须来自服务端;
  */
 boolean rsa2 = (RSA2_PRIVATE.length() > 0);
 Map<String, String> authInfoMap = OrderInfoUtil2_0.buildAuthInfoMap(PID, APPID, TARGET_ID, rsa2);
 String info = OrderInfoUtil2_0.buildOrderParam(authInfoMap);
 
 String privateKey = rsa2 ? RSA2_PRIVATE : RSA_PRIVATE;
 String sign = OrderInfoUtil2_0.getSign(authInfoMap, privateKey, rsa2);
 final String authInfo = info + "&" + sign;
 Runnable authRunnable = new Runnable() {


 @Override
 public void run() {
 // 构造AuthTask 对象
 AuthTask authTask = new AuthTask(PayDemoActivity.this);
 // 调用授权接口,获取授权结果
 Map<String, String> result = authTask.authV2(authInfo, true);


 Message msg = new Message();
 msg.what = SDK_AUTH_FLAG;
 msg.obj = result;
 mHandler.sendMessage(msg);
 }
 };


 // 必须异步调用
 Thread authThread = new Thread(authRunnable);
 authThread.start(); }

这里面要有APPID,PID,商户秘钥,这些代码中都有解释,文档中的介绍在这里https://docs.open.alipay.com/218/105327。

按照文档所给的参数配置好以后,我成功的进入到支付宝的授权页,但是,但是,只有这样的结果:

Android 支付宝SDK授权绑定授权 手机支付宝授权_Android


而不是这样色滴:

Android 支付宝SDK授权绑定授权 手机支付宝授权_开放平台_02

变换了各种参数,就是搞不出来,只能找技术支持。技术支持直接说获取不到,现在不能获取用户的私密信息。不死心在论坛上问,也是同样的答复。无语了,搞了半天人家就是没给,结果我还搞不懂,在那瞎搞了一天。

提醒一下,找支付宝技术客服有几点:1、开放平台账户要有 2、一直提问你的问题

这样就会出现请联系人工客服了。