如何使用Bluesnap回调URL



我需要帮助。我试着用Bluesnap实现一次性付款。付款后,我需要返回用户的网站与所需的参数。

我在文档中找到了两种方法来实现它。我可以使用thankyou.backtosellerurl和enccription或自定义参数。

我试着谢谢你。返回sellerurl参数,但付款后什么也没发生。我得到了默认的Bluesnap感谢页面。

然后我尝试使用custom1参数,但也没有得到所需的结果。对于自定义参数,我在管理面板中添加页面设计设置http://joxi.ru/p27LM9EsKnXJQA

我的代码。

function generatePaymentLink($amount, $text = 'Pay Now'){
return '<a class="payment-link" target="_blank" href="'.generatePaymentUrl($amount).'">'.$text.'</a>';
}
function generatePaymentUrl($amount){
$config = getConfiguration();
$res = request('https://sandbox.bluesnap.com/services/2/tools/param-encryption');
if($config['sandbox_mode']){
return $config['sandbox']['url'].'?merchantid='.$config['sandbox']['merchantid'].'&enc='.$res;
}
return $config['production']['url'].'?merchantid='.$config['production']['merchantid'].'&amount='.$amount;
}
function getConfiguration(){
require_once (__DIR__.'/config.php');
return $config;
}
function wrapCdata($string)
{
return '<![CDATA['
.str_replace(']]>', ']]><![CDATA[', $string)
.']]>';
}
function paramEncryption(array $params)
{
// compose request XML
$params_xml = '';
foreach ($params as $key => $value)
{
$key = wrapCdata($key);
$value = wrapCdata($value);
$params_xml .= "<parameter>n<param-key>$key</param-key>n
<param-value>$value</param-value>n</parameter>n";
}
$request_xml = "<?xml version="1.0" encoding="UTF-8"?>n<param-encryption xmlns="http://ws.plimus.com">n
<parameters>n".$params_xml."  </parameters>n</param-encryption>n";
return $request_xml;
}
function request($url, $http_method = 'POST')
{
$request_xml = paramEncryption([
'thankyou.backtosellerurl' => urlencode('https://siteurl.com/ipn-button.php?test=loremIpsum'),
'amount' => 22,
'currency' => 'USD',
'custom1' => 'loremIpsumCustom'
]);
$username = '//User';
$password = '//Password';
$ch = curl_init();
curl_setopt_array($ch, [
CURLOPT_SSL_VERIFYHOST => false,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_USERAGENT => 'AIOP STORE',
CURLOPT_COOKIESESSION => true,
CURLOPT_HEADER => false,
CURLOPT_HTTPHEADER => array('Content-Type: application/xml'),
CURLOPT_RETURNTRANSFER => true,
]);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_USERPWD, $username.':'.$password);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $request_xml);
curl_setopt($ch, CURLOPT_URL, $url);
$response_xml = curl_exec($ch);
if ($response_xml === false)
{
curl_close($ch);
}
curl_close($ch);
$xml = simplexml_load_string($response_xml);
$json  = json_encode($xml);
$configData = json_decode($json, true);
return $configData['encrypted-token'];
}

要使用thankyou.backtosellerurlBlueSnap,需要允许您的帐户具有特定权限。

您应该联系BlueSnap支持,并要求他们这样做

使用thankyou.backtosellerurl参数需要BlueSnap对您的帐户启用权限,但只有当您打算在不同的交易/产品/购物者位置传递不同的回调URL,或者您端的任何其他逻辑要求您仅在创建结账页面时将回调URL设置为参数时,才应使用此参数。,如果是这种情况,您需要联系BlueSnap支持,并要求他们在您的帐户上启用相关权限。

如果你有一个固定的回调URL,你可以通过页面设计->设置在你的BlueSnap帐户控制台上设置它。

相关内容

  • 没有找到相关文章

最新更新