码迷,mamicode.com
首页 > Web开发 > 详细

用友T+ v2d对接,PHP版

时间:2018-07-16 18:29:31      阅读:288      评论:0      收藏:0      [点我收藏+]

标签:val   11.14   secret   sub   ips   sprint   control   close   xtend   


用友T+ V2对接PHP版本,使用Orgid验证方式。

<?php
require_once dirname(__FILE__) . ’/../extensions/vendor/vendor/autoload.php’;

use \Firebase\JWT\JWT;

class TestController extends CController
{
    const appKey = ’192be680fsfjsdjfskljfsjlkgjklsdjfgkldsjlk’;
    const appSecret = ’dfasdfsa’;
    const userName = ’133333333’;
    const password = ’56456’;
    const accountNum = ’4’;//正式环境

    function getMillisecond()
    {
        list($t1, $t2) = explode(’ ’, microtime());
        return (float)sprintf(’%.0f’, (floatval($t1) + floatval($t2)) * 1000);
    }

    public function actionTest()
    {
        $uri = ’http://127.0.0.1:8080/tplus/api/v2/collaborationapp/GetAnonymousTPlusToken?IsFree=1’;
        //密钥
        $privateKey = <<<EOD
-----BEGIN RSA PRIVATE KEY-----

-----END RSA PRIVATE KEY-----
EOD;
        $token = [
            "appkey" => self::appKey,
            "orgid" => "123456789",
            "appsecret" => self::appSecret
        ];
        $tokens = json_encode($token);
        $payload = [
            ’sub’ => ’cjt’,
            ’exp’ => $this->getMillisecond() + 30000,
            ’datas’ => md5($tokens)
        ];

        $jwt = JWT::encode($payload, $privateKey, ’RS256’);
        $auth = array(
            ’appKey’ => self::appKey,
            ’authInfo’ => $jwt,
            ’orgId’ => ’123456789’,
        );
        $Authorization = base64_encode(stripslashes(json_encode($auth)));
        $header = array(
            "Authorization:$Authorization"
        );
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $uri);
        curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        // curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($args));
        curl_setopt($ch, CURLOPT_POST, 1);
        $response = curl_exec($ch);
        echo "<pre>";
        print_r($response);
        echo "</pre>";
        curl_close($ch);
        $response = json_decode($response, true);

        /**
        *上:获取token
        */


        $payload = [
            ’sub’ => ’cjt’,
            ’exp’ => $this->getMillisecond() + 30000,
            ’datas’ => md5($tokens),
            "access_token" => $response[’access_token’],
        ];
        $jwt = JWT::encode($payload, $privateKey, ’RS256’);

        $auth2 = array(
            ’appKey’ => self::appKey,
            ’authInfo’ => $jwt,
            ’orgId’ => ’123456789’,
        );
        $Authorization2 = base64_encode(stripslashes(json_encode($auth2)));
        $uri2 = ’http://127.0.0.1/tplus/api/v2/inventory/Query’;


        $args = array(’Code’ => ’16742’);//测试数据
        $header2 = array(
            "Authorization:$Authorization2" . ’’,
        );
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $uri2);
        curl_setopt($ch, CURLOPT_HTTPHEADER, $header2);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($args));
        curl_setopt($ch, CURLOPT_POST, 1);
        $response1 = curl_exec($ch);
        echo "<pre>";
        print_r($response1);
        echo "</pre>";
        curl_close($ch);
    }
}
?>

疑问联系Q:657122957



用友T+ v2d对接,PHP版

标签:val   11.14   secret   sub   ips   sprint   control   close   xtend   

原文地址:https://www.cnblogs.com/liuliwei/p/9319093.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!