当前位置: 首页 > 知识库问答 >
问题:

与Realex/Global payment集成的定期付款

仉昂熙
2023-03-14

我正在尝试为全球支付网关创建定期支付。但在误差以下-

所选网关不支持此事务类型。

$config = new ServicesConfig();
$config->merchantId = "MerchantId";
$config->accountId = "AccountId";
$config->sharedSecret = "SharedSecret";
$config->serviceUrl = "https://pay.sandbox.realexpayments.com/pay";
$config->hostedPaymentConfig = new HostedPaymentConfig();
$config->hostedPaymentConfig->version = HppVersion::VERSION_2;
if ($recurring){
    $config->hostedPaymentConfig->cardStorageEnabled = "1";
}
$service = new HostedService(
    $config
);

$hostedPaymentData = new HostedPaymentData();
$hostedPaymentData->offerToSaveCard = true; // display the save card tick box
$hostedPaymentData->customerExists = false; // new customer
echo $service->Authorize($amount)
    ->withCurrency($currency_code)
    ->withRecurringInfo(RecurringType::FIXED, RecurringSequence::FIRST)
    ->withOrderId($order_id) 
    ->withHostedPaymentData($hostedPaymentData)
    ->serialize();

在服务器端,我得到的POST响应从支付网关与客户ID和支付ID。

$parsedResponse = $service->parseResponse(json_encode($_POST));
$responseValues  = $parsedResponse->responseValues; // get values accessible by key
$schedule = createSchedule($responseValues);


function createSchedule($responseValues)
{
    $schedule = new Schedule();

    $customerKey = $responseValues['SAVED_PAYER_REF'];
    $paymentMethodKey = $responseValues['SAVED_PMT_REF'];
    $orderId = $responseValues['ORDER_ID'];
    $amount = $responseValues['AMOUNT'];

    $schedule->id               = getIdentifier('CreditV');
    $schedule->customerKey      = $customerKey;
    $schedule->paymentKey       = $paymentMethodKey;
    $schedule->amount           = $amount;//$_REQUEST['a3'] * 100;
    $schedule->currency         = 'EUR';//$_REQUEST['cc']
    $schedule->startDate        = date('mdY'); //, strtotime("last day of next month")
    $schedule->paymentSchedule  = PaymentSchedule::DYNAMIC; //or PaymentSchedule::FIRST_DAY_OF_THE_MONTH
    $schedule->frequency        = ScheduleFrequency::WEEKLY; //'Monthly', 'Bi-Monthly', 'Quarterly', 'Semi-Annually'
    $schedule->numberOfPayments = 4;
    $schedule->description      = 'Test';
    $schedule->poNumber         = $orderId;
    $schedule->reprocessingCount = 1;
    $schedule->emailReceipt      = 'Never';
    $schedule->status            = 'Active';
    $response = $schedule->create();

    return $response;
}

function getIdentifier($id)
{
    $identifierBase = '%s-%s' . substr(str_shuffle('abcdefghijklmnopqrstuvwxyz'), 0, 10);
    return sprintf($identifierBase, date('Ymd'), $id);
}

共有1个答案

纪实
2023-03-14

谢谢你的提问。不幸的是,环球支付公司SDK现在不支持使用环球支付公司电子商务解决方案创建定期支付。它确实与哈特兰网关一起工作,但这是一个单独的产品,目前仅在美国。

如果您使用托管支付页面的字符串卡,则可以使用我们的XML API针对它们设置时间表:https://developer.globalpay.com/#!/api/付款计划程序

 类似资料:
  • 在您重定向到Realex输入详细信息之前,引用网址应该是您网站上的最后一页吗?如果是这样,那么如果你有动态网址呢?

  • 我正在使用Realex API与DCC集成,下面是我的代码: MD5哈希创建: DCC请求xml: 身份验证请求xml: 并将这两个xml发送到“https://epage.payandshop.com/epage-remote.cgi“一个接一个地使用curl,支付过程运行良好。但它没有显示任何弹出窗口供客户选择要收费的货币。 这是表格样本,请查收 你能告诉我为什么它不显示或者我需要做任何改变吗

  • 我需要在Realex支付中更新现有卡上的到期日期和持卡人姓名。 哈希值语法应采用以下格式: 这里有一个例子说明它应该是什么样子 当我运行以下方法时,我得到错误: “SHA1哈希不正确-请检查您的代码和开发人员文档” 我做错了什么?

  • 请检查屏幕截图,这个问题是有时发生,有时工作良好。如果有语法错误请原谅

  • 我使用realex支付与iframe我可以加载支付页面正确,但一旦我点击立即支付它返回错误: 508消息:处理您的请求发生了错误。请联系您购买的商品或服务引用以下错误代码的商家: 61,754(大多数时候它返回正确的响应字符串成功或拒绝),但有时它返回以上错误代码)任何想法是什么意思以及如何解决这个问题?