慧穗云开放平台 CDK 开票对接

慧穗云开放平台 CDK 开票对接

一、前期准备
开通慧穗云账户,登录地址:https://huisuiyun.cn
维护企业基础信息、电子税局账户信息维护、激活、授权 参考 https://kdocs.cn/l/cgyD47lZKCDZ
开发参考官方文档:https://cdk5.smarttax.net/

二、创建秘钥
1、 登录:https://huisuiyun.cn
2、打开系统设置
3、打开秘钥管理
4、创建秘钥,配置回调地址。
图片[1] - 慧穗云开放平台 CDK 开票对接 - 宋马
5、配置主动回调(事件成功后回调,业务操作选择,并添加适用组织,不添加则无主动回调)
如果回调接收接口有白名单安全设置,请配置以下IP: 47.103.101.22
图片[2] - 慧穗云开放平台 CDK 开票对接 - 宋马
三、代码开发
1、创建密钥对接接口 获取token—同步
令牌有效期为 35 天,令牌更新后 25 天内不允许再次更新令牌,建议设置 25 – 35 天范围内传入更新标识更新令牌,生效时间顺延,企业需做个定时任务定时更新token

	接口地址: /api/v3/cdk/getToken

	请求方式: POST

	请求协议: application/json;charset=UTF-8
	
	请求结果是加密的,需要进行解密,解密后获得 token
    public function getToken()
    {
   
   
            
        $url  = "https://huisuiyun.cn/api/v3/cdk/getToken";

        $timestamp =  $this->createTimestamp();
        $serialNo =  $this->createSerialNo();//流水号
        $secret =  $this->createSecret();//使用[ak和sk生成的md5码]加密
        $param = [
            'serialNo'=>$serialNo,//流水号
            'timestamp'=>$timestamp,//时间戳
            'lx'=>2,//密钥等级 1:渠道级,2:用户级,不传默认用户级
            'ak'=>'ak', //AccessKey
            'secret'=>$secret, //由在慧穗云系统获取的秘钥AK和SK拼接后,再经MD5的32位小写加密后生成。这个拼接生成的操作需要您自己完成,例如:AK值为123,SK值为456,secret字符串值为123456经MD5 32位小写加密后的值
            'qzgxbj'=>1, //qzgxbj 1:更新token,不传默认不更新
        ];
        $result = $this->curl_post($url, $param);
        //解密
        if($result['code']  !=200){
   
   
            
            throw new  Exception($result['message']);
            return  false;
        }
        $result =  DesUtil::decrypt($result['data'],$secret);
        $result = json_decode($result,true);
        // 解密后结果 { "token": "令牌值",        "gqsj": "过期时间"}
        return $result;
    }
2、新增单据并开票—异步(ps:开票成功后,走配置的自动回调地址,获取发票路径 目前只有:PDF OFD XML 下载地址)

	接口地址: /api/v3/cdk/invoice/saveAndCreateInvoice

	请求方式: POST

	请求协议: application/json;charset=UTF-8
public function saveAndCreateInvoiceDemo()
    {
   
   
            
        $url = "https://huisuiyun.cn/api/v3/cdk/invoice/saveAndCreateInvoice";
        $timestamp =  $this->createTimestamp();
        $serialNo =  $this->createSerialNo();//流水号
        $wbdjh =  $this->createSerialNo();//请保证每笔开票业务的单据号唯一
        $secret = $this->createSecret();//使用[ak和sk生成的md5码]加密
        $param = [
            'serialNo'=>$serialNo,//流水号
            'timestamp'=>$timestamp,//时间戳
        ];
        $data = [
            'serialNo'=>$serialNo,//流水号
            'timestamp'=>$timestamp,//时间戳
            'data'=>$secret,//使用[ak和sk生成的md5码]加密
            'wbdjh'=>$wbdjh,//请保证每笔开票业务的单据号唯一
            'xzbs'=>1,//0:新增并开票,1:仅新增,不传默认新增并开票
            'fplx'=>82,//参考码表	82	数电普通发票
//            'gmfbm'=>82,//购方编码 若传入则会在基础资料-购方管理模块根据编码匹配对应购方信息并补全
            'gmfmc'=>"XXXXXX",//购买方名称
            'gmfnsrsbh'=>'XXXXXX',//购买方税号 专票必填,自然人普票选填
            'gmfdz'=>'XXXXXX',//购买方地址  选填
            'gmfdh'=>'XXXXXX',//购买方电话  选填
            'gmfkhh'=>'XXXXXX',//购买方开户行  选填
            'gmfzh'=>'XXXXXX',//购买方账号
            'gmfzrrbz'=>'Y',//购买方自然人标志 Y:购买方是自然人 N:购买方非自然人 不传默认非自然人,仅针对数电普生效,自然人普票购方税号字段填写身份证号
            'hsbs'=>0,//含税标识 0:不含税,1:含税,参数内所有单价、金额的含税维度

            'xsfdz'=>'XXXXXX',//	销售方地址
            'xsfdh'=>'XXXXXX',//	销售方电话
            'xsfkhh'=>'XXXXXX',//	销售方开户行
            'xsfzh'=>'XXXXXX'
© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容