2

accountright Live api v2 のサンドボックス アカウントで新しい顧客を作成しようとしています。サンプル php oAuth クラスを使用してアクセス トークンを取得できます。新しい顧客を作成するためのリクエストを送信すると、403 禁止された応答が返されます。顧客の作成に使用しているコードは次のとおりです。

    function saveContact($type, $contactId, $CoLastName, $FirstName, $IsActive, $TaxCodeId, $FreightTaxCodeId) {
    global $apiBaseURL;


    $url =  'https://ar1.api.myob.com/accountright/c3ee2b2a-6b8f-4d36-bef5-5e0c89bf104a/Contact/Customer';
    $param = '{
    "LastName": "Kumar",
    "FirstName": "Amit",
    "IsIndividual": true,
    "IsActive": true,
    "SellingDetails": {
        "TaxCode": {
            "UID": "352a8200-bf57-4723-9165-9f80429afd7d"
        },
        "FreightTaxCode": {
            "UID": "352a8200-bf57-4723-9165-9f80429afd7d"
        }
    }
}';

    // build the cftoken
  $cftoken = base64_encode('Administrator:');

      $headers = array(
        'Authorization: Bearer '.$_SESSION['access_token'],
        'x-myobapi-cftoken: '.$cftoken,
        'x-myobapi-key: '.api_key,
        'x-myobapi-version: v2',
        'Content-Type: application/json',                                                                                

    );


    $session = curl_init($url); 



//  curl_setopt ($session, CURLOPT_HTTPHEADER, $headers);

    // Tell curl to use HTTP POST
    curl_setopt ($session, CURLOPT_POST, true); 
    // Tell curl that this is the body of the POST
    curl_setopt ($session, CURLOPT_POSTFIELDS, $params); 
    // setup the authentication
    curl_setopt($session, CURLOPT_USERPWD, "Administrator:");
    curl_setopt($session, CURLOPT_HEADER, $headers); 
    curl_setopt($session, CURLOPT_RETURNTRANSFER, true);
    //curl_setopt(CURLOPT_SSL_VERIFYPEER, true); // enforce that when we use SSL the verification is correct



    $response = curl_exec($session); 
    var_dump($response);

    curl_close($session);

    return($response);
}

私が何かを逃した場合は提案してください。

4

2 に答える 2

0

うーん、あなたのコードから、「x-myobapi-cftoken: [Base64Encode(username:password)]」が必要になるかもしれないと思います。ログイン情報が正しいことを確認するためです。

また、リクエスト内容に CompanyName も必要だと思います。

于 2016-11-04T07:42:25.050 に答える