Symfony 5 - 如何使用 mangopay php sdk 注册卡

Symfony 5 - How to register a card with mangopay php sdk

我正在尝试使用 MangoPay 注册信用卡。

在我的服务文件中,我创建了一个 public 函数来注册卡,使用包 mangopay/php-sdk-v2.

// ApiUser.php

public function Registration($UserId)
    {
        $CardRegistration = new \MangoPay\CardRegistration();
        $CardRegistration->UserId = $UserId;
        $CardRegistration->Currency = "EUR";
        $CardRegistration->CardType = "CB_VISA_MASTERCARD";
        $Result = $this->mangoPayApi->CardRegistrations->Create($CardRegistration);
      $this->registration = $Result;

      return $Result;
    }

其结果将是一个对象,包含三个主要键:AccessKeyPreRegistrationDataCardRegistrationURL

{ 
   [...]
   "AccessKey": "1X0m87dmM2LiwFgxPLBJ",
   "PreregistrationData": "YkgVxL1yNY4ZOfKtqEew_ZzBSGg0ie3ghohlFhb-37oidM_c0HMmR9H0WvKWb8pa2ddFLVXdicolcUIkv_kKEA",
   "CardRegistrationURL": "https://homologation-webpayment.payline.com/webpayment/getToken",
   [...]
}

在尝试使用 PostMan 时,我只需要在 CardRegistrationURL 中获取 URL,然后在其 body 中添加:dataPreRegistrationDataaccessKeyRefAccessKeycardNumbercardExpirationDatecardCvxContent-Typex-www-urlencoded
单击 Send 按钮后,其响应将是一个以 data= 开头的长字符串。
使用该字符串,我终于可以更新 CardRegistration 对象并将信用卡提供给 MangoPay 上的用户。

问题是在编码时,我找不到方法来获得 CardRegistrationURL 的响应。

我尝试在使用 http-client 包时执行 POST,但给出的响应是一个对象。我检查过它是否存在于对象中,但没有。
我也试过检查这个:https://github.com/Mangopay/mangopay2-php-sdk/blob/master/demos/paymentDirect/payment.php 并试图模仿它,但没有成功。

警告:您不必在服务器端收集银行卡详细信息,您必须像这样创建一个 HTML 表单

<form action="CardRegistrationURL here">
   // inputs for cardNumber, expiration date ...
   // You can add an input to redirect your user after card registration, ex:
   // <input name="returnUrl" value="https://youwebsite.com">
</form>

您的用户将被重定向到 MangoPay 服务器,然后返回您的网站。当用户再次访问您的网站时,使用请求数据更新卡注册并执行相关操作。

文档不是很清楚,不要犹豫,问MangoPay支持。