Maison > développement back-end > tutoriel php > Processus de connexion avec autorisation InfoStr pour l'autorisation de connexion à l'application Alipay

Processus de connexion avec autorisation InfoStr pour l'autorisation de connexion à l'application Alipay

藏色散人
Libérer: 2023-04-07 11:46:02
avant
6918 Les gens l'ont consulté

Site officiel :

SDK du serveur : https://docs.open.alipay.com/54/103419/

Comment utiliser le client pour se connecter : https:// docs.open .alipay.com/218/105329/

Processus de connexion avec autorisation de l'application :

服务端先拿到 App 端 调用 支付宝 SDK 所需要的 infoStr
App 端 通过 infoStr 获得用户 授权 code
服务端通过 授权 code 拿到请求 token
服务端通过 token 获得用户信息
Copier après la connexion

Processus de connexion avec autorisation InfoStr pour l'autorisation de connexion à l'application Alipay

Étapes de connexion à Alipay côté application :

1. Informations de transfert back-endStr

Officiellement, c'est écrit comme ceci : https://docs.open.alipay.com/218/105325/

Voir l'exemple ici :

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
Copier après la connexion

J'étais très confiant au début, j'ai vérifié si le SDK avait la méthode alipay.open.auth.sdk.code.get, mais je n'ai pas vu ce mot après la recherche globale

Ensuite, j'ai essayé d'utiliser cette connexion pour demander si j'obtiendrais le code d'authentification, mais cela a toujours échoué.

Mon humeur a explosé, puis j'ai vu un blog et j'ai réalisé que j'avais tort dès le début. Il s'avère que le retour ne nécessite qu'un épissage en arrière-plan, aucune demande n'est requise.

Peut-être que l'idée du début était incorrecte, alors j'ai lutté tout l'après-midi.

Citation d'autres développeurs :

Processus de connexion avec autorisation InfoStr pour lautorisation de connexion à lapplication Alipay

Obtenir des informationsStr

/**
 * 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;
}
Copier après la connexion

Le code vient de https:// learnku .com/articles/30076#réponses

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:csdn.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal