首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Payeezy:如何在php中使“预授权”事务变为“标记-完成”事务

Payeezy:如何在php中使“预授权”事务变为“标记-完成”事务
EN

Stack Overflow用户
提问于 2016-10-27 09:16:36
回答 1查看 465关注 0票数 0

Payeezy支付网关已经成功地与php集成。将事务类型保持为"AUTH_ONLY“。要完成事务,将转到管理面板,并使其成为标记完成,如屏幕快照所示。

现在,我们希望允许商家添加运费,从我们的应用程序中计算总费用,然后向Payeezy发送一个请求,其中包含在前面收到的事务标记中收取的总金额,并完成先前的预授权。

下面是链接如何实现它,但无法理解如何使用php。

提前谢谢。

关于苏迪尔

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-08 07:20:55

我有正确的代码来做这个。下面是php中的适当代码,并用适当的payeezy值填充所有变量。

代码语言:javascript
复制
class SoapClientHMAC extends SoapClient {
    public function __doRequest($request, $location, $action, $version, $one_way = NULL) {
global $context;
$hmackey = "********************"; // <-- Insert your HMAC key here
$keyid = "******"; // <-- Insert the Key ID here
$hashtime = date("c");
$hashstr = "POST\ntext/xml; charset=utf-8\n" . sha1($request) . "\n" . $hashtime . "\n" . parse_url($location,PHP_URL_PATH);
$authstr = base64_encode(hash_hmac("sha1",$hashstr,$hmackey,TRUE));
if (version_compare(PHP_VERSION, '5.3.11') == -1) {
    ini_set("user_agent", "PHP-SOAP/" . PHP_VERSION . "\r\nAuthorization: GGE4_API " . $keyid . ":" . $authstr . "\r\nx-gge4-date: " . $hashtime . "\r\nx-gge4-content-sha1: " . sha1($request));
      } 
   else {
    stream_context_set_option($context,array("http" => array("header" => "aut horization: GGE4_API " . $keyid . ":" . $authstr . "\r\nx-gge4-date: " . $hashtime . "\r\nx-gge4-content-sha1: " . sha1($request))));
        }
return parent::__doRequest($request, $location, $action, $version, $one_way);
     }

      public function SoapClientHMAC($wsdl, $options = NULL) {
global $context;
$context = stream_context_create();
$options['stream_context'] = $context;
return parent::SoapClient($wsdl, $options);
 }
   }

   $trxnProperties = array(
"User_Name" => "*******",
"Secure_AuthResult" => "",
"Ecommerce_Flag" => "",
"XID" => "",
"ExactID" => "******-**", //Payment Gateway
"CAVV" => "",
"Password" => "**********************", //Gateway       Password
"CAVV_Algorithm" => "",
"Transaction_Type" => $txn_type, //Transaction Code I.E. Purchase="00" Pre-Authorization="01" etc.
"Reference_No" => "",
"Customer_Ref" => "",
"Reference_3" => "",
"Client_IP" => "", //This value is only used for fraud investigation.
"Client_Email" => "", //This value is only used for fraud investigation.
"Language" => "en", //English="en" French="fr"
"Card_Number" => "4111111111111111", //For Testing, Use Test#s VISA="4111111111111111" MasterCard="5500000000000004" etc.
"Expiry_Date" => "1121", //This value should be in the format MM/YY.
"CardHoldersName" => "test",
"Track1" => "",
"Track2" => "",
"Authorization_Num" => $_POST["auth_no"],
"Transaction_Tag" => $_POST["txn_tag"],
"DollarAmount" => $_POST["amt"] + $_POST["shippingfee"],
"VerificationStr1" => "",
"VerificationStr2" => "",
"CVD_Presence_Ind" => "",
"Secure_AuthRequired" => "",
"Currency" => "",
"PartialRedemption" => "",
// Level 2 fields 
"ZipCode" => "",
"Tax1Amount" => "",
"Tax1Number" => "",
"Tax2Amount" => "",
"Tax2Number" => "" );


$client = new SoapClientHMAC("https://api.demo.globalgatewaye4.firstdata.com/transaction/v12/wsdl");
$trxnResult = $client->SendAndCommit($trxnProperties);


if(@$client->fault){
    // there was a fault, inform
    print "<B>FAULT:  Code: {$client->faultcode} <BR />";
    print "String: {$client->faultstring} </B>";
    $trxnResult["CTR"] = "There was an error while processing. No TRANSACTION DATA IN CTR!";
}
//Uncomment the following commented code to display the full results.

echo "<H3><U>Transaction Properties BEFORE Processing</U></H3>";
echo "<TABLE border='0'>\n";
echo " <TR><TD><B>Property</B></TD><TD><B>Value</B></TD></TR>\n";
foreach($trxnProperties as $key=>$value){
    echo " <TR><TD>$key</TD><TD>:$value</TD></TR>\n";
}
echo "</TABLE>\n";

echo "<H3><U>Transaction Properties AFTER Processing</U></H3>";
echo "<TABLE border='0'>\n";
echo " <TR><TD><B>Property</B></TD><TD><B>Value</B></TD></TR>\n";
foreach($trxnResult as $key=>$value){
    $value = nl2br($value);
    echo " <TR><TD valign='top'>$key</TD><TD>:$value</TD></TR>\n";
}
echo "</TABLE>\n";


// kill object
unset($client); 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40280705

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档