談談php對接芝麻信用踩的坑_php執行個體

來源:互聯網
上載者:User
由於項目需要,接入芝麻信用對使用者進行認證,開啟芝麻信用官方網站( https://b.zmxy.com.cn/index.htm)查看官方demo,在文檔中看到

瞬間覺得這個官方demo的垃圾了。

在其中有需要注意如下:

1.本地產生密鑰,可以按照提示進行產生

2.在“商家管理”中建立應用,通過第一步產生的密鑰得到芝麻信用給的公開金鑰,這就得到了加密用的密鑰

注意:芝麻信用給的公開金鑰只能複製,但是複製出來的格式是不對的,需要咱們手工處理每行64,和咱們產生的密鑰格式一致,不然加密和解密將不能進行;

3.需要傳遞的參數根據文檔可以得出,只是產生了一個參數,需要處理產生對應文檔的資料返回;

直接上代碼:

<?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;   } }  ?> 

以上就是本文的全部內容,希望對大家的學習有所協助,也希望大家多多支援指令碼之家。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.