首页 > 解决方案 > 在 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;

?>

出于安全目的注意:我更改了银行网址。请帮我

标签: phpmagento2

解决方案


您需要创建自定义模块来创建您的自定义支付网关。

我已经为我的需要创建了一个。您可以根据它获得想法。

适用于 Magento 2 的 PayEase 支付网关


推荐阅读