php - 在 Magento 2.2.3 中构建自定义支付网关
问题描述
银行只给了我2个链接
首先用于令牌验证之类的。
沙盒网址:somethingurl。
那么我必须通过
{
"userName":"test",
"password":"123456Aa"
}
json格式
之后我必须从这个帖子请求中找到银行生成的令牌。
我已经完成了。
然后我必须将带有其他凭据的 magento 2 订单数据(总计)发送到银行安全 URL:
somethingurl.com/createorder
json格式是这样的
{
"merchantId": "11122333",
"amount": "100",
"currency": "050",
"description": "This is test",
"approveUrl": "http://localhost/TheBankPHP_1.0.1/approve.php",
"cancelUrl": "http://localhost/TheBankPHP_1.0.1/cencel.php",
"declineUrl": "http://localhost/TheBankPHP_1.0.1/decline.php",
"userName": "test",
"passWord": "123456Aa",
"secureToken": "bd6e290e-ca3d-4a4b-b7c1-defe9ff6f7af"
}
现在,我的问题是当用户单击下订单按钮时我该怎么做。并将该订单与该银行订单付款一起存储在我的管理面板中。
是否可以使用货到付款方式只需设置一个链接。
我已经实现了一个 php 页面,但是我不知道如何将它与一个模块集成。你能帮我@Damian Culotta吗?
这是我在下面给出的 php 文件。
<?php
$url = "https://sandbox.thebank.com:443/transaction/token";
$data = json_encode(array("userName" => "test","password" => "123456Aa"));
$ch = curl_init( $url );
# Setup request to send json via POST.
curl_setopt( $ch, CURLOPT_POSTFIELDS, $data );
curl_setopt( $ch, CURLOPT_HTTPHEADER, array('Content-Type:application/json'));
# Return response instead of printing.
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
# Send request.
$result = curl_exec($ch);
curl_close($ch);
# Print response.
echo "<pre>$result</pre>";
$mydata = json_decode($result, true);
$sectkn = $mydata["transactionId"];
echo $sectkn;
$turl = "https://sandbox.thebank.com:443/transaction/createorder";
$data = json_encode(array(
"merchantId" => "11122333",
"amount" => "100",
"currency" => "050",
"description" => "This is test",
"approveUrl" => "http://localhost/theBankPHP_1.0.1/approve.php",
"cancelUrl" => "http://localhost/theBankPHP_1.0.1/cencel.php",
"declineUrl" => "http://localhost/theBankPHP_1.0.1/decline.php",
"userName" => "test",
"passWord" => "123456Aa",
"secureToken" => $sectkn,
));
$ch = curl_init( $turl );
# Setup request to send json via POST.
curl_setopt( $ch, CURLOPT_POSTFIELDS, $data );
curl_setopt( $ch, CURLOPT_HTTPHEADER, array('Content-Type:application/json'));
# Return response instead of printing.
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
# Send request.
$tresult = curl_exec($ch);
curl_close($ch);
# Print response.
echo "<pre>$tresult</pre>";
$mydatat = json_decode($tresult, true);
$linkdata = $mydatat["items"];
$myurldata = $linkdata["url"];
$myorder = $linkdata["orderId"];
$mysession = $linkdata["sessionId"];
$redirect_url = $myurldata. "?ORDERID=". $myorder. "&SESSIONID=". $mysession;
header("Location: .$redirect_url");
//echo $redirect_url;
?>
出于安全目的注意:我更改了银行网址。请帮我
解决方案
推荐阅读
- yii2-advanced-app - 为什么我的 cmd 在迁移 yii 时不让我回答是或否的问题
- python-3.x - 从具有多级列数据框和单级列数据框的 Excel 工作表加载表
- json - 使用 ASP .NET Core 中的资源在控制器上返回 JSON 上的文本
- reactjs - 如何在反应中最好地聆听 POST 响应?
- python - 在 for 循环中每 10 秒后打印消息
- python - 哪个 python 函数可以帮助我从一长段输出中只提取一行输出?
- gitlab - Gitlab 使用 Kubernetes 机密作为 Helm 值文件
- flutter - Flutter DataTable 获取所有行值
- python - 用缺失的日期填充其他列 Nan Pandas DataFrane
- java - javafx字体渲染系统中如何使用swing字体渲染系统?