简体   繁体   English

我如何使用curl和php在另一台服务器上收到此请求

[英]How can I receive this request in another server using curl and php

I'm new here so please be patient, This is my request code, I want to write another piece of code in another server that will be accepting it and returning an xml 7101 success code using php and curl. 我是新来的,所以请耐心等待,这是我的请求代码,我想在另一台服务器中编写另一段代码,该代码将接受它并使用php和curl返回xml 7101成功代码。 How do I write code in a receiving server. 如何在接收服务器中编写代码。 This is actually API that I will be using to exchange data between my system and another remote system stored in clouds I have managed to send request successfully but I have stuck at receiving their requests, I have spent an entire week on it please help me out on receiving the requests when they send them to me. 这实际上是API,我将使用它在系统和存储在云中的另一个远程系统之间交换数据。我已经成功地发送了请求,但是我坚持接收他们的请求,我花了整整一个星期的时间来帮助我当他们发送给我时收到请求。

success code is 成功代码是

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<gepgBillSubReqAck>
    <TrxStsCode>7101</TrxStsCode>
</gepgBillSubReqAck>

the request code is this, 请求代码是这个,

<?php

    //Bill Request 
    $content ="<gepgBillSubReq>
        <BillHdr>
            <SpCode>SP103</SpCode>
            <RtrRespFlg>true</RtrRespFlg>
        </BillHdr>
        <BillTrxInf>
            <BillId>1812022009968</BillId>
            <SubSpCode>1001</SubSpCode>
            <SpSysId>TANESCO001</SpSysId>
            <BillAmt>1180</BillAmt>
            <MiscAmt>0</MiscAmt>
            <BillExprDt>2017-12-31T23:59:59</BillExprDt>
            <PyrId>5144AA5914</PyrId>
            <PyrName>test</PyrName>
            <BillDesc>Bill Number 5913</BillDesc>
            <BillGenDt>2017-12-21T09:39:00</BillGenDt>
            <BillGenBy>Bhstenkubo</BillGenBy>
            <BillApprBy>Bhstenkubo</BillApprBy>
            <PyrCellNum/>
            <PyrEmail/>
            <Ccy>TZS</Ccy>
            <BillEqvAmt>1180</BillEqvAmt>
            <RemFlag>false</RemFlag>
            <BillPayOpt>1</BillPayOpt>
            <BillItems>
                <BillItem>
                    <BillItemRef>5144AA5914</BillItemRef>
                    <UseItemRefOnPay>N</UseItemRefOnPay>
                    <BillItemAmt>1180</BillItemAmt>
                    <BillItemEqvAmt>1180</BillItemEqvAmt>
                    <BillItemMiscAmt>0</BillItemMiscAmt>
                    <GfsCode>140316</GfsCode>
                </BillItem>
            </BillItems>
        </BillTrxInf>
    </gepgBillSubReq>";

    $resultCurlPost = "";

    $serverIp = "XXXXXXXXXXXXXXXX";

    $uri = "/XXX/XXX/qrequest"; //this is for qrequest

    echo "Message ready to GePG:"."\n".$content."\n";

    $ch = curl_init($serverIp.$uri);
    curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
    curl_setopt($ch, CURLOPT_POSTFIELDS, $content);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(
                        'Content-Type:application/xml',
                        'Gepg-Com:default.sp.in',
                        'Gepg-Code:SP103',
                        'Content-Length:'.strlen($content))
    );

    curl_setopt($ch, CURLOPT_TIMEOUT, 50);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 50);

    //Capture returned content from GePG
    $resultCurlPost = curl_exec($ch);
    curl_close($ch);
    //$resultCurlPost=$data; 
    if(!empty($resultCurlPost)){

        echo "\n\n";
        echo "Received Response\n";
        echo  $resultCurlPost;
        echo "\n";              
    }
    else
    {
        echo "No result Returned"."\n";
    }

?>

Thanks, you guys for contributing I found a solution, I used file_get_contents("php://input"); 谢谢大家的帮助,我找到了一个解决方案,我使用了file_get_contents(“ php:// input”); on the receiving server and so far it is working fine. 在接收服务器上,到目前为止,它工作正常。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM