Stellen Sie aufgrund der Projektanforderungen eine Verbindung zu Sesame Credit her, um Benutzer zu authentifizieren. Öffnen Sie die offizielle Website von Sesame Credit (https://b.zmxy.com.cn/index.htm), um die offizielle Demo anzuzeigen, wie in der Abbildung gezeigt Dokument
Ich hatte sofort das Gefühl, dass diese offizielle Demo Quatsch war.
Sie müssen Folgendes beachten:
1. Generieren Sie den Schlüssel lokal und befolgen Sie die Anweisungen
2. Erstellen Sie eine Anwendung in „Merchant Management“ und verwenden Sie den im ersten Schritt generierten Schlüssel, um den von Zhima Credit bereitgestellten öffentlichen Schlüssel zu erhalten
Hinweis: Der von Zhima Credit bereitgestellte öffentliche Schlüssel kann nur kopiert werden, aber das kopierte Format ist falsch. Wir müssen jede Zeile von 64 manuell verarbeiten, was mit dem von uns generierten Schlüsselformat übereinstimmt, andernfalls funktioniert die Verschlüsselung und Entschlüsselung nicht möglich sein;3. Die zu übergebenden Parameter können aus dem Dokument abgerufen werden. Die obige Abbildung generiert nur einen Parameter, der verarbeitet werden muss, um die Datenrückgabe des entsprechenden Dokuments zu generieren
Gehe direkt zum Code:
<?php include('/ZmopClientphp'); include('/ZhimaAuthInfoAuthorizeRequestphp'); class TestAuthFreeze { //芝麻信用网关地址 public $gatewayUrl = "https://zmopenapizmxycomcn/openapido"; //商户公钥文件 //芝麻公钥文件 public $privateKeyFile = "path/rsa_private_keypem"; public $zmPublicKeyFile = "path/zima_public_keypem"; //数据编码格式 public $charset = "UTF-8"; //芝麻分配给商户的appId public $appId = "1000003"; //生成移动端SDK 集成需要的sign 参数 ,并进行urlEncode public function generateSign($certNo,$name,$certType='IDENTITY_CARD'){ $client = new ZmopClient($this->gatewayUrl, $this->appId, $this->charset, $this->privateKeyFile,$this->zmPublicKeyFile); $request = new ZhimaAuthInfoAuthorizeRequest(); $request->setScene("test"); // 授权来源渠道设置为appsdk $request->setChannel("appsdk"); // 授权类型设置为2标识为证件号授权见“章节4中的业务入参说明identity_type” $request->setIdentityType("2"); // 构造授权业务入参证件号,姓名,证件类型;“章节4中的业务入参说明identity_param” $request->setIdentityParam("{\"certNo\":\"$certNo\",\"certType\":\"IDENTITY_CARD\", \"name\":\"$name\"}"); // 构造业务入参扩展参数“章节4中的业务入参说明biz_params” $request->setBizParams("{\"auth_code\":\"M_APPSDK\"}"); $params = $client->generateEncryptedParamWithUrlEncode($request); $sign = $client->generateSignWithUrlEncode($request); $data['gatewayUrl'] = $this->gatewayUrl; $data['appId'] = $this->appId; $data['charset'] = $this->charset; $data['params']=$params; $data['sign'] = $sign; return $data; } // 解密 public function zhimacallback($params){ $this->privateKeyFile= "path/rsa_private_keypem"; $client = new ZmopClient($this->gatewayUrl, $this->appId, $this->charset, $this->privateKeyFile,$this->zmPublicKeyFile); $result=$client->generateSignCallBack($params,$this->privateKeyFile); return $result; } } ?>