支付宝app登录授权的infoStr授权登录流程-php教程

资源魔 34 0
官网:

效劳端sdk:https://docs.open.alipay.com/54/103419/

客户端若何应用登录:https://docs.open.alipay.com/218/105329/

app受权登录流程:

效劳端先拿到 App 端 挪用 领取宝 SDK 所需求的 infoStr
App 端 经过 infoStr 取得用户 受权 code
效劳端经过 受权 code 拿到申请 token
效劳端经过 token 取得用户信息

app端领取宝登岸步骤:

1.后端传infoStr

民间是这样写的:https://docs.open.alipay.com/218/105325/

看到这边的实例:

apiname=com.alipay.account.auth&app_id=xxxxx&app_name=mc&auth_type=AUTHACCOUNT&biz_type=openservice&method=alipay.open.auth.sdk.code.get&pid=xxxxx&product_id=APP_FAST_LOGIN&scope=kuaijie&sign_type=RSA2&target_id=20141225xxxx&sign=fMcp4GtiM6rxSIeFnJCVePJKV43eXrUP86CQgiLhDHH2u%2FdN75eEvmywc2ulkm7qKRetkU9fbVZtJIqFdMJcJ9Yp%2BJI%2FF%2FpESafFR6rB2fRjiQQLGXvxmDGVMjPSxHxVtIqpZy5FDoKUSjQ2%2FILDKpu3%2F%2BtAtm2jRw1rUoMhgt0%3D

刚开端很自信,查找一下sdk有无 alipay.open.auth.sdk.code.get 这个的办法,然而全局搜寻之后不看到这个字样

而后测验考试着去用这个衔接去申请能否会失去这个 authcode,然而仍是失败了。

心境炸裂了,而后看到一篇博客才晓得,我一开端就错了,原来前往的就只要要后盾拼接,没有需求申请。

可能刚开端的思绪就没有正确招致的吧, 折腾了一下战书。

援用一下其余开发职员的话吧:

c1cda7eacc5952b9eede1f75f459e1b.png

猎取infoStr

/**
 * InfoStr APP登录需求的的infostr
 * 
 * @return String
 */
public function infoStr()
{
    $infoStr = http_build_query([
        'apiname' => 'com.alipay.account.auth',
        'method' => 'alipay.open.auth.sdk.code.get',
        'app_id' => $this->app_id,
        'app_name' => 'mc',
        'biz_type' => 'openservice',
        'pid' => $this->pid,
        'product_id' => 'APP_FAST_LOGIN',
        'scope' => 'kuaijie',
        'target_id' => mt_rand(999, 99999), //商户标识该次用户受权申请的ID,该值正在商户端应放弃惟一
        'auth_type' => 'AUTHACCOUNT', // AUTHACCOUNT代表受权;LOGIN代表登录
        'sign_type' => 'RSA2',
    ]);
    $infoStr .= '&sign='.$this->enRSA2($infoStr);
    return $infoStr;
}
/**
 * enRSA2 RSA加密
 * 
 * @param String $data
 * @return String
 */
private function enRSA2($data)
{
    $str = chunk_split(trim($this->private_key), 64, "\n");
    $key = "-----BEGIN RSA PRIVATE KEY-----\n$str-----END RSA PRIVATE KEY-----\n";
    // $key = file_get_contents(storage_path('rsa_private_key.pem')); 为文件时这样引入
    $signature = '';
    $signature = openssl_sign($data, $signature, $key, OPENSSL_ALGO_SHA256)?base64_encode($signature):NULL;
    return $signature;
}

代码来自https://learnku.com/articles/30076#replies

以上就是领取宝app登录受权的infoStr受权登录流程的具体内容,更多请存眷资源魔其它相干文章!

标签: php开发教程 php开发资料 php开发自学 支付宝

抱歉,评论功能暂时关闭!