java中新增scoial语句怎么写_如何向Social Engine添加自定义支付网关

我需要将新的支付网关集成到我们的企业网站,该网站基于社交引擎 . 这个 CMS 有一个名为Advanced Payment Gateways的扩展,允许集成新的网关 . 实际上,它获取您的网关名称并生成压缩为文件的框架结构,以便您可以解压缩并上载到服务器,从而与应用程序目录合并 .

我将解释如何在没有社交引擎的情况下实现我的网关,我希望有人能告诉我如何将其纳入社交引擎 .

首先我连接到我的 PSP 服务:

$client = new nusoap_client('https://bpm.shaparak.ir/pgwchannel/services/pgw?wsdl');

我在数组中准备以下参数以发送到 bpPayRequest :

$parameters = array(

'terminalId' => $terminalId,

'userName' => $userName,

'userPassword' => $userPassword,

'orderId' => $orderId,

'amount' => $amount,

'localDate' => $localDate,

'localTime' => $localTime,

'additionalData' => $additionalData,

'callBackUrl' => $callBackUrl,

'payerId' => $payerId);

// Call the SOAP method

$result = $client->call('bpPayRequest', $parameters, $namespace);

如果接受付款请求,则结果为逗号分隔的字符串,第一个元素为 0 .

然后我们可以通过 POST 方法将第二个元素(引用ID)发送到支付网关,如下所示:

echo "";

function postRefId (refIdValue) {

var form = document.createElement("form");

form.setAttribute("method", "POST");

form.setAttribute("action", "https://bpm.shaparak.ir/pgwchannel/startpay.mellat");

form.setAttribute("target", "_self");

var hiddenField = document.createElement("input");

hiddenField.setAttribute("name", "RefId");

hiddenField.setAttribute("value", refIdValue);

form.appendChild(hiddenField);

document.body.appendChild(form);

form.submit();

document.body.removeChild(form);

}

网关将通过 POST 方法将以下参数返回给我们在付款请求中提供的回拨 URL :

RefId (前面步骤中生成的引用ID)

ResCode (付款结果:0表示成功)

saleOrderId (在付款请求期间传递的订单ID)

SaleReferenceId (销售参考代码由PSP提供给商家)

如果上一步中的 ResCode 是 0 ,那么我们需要使用以下参数传递呼叫 bpVerifyRequest 以验证付款,否则付款将被取消 .

$parameters = array(

'terminalId' => $terminalId,

'userName' => $userName,

'userPassword' => $userPassword,

'orderId' => $orderId,

'saleOrderId' => $verifySaleOrderId,

'saleReferenceId' => $verifySaleReferenceId);

// Call the SOAP method

$result = $client->call('bpVerifyRequest', $parameters, $namespace);

如果 bpVerifyRequest 的结果为零,则付款是确定的,商家必须提供所购买的商品或服务 . 但是,有一个可选方法 bpSettleRequest ,用于请求结算 . 它被称为如下:

$ parameters = array('terminalId'=> $ terminalId,'userName'=> $ userName,'userPassword'=> $ userPassword,'orderId'=> $ orderId,'saleOrderId'=> $ settleSaleOrderId,'saleReferenceId'=> $ settleSaleReferenceId);

//调用SOAP方法$ result = $ client-> call('bpSettleRequest',$ parameters,$ namespace);

通过查看支付网关插件中的默认网关,我感到困惑,例如PayPal,Stripe,2Checkout等 . 如何将此代码逻辑合并到新创建的网关骨架中? (结构如下所示):

PZyCe.png

Update:

我设法在 processTransaction 的 processTransaction 方法中添加了我的网关代码,它运行正常 . 但它仅适用于站点的桌面版本,无法加载移动版本 .

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值