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;
}
其结果将是一个对象,包含三个主要键:AccessKey
、PreRegistrationData
和 CardRegistrationURL
。
{
[...]
"AccessKey": "1X0m87dmM2LiwFgxPLBJ",
"PreregistrationData": "YkgVxL1yNY4ZOfKtqEew_ZzBSGg0ie3ghohlFhb-37oidM_c0HMmR9H0WvKWb8pa2ddFLVXdicolcUIkv_kKEA",
"CardRegistrationURL": "https://homologation-webpayment.payline.com/webpayment/getToken",
[...]
}
在尝试使用 PostMan 时,我只需要在 CardRegistrationURL
中获取 URL,然后在其 body
中添加:data
和 PreRegistrationData
、accessKeyRef
与 AccessKey
和 cardNumber
、cardExpirationDate
和 cardCvx
(Content-Type
是 x-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支持。
我正在尝试使用 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;
}
其结果将是一个对象,包含三个主要键:AccessKey
、PreRegistrationData
和 CardRegistrationURL
。
{
[...]
"AccessKey": "1X0m87dmM2LiwFgxPLBJ",
"PreregistrationData": "YkgVxL1yNY4ZOfKtqEew_ZzBSGg0ie3ghohlFhb-37oidM_c0HMmR9H0WvKWb8pa2ddFLVXdicolcUIkv_kKEA",
"CardRegistrationURL": "https://homologation-webpayment.payline.com/webpayment/getToken",
[...]
}
在尝试使用 PostMan 时,我只需要在 CardRegistrationURL
中获取 URL,然后在其 body
中添加:data
和 PreRegistrationData
、accessKeyRef
与 AccessKey
和 cardNumber
、cardExpirationDate
和 cardCvx
(Content-Type
是 x-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支持。