K/3 Cloud Web API销售出库单PHP完整示例【分享】
金蝶云社区-天冥异
天冥异
10人赞赏了该文章 3667次浏览 未经作者许可,禁止转载编辑于2018年07月19日 20:32:42

按照惯例,先上图
【销售出库单】保存,
如图:已经打印出 登陆请求及登陆成功,保存请求及保存成功的返回信息。


如下代码,是完全可以直接进行运行的代码,具体详见代码中注释。

  1. <?php

  2.         /*

  3.                 php Cloud 系统集成 WebAPI方式 销售出库单 完整示例

  4.                 by wanghl 2015-12-02

  5.                 change by name time

  6.                 提高程序运行效率 代码中“ ->' 双引号改为单引号

  7.                 

  8.                 测试环境 Cloud5.0

  9.                 代码中Josn字串中数据是依据蓝海机械演示帐套业务数据进行构造。

  10.                 即使用还原的蓝海机械演示帐套,可以直接通过本Json字串进行导入测试。

  11.                 如是自己实际业务库的业务数据,可根据实际情况,进行替换即可。

  12.                                 

  13.                 在php的运行环境中Copy如下代码即可运行成功

  14.                 php.ini 需要开放 extension=php_curl.dll

  15.                 

  16.                 php下载地址:

  17.                 http://windows.php.net/download/

  18.                 iis+php 下相关配置

  19.                 http://jingyan.baidu.com/article/ff42efa97b0f96c19e22023b.html

  20.                 http://jingyan.baidu.com/article/6b97984d9fe9e91ca2b0bf3c.html

  21.         */

  22.         

  23.         //phpinfo();


  24.         //K/3 Cloud 业务站点地址

  25.         $cloudUrl = "http://192.168.18.133/k3cloud/";

  26.         

  27.         //登陆参数

  28.     $data = array(      

  29.         '55b828ecd6fc90',//帐套Id

  30.         'demo',//用户名

  31.         '888888',//密码

  32.         2052//语言标识

  33.     );

  34.         

  35.         //定义记录Cloud服务端返回的Session

  36.         $cookie_jar = tempnam('./tmp','CloudSession');  

  37.         $post_content = create_postdata($data);

  38.         

  39.         $result = invoke_login($cloudUrl,$post_content,$cookie_jar);

  40.         

  41.     //$array = json_decode($result,true);

  42.     header("Content-type: text/html; charset=gb2312");

  43.     echo '<pre>';print_r('登陆请求数据:');

  44.     echo '<pre>';print_r($post_content);


  45.     echo '<pre>';print_r('登陆返回结果:'); 

  46.         echo '<pre>';print_r($result); 

  47.     

  48.     $data_model = '{"Creator":"String","NeedUpDateFields":[],"Model":{"FID":0,"FBillTypeID":{"FBillTypeID":"","FNUMBER":"XSCKD01_SYS"},"FSaleOrgId":{"FOrgID":0,"FNUMBER":"103"},"FCustomerID":{"FCUSTID":0,"FNUMBER":"CUST0002"},"FStockOrgId":{"FOrgID":0,"FNUMBER":"101.2"},"FOwnerIdHead":{"FItemID":0,"FNUMBER":"103"},"FNote":"","SAL_OUTSTOCK__FEntity":[{"FMaterialID":{"FNumber":"1.01.001"},"FUnitID":{"FNumber":"Pcs","FName":""},"FStockID":{"FNumber":"CK001"},"FStockStausID":{"FNumber":"KCZT01_SYS"},"FMustQty":1,"FRealQty":1,"FAmount":0,"FPrice":0,"FTaxPrice":0,"FDiscount":0,"FDiscountRate":0,"FIsFree":true,"FLot":{"FNUMBER":"0000"}}],"SAL_OUTSTOCK__SubHeadEntity":{"FSettleCurrID":{"FCURRENCYID":0,"FNumber":"PRE001"},"FLocalCurrID":{"FCURRENCYID":0,"FNumber":"PRE001"},"FSettleOrgID":{"FOrgID":0,"FNumber":"103"},"FExchangeTypeID":{"FRATETYPEID":0,"FNumber":"HLTX01_SYS"},"FExchangeRate":"1","FBillAllAmount":0}}}';

  49.     $data = array(      

  50.         'SAL_OUTSTOCK',//业务对象标识FormId

  51.         $data_model//具体Json字串

  52.     );

  53.     

  54.     $post_content = create_postdata($data);

  55.         

  56.         $result = invoke_save($cloudUrl,$post_content,$cookie_jar);

  57.         

  58.     //$array = json_decode($result,true);  

  59.     echo '<pre>';print_r('销售出库单请求数据:'); 

  60.     echo '<pre>';print_r($post_content); 

  61.      

  62.     echo '<pre>';print_r('保存返回结果:'); 

  63.         echo '<pre>';print_r($result); 

  64.         

  65.         //登陆

  66.         function invoke_login($cloudUrl,$post_content,$cookie_jar)

  67.         {

  68.                 $loginurl = $cloudUrl.'Kingdee.BOS.WebApi.ServicesStub.AuthService.ValidateUser.common.kdsvc';

  69.                 return invoke_post($loginurl,$post_content,$cookie_jar,TRUE);

  70.         }

  71.         

  72.         //保存

  73.         function invoke_save($cloudUrl,$post_content,$cookie_jar)

  74.         {

  75.                 $invokeurl = $cloudUrl.'Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save.common.kdsvc';

  76.                 return invoke_post($invokeurl,$post_content,$cookie_jar,FALSE);

  77.         }

  78.         

  79.         //审核

  80.         function invoke_audit($cloudUrl,$post_content,$cookie_jar)

  81.         {

  82.                 $invokeurl = $cloudUrl.'Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit.common.kdsvc';

  83.                 return invoke_post($invokeurl,$post_content,$cookie_jar,FALSE);

  84.         }

  85.         

  86.         function invoke_post($url,$post_content,$cookie_jar,$isLogin)

  87.         {

  88.                 $ch = curl_init($url);


  89.                 $this_header = array(

  90.                         'Content-Type: application/json',

  91.                         'Content-Length: '.strlen($post_content)

  92.                 );

  93.                 

  94.                 curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');

  95.                 curl_setopt($ch, CURLOPT_HTTPHEADER, $this_header);

  96.                 curl_setopt($ch, CURLOPT_POSTFIELDS, $post_content);

  97.                 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

  98.                 if($isLogin){

  99.                         curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_jar);

  100.                 }

  101.                 else{

  102.                         curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_jar);

  103.                 }

  104.                 curl_setopt($ch, CURLOPT_TIMEOUT, 30);

  105.                   

  106.                 $result = curl_exec($ch); 

  107.                 curl_close($ch);  

  108.                 

  109.                 return $result;

  110.         }

  111.         

  112.         //构造Web API请求格式

  113.         function create_postdata($args) {

  114.              $postdata = array(

  115.                     'format'=>1,

  116.                 'useragent'=>'ApiClient',

  117.                 'rid'=>create_guid(),

  118.                 'parameters'=>$args,

  119.                 'timestamp'=>date('Y-m-d'),

  120.                 'v'=>'1.0'

  121.             );

  122.             return json_encode($postdata);

  123.         }

  124.         

  125.         //生成guid

  126.         function create_guid() {

  127.             $charid = strtoupper(md5(uniqid(mt_rand(), true)));

  128.             $hyphen = chr(45);// "-"

  129.             $uuid = chr(123)// "{"

  130.             .substr($charid, 0, 8).$hyphen

  131.             .substr($charid, 8, 4).$hyphen

  132.             .substr($charid,12, 4).$hyphen

  133.             .substr($charid,16, 4).$hyphen

  134.             .substr($charid,20,12)

  135.             .chr(125);// "}"

  136.             return $uuid;

  137.         }

  138. ?>

复制代码


赞 10