You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在持卡人账户账单中显示自定义/动态商户描述符名称

解决Cybersource商户描述符(Merchant Descriptor)不生效问题

问题根源

你当前的代码存在两个关键错误:

  • 错误地将invoiceHeader_merchantDescriptor直接放在请求根节点,不符合Cybersource PHP SDK的请求结构规范
  • 创建了Ptsv2paymentsMerchantInformationMerchantDescriptor对象,但未将其关联到请求的正确层级中

修正方案

Cybersource PHP SDK中,商户描述符需要嵌套在merchantInformation字段下,而非根节点。以下是修正后的代码:

// 构建订单信息(保留原有逻辑)
$orderInformationArr = [
    "amountDetails" => $orderInformationAmountDetails,
    "billTo" => $orderInformationBillTo
];
$orderInformation = new CyberSource\Model\Ptsv2paymentsOrderInformation($orderInformationArr);

// 构建商户描述符
$merchantDescriptor = new CyberSource\Model\Ptsv2paymentsMerchantInformationMerchantDescriptor([
    "name" => "AirlineServices",
    "alternateName" => "AirlineServices"
]);

// 构建商户信息并关联描述符
$merchantInformation = new CyberSource\Model\Ptsv2paymentsMerchantInformation([
    "merchantDescriptor" => $merchantDescriptor
]);

// 构建完整请求对象,将merchantInformation加入请求数组
$requestObjArr = [
    "clientReferenceInformation" => $clientReferenceInformation,
    "processingInformation" => $processingInformation,
    "paymentInformation" => $paymentInformation,
    "orderInformation" => $orderInformation,
    "merchantInformation" => $merchantInformation
];

$requestObj = new CyberSource\Model\CreatePaymentRequest($requestObjArr);

额外注意事项

  • 确认你的Cybersource商户账户已开启自定义商户描述符的权限,部分账户默认需要后台配置后才能生效
  • 描述符的name和alternateName需符合卡组织的字符限制(通常为25-35字符,不含特殊符号)
  • 若仍未生效,可通过Cybersource交易日志查看请求实际发送的参数,确认描述符字段是否正确传递

内容的提问来源于stack exchange,提问作者Azhar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 03:52:13