ARB过程后XML上的授权点网简单结账方法

时间:2014-10-18 11:26:51

标签: php curl payment-gateway authorize.net-arb

如何在授权Dot Net ARB上成功付款后添加第二次Direct Post方法。让我详细说明

假设用户将订阅会员资格,网站也会要求捐赠。在ARB(XML版本)支付会员资格后,我如何通过授权网络网站再次支付一次捐款。我试图使用ARB并且出现重复输入错误。让我在这里粘贴代码以获取更多详细信息。

我使用的ARB代码

        $SubscrName = $FirstName." ".$LastName; 
        $length = 12;
        $unit = "months";


        $totatltenure = $CardExpYear-date("Y");

        $start_date = date("Y-m-d");
        $totalOccurrences = 1*$totatltenure;
        $trialOccurrences = 0;
        $trialAmount = 0;
        $expirationDate = $CardExpYear."-".$CardExpMonth;

$content =
            "<?xml version=\"1.0\" encoding=\"utf-8\"?>" .
            "<ARBCreateSubscriptionRequest xmlns=\"AnetApi/xml/v1/schema/AnetApiSchema.xsd\">" .
                "<merchantAuthentication>".
                "<name>" . $loginname . "</name>".
                "<transactionKey>" . $transactionkey . "</transactionKey>".
                "</merchantAuthentication>".
                "<refId>" . $refId . "</refId>".
                "<subscription>".
                    "<name>" . $SubscrName . "</name>".
                    "<paymentSchedule>".
                        "<interval>".
                            "<length>". $length ."</length>".
                            "<unit>". $unit ."</unit>".
                        "</interval>".
                        "<startDate>" . $start_date . "</startDate>".
                        "<totalOccurrences>". $totalOccurrences . "</totalOccurrences>".
                        "<trialOccurrences>". $trialOccurrences . "</trialOccurrences>".
                    "</paymentSchedule>".
                    "<amount>". $TotalCosting ."</amount>".
                    "<trialAmount>" . $trialAmount . "</trialAmount>".
                    "<payment>".
                        "<creditCard>".
                            "<cardNumber>" . $CardNumber . "</cardNumber>".
                            "<expirationDate>" . $expirationDate . "</expirationDate>".
                            "<cardCode>".$CVV_Code."</cardCode>".
                        "</creditCard>".
                    "</payment>".
                "<billTo>".
                        "<firstName>". $CardFirstName . "</firstName>".
                        "<lastName>" . $CardLastName . "</lastName>".
                        "<address>" . $CardStreet . "</address>".
                        "<city>" . $CardCity . "</city>".
                        "<state>" . $CardState . "</state>".
                        "<zip>" . $CardZip . "</zip>".
                    "</billTo>".
                "</subscription>".
            "</ARBCreateSubscriptionRequest>";

        $response = send_request_via_curl($host,$path,$content);
        if ($response)
        {

            list ($refId, $resultCode, $code, $text, $subscription_id) =parse_return($response);
            if($resultCode == "Ok")
            {


                if($_SESSION['willdonate'] == 'donated' && $_SESSION['donateammount'] != '')
                {

                    $SubscrName = $FirstName." ".$LastName; 
                    $length = 2;
                    $unit = "months";

                    $totatltenure = 1;

                    $start_date = date("Y-m-d");
                    $totalOccurrences = 1;
                    $trialOccurrences = 0;
                    $trialAmount = 0;
                    $expirationDate = date("Y-m");

                    $TotalCosting = $_SESSION['donateammount'];


                    $contentDonation =
                    "<?xml version=\"1.0\" encoding=\"utf-8\"?>" .
                    "<ARBCreateSubscriptionRequest xmlns=\"AnetApi/xml/v1/schema/AnetApiSchema.xsd\">" .
                        "<merchantAuthentication>".
                        "<name>" . $loginname . "</name>".
                        "<transactionKey>" . $transactionkey . "</transactionKey>".
                        "</merchantAuthentication>".
                        "<refId>" . $refId . "</refId>".
                        "<subscription>".
                            "<name>" . $SubscrName . "</name>".
                            "<paymentSchedule>".
                                "<interval>".
                                    "<length>". $length ."</length>".
                                    "<unit>". $unit ."</unit>".
                                "</interval>".
                                "<startDate>" . $start_date . "</startDate>".
                                "<totalOccurrences>". $totalOccurrences . "</totalOccurrences>".
                                "<trialOccurrences>". $trialOccurrences . "</trialOccurrences>".
                            "</paymentSchedule>".
                            "<amount>". $TotalCosting ."</amount>".
                            "<trialAmount>" . $trialAmount . "</trialAmount>".
                            "<payment>".
                                "<creditCard>".
                                    "<cardNumber>" . $CardNumber . "</cardNumber>".
                                    "<expirationDate>" . $expirationDate . "</expirationDate>".
                                    "<cardCode>".$CVV_Code."</cardCode>".
                                "</creditCard>".
                            "</payment>".
                        "<billTo>".
                                "<firstName>". $CardFirstName . "</firstName>".
                                "<lastName>" . $CardLastName . "</lastName>".
                                "<address>" . $CardStreet . "</address>".
                                "<city>" . $CardCity . "</city>".
                                "<state>" . $CardState . "</state>".
                                "<zip>" . $CardZip . "</zip>".
                            "</billTo>".
                        "</subscription>".
                    "</ARBCreateSubscriptionRequest>";



                    $responseDonation = send_request_via_curl($host,$path,$contentDonation);

                    if ($responseDonation)
                    {

                        var_dump($responseDonation);
                        exit;
                        list ($refId, $resultCodeDonation, $code, $text, $subscription_id) =parse_return($responseDonation);
                        if($resultCodeDonation == "Ok")
                        {}
                    }                           

                }



            }
        }

这是我用过的代码,我曾两次尝试过ARB Script第二次付款,但我觉得这不是正确的过程,所以我得到了Duplicate条目的错误。任何人都可以帮我提供像我使用的ARB XML Curl这样的Direct Post方法的XML CUrl代码。经过大量搜索,我没有找到任何合适的例子。

0 个答案:

没有答案