'https://yunbusiness.ccb.com/tp_service/server', // 交易代码映射 'tx_codes' => [ 'order_push' => 'A3341TP01', // 订单推送 'order_update' => 'A3341TP02', // 订单状态更新 'order_query' => 'A3341TP03', // 订单查询 'order_refund' => 'A3341TP04', // 订单退款 ], // 服务方信息(生产环境) 'service_id' => Env::get('ccb.service_id', 'YS44000009001853'), // 商户信息(从.env读取) 'merchant_id' => Env::get('ccb.merchant_id', '105003953998037'), 'pos_id' => Env::get('ccb.pos_id', '068295530'), 'branch_id' => Env::get('ccb.branch_id', '340650000'), // ========== 密钥配置 (从.env读取) ========== /** * 服务方私钥 (自己生成的RSA私钥) * 用途: * - 解密建行返回的加密数据(ccbParamSJ等) * - 注意: 不直接参与签名,仅用于解密 * 格式: BASE64格式(不含PEM头尾) 或 PEM格式(含头尾) */ 'private_key' => $envVars['private_key'] ?? '', /** * 服务方公钥 (自己生成的RSA公钥,对应上面的私钥) * 用途: * - 参与支付下单的MD5签名计算(PLATFORMPUB字段) * - 加密商户公钥(ENCPUB字段) * 格式: BASE64格式(不含PEM头尾) 或 PEM格式(含头尾) */ 'public_key' => $envVars['public_key'] ?? '', /** * 建行生活支付验签公钥 (建行生活平台分配的) * 用途: * - 验证异步通知中的SIGN字段(NT_TYPE=YS时) * - ⚠️ 重要: 这不是你自己的公钥!需要联系建行生活技术支持获取 * 获取方式: 联系建行生活平台运营人员或技术支持 * 格式: PEM格式RSA公钥(2048位) * * 📌 如果未配置此字段: * - 异步通知验签会降级为POSID验证 * - 安全性降低,建议尽快获取并配置 */ 'ccb_payment_verify_public_key' => $envVars['ccb_payment_verify_public_key'] ?? '', // HTTP请求配置 'http' => [ 'timeout' => 30, // 超时时间(秒) 'retry_times' => 3, // 重试次数 'retry_delay' => [1, 2, 5], // 重试间隔(秒) ], // 支付配置 'payment' => [ 'currency_code' => '01', // 币种: 01-人民币 'tx_code' => '520100', // 支付交易码 'third_app_info' => 'comccbpay1234567890cloudmerchant', 'timeout_minutes' => 30, // 支付超时时间(分钟) ], // ========== 可选支付参数配置 ========== // 以下参数按需配置,不配置则不会添加到支付串中 /** * 外部平台商户号 (与建行商户号二选一) * 说明: 使用外部平台商户号时,会自动移除MERCHANTID、POSID、BRANCHID */ 'plat_mct_id' => Env::get('ccb.plat_mct_id', ''), /** * 微信支付19位终端号 * 说明: 微信支付场景下使用 */ 'pos_id_19' => Env::get('ccb.pos_id_19', ''), /** * 支付位图 - 控制支付方式 * 格式: 6位字符串,每位对应一个支付方式(1=开启,0=关闭) * 位置: [生活钱包][龙支付][微信][数字人民币][信用付][快贷] * 示例: '111111' = 全部开启, '110000' = 仅生活钱包和龙支付 */ 'pay_bitmap' => Env::get('ccb.pay_bitmap', '110000'), /** * 账户位图 - 控制支付账户类型 * 格式: 5位字符串,每位对应一个账户类型(1=开启,0=关闭) * 位置: [建行借记卡][建行贷记卡][他行借记卡][他行贷记卡][建行钱包] * 示例: '11111' = 全部开启, '11000' = 仅建行卡 */ 'account_bitmap' => Env::get('ccb.account_bitmap', '11000'), /** * 分期付款期数 * 说明: 分期支付场景下使用 */ 'install_num' => Env::get('ccb.install_num', ''), /** * 积分二级活动编号 * 说明: 积分抵扣场景下使用 */ 'point_avy_id' => Env::get('ccb.point_avy_id', ''), /** * 固定抵扣积分值 * 说明: 固定积分抵扣场景下使用 */ 'fixed_point_val' => Env::get('ccb.fixed_point_val', ''), /** * 最小使用积分抵扣限制 * 说明: 积分抵扣最小值限制 */ 'min_point_limit' => Env::get('ccb.min_point_limit', ''), /** * 有价券活动编号 * 说明: 优惠券活动场景下使用 */ 'coupon_avy_id' => Env::get('ccb.coupon_avy_id', ''), /** * 限制信用卡支付标志 * 说明: 1=仅限信用卡支付 */ 'only_credit_pay_flag' => Env::get('ccb.only_credit_pay_flag', ''), /** * 扩展域参数 * 格式: JSON字符串(配置时无需urlencode,代码会自动处理) * 示例: '{"key1":"value1","key2":"value2"}' */ 'extend_params' => Env::get('ccb.extend_params', ''), // ========== 数字人民币(DCEP)配置 ========== /** * 数字人民币商户类型 * 1=融合商户(使用普通商户号) * 2=非融合商户(需单独配置数币商户号) */ 'dcep_mct_type' => Env::get('ccb.dcep_mct_type', ''), /** * 数字人民币商户号 (dcep_mct_type=2时必填) */ 'dcep_merchant_id' => Env::get('ccb.dcep_merchant_id', ''), /** * 数字人民币柜台号 (dcep_mct_type=2时必填) */ 'dcep_pos_id' => Env::get('ccb.dcep_pos_id', ''), /** * 数字人民币分行号 (dcep_mct_type=2时必填) */ 'dcep_branch_id' => Env::get('ccb.dcep_branch_id', ''), /** * 数字人民币存款账号 */ 'dcep_dep_acc_no' => Env::get('ccb.dcep_dep_acc_no', ''), // ========== 二级商户配置(平台类服务方使用) ========== /** * 二级商户编号 * 说明: 平台型服务方为下级商户收款时使用 */ 'sub_mct_id' => Env::get('ccb.sub_mct_id', ''), /** * 二级商户名称 */ 'sub_mct_name' => Env::get('ccb.sub_mct_name', ''), /** * 二级商户MCC码 * 说明: 商户类别码,标识商户行业类型 */ 'sub_mct_mcc' => Env::get('ccb.sub_mct_mcc', ''), // ========== 场景编号配置(埋点使用,不参与MAC签名) ========== /** * 场景编号 * 说明: 用于数据埋点分析,不参与MAC校验 */ 'scn_id' => Env::get('ccb.scn_id', ''), /** * 场景平台编号 * 说明: 用于数据埋点分析,不参与MAC校验 */ 'scn_pltfrm_id' => Env::get('ccb.scn_pltfrm_id', ''), // 日志配置 'log' => [ 'enabled' => true, 'level' => Env::get('ccb.log_level', 'info'), // debug, info, warning, error 'path' => __DIR__ . '/../../../runtime/log/ccblife/', ], // 安全配置 'security' => [ 'encrypt_enabled' => true, // 是否启用加密 'sign_enabled' => true, // 是否启用签名 'verify_sign' => true, // 是否验证响应签名 ], // 商户信息 'merchant' => [ 'name' => Env::get('ccb.merchant_name', '丰科贸易(荷西嘉园店)'), 'logo_url' => Env::get('ccb.merchant_logo', ''), 'order_detail_url' => Env::get('app_url', 'http://fengketrade.test') . '/pages/order/detail?id=', ], ];