问题
Can someone who uses CJ's Commission Detail Service (REST) tell me what a sample XML response is for this query.
None of CJ's Web Services documentation indicates exactly how the XML is formatted and as I don't have any commission payments yet I can only guess the result.
回答1:
All the above answers are now outdated. The new response contains the total of 20 different items. Recently I've raised a ticket on CJ and this is the response I got.
I have written one python script for polling commission detail service api. I have covered all parts of commission detail service api by fetching original_action_id of the first response(Commissions Resource) and calling the 2nd part of it(Item-Detail Resource). Finally I'm merging both those XML into a single dictionary.
https://github.com/arcticOak2/cj-commission-detail-service-api-complete-python-script
回答2:
Found out the hard way by signing up to one of my publishers :
<?xml version="1.0" encoding="UTF-8"?>
<cj-api>
<commissions total-matched="1">
<commission>
<action-status>
new
</action-status>
<action-type>
lead
</action-type>
<aid>
12345678
</aid>
<commission-id>
1234567890
</commission-id>
<country>
</country>
<event-date>
2010-05-08T08:08:55-0700
</event-date>
<locking-date>
2010-06-10
</locking-date>
<order-id>
123456
</order-id>
<original>
true
</original>
<original-action-id>
1234567890
</original-action-id>
<posting-date>
2010-05-08T10:01:22-0700
</posting-date>
<website-id>
1234567
</website-id>
<cid>
1234567
</cid>
<advertiser-name>
Merchant
</advertiser-name>
<commission-amount>
0
</commission-amount>
<order-discount>
0
</order-discount>
<sid>
0
</sid>
<sale-amount>
0
</sale-amount>
</commission>
</commissions>
</cj-api>
回答3:
THis is an example which will read each node in the your above sample XML report. you can extract the required values and save them into the DB...... smiles :).
$cHTML='<?xml version="1.0" encoding="UTF-8"?>
<cj-api>
<commissions total-matched="1">
<commission>
<action-status>
new
</action-status>
<action-type>
lead
</action-type>
<aid>
12345678
</aid>
<commission-id>
1234567890
</commission-id>
<country>
</country>
<event-date>
2010-05-08T08:08:55-0700
</event-date>
<locking-date>
2010-06-10
</locking-date>
<order-id>
123456
</order-id>
<original>
true
</original>
<original-action-id>
1234567890
</original-action-id>
<posting-date>
2010-05-08T10:01:22-0700
</posting-date>
<website-id>
1234567
</website-id>
<cid>
1234567
</cid>
<advertiser-name>
Merchant
</advertiser-name>
<commission-amount>
0
</commission-amount>
<order-discount>
0
</order-discount>
<sid>
0
</sid>
<sale-amount>
0
</sale-amount>
</commission>
</commissions>
</cj-api>';
echo "i am here".$cHTML;
$xml2=simplexml_load_string($cHTML);
if ($xml2)
{ $advertiserId='';
$orderno='';
$commission="";
$uid="";
$actiontype="";
$network="CommissionJunction";
foreach ($xml2->children() as $item)
{
echo "ist".$item->getName()."<br>";
foreach ($item->children() as $node)
{
echo "2nd".$node->getName()."<br>";
foreach ($node->children() as $value)
{
if ($value->getName()=='primary-category')///CATEGORIES
{
echo $value->getName().":".$value->parent.":".$value->child."<br>" ;
//$vendorcategories=$value->parent;
}
elseif ($value->getName()=='actions')///COMMISION TERMS
{
echo $value->getName().":".$value->action->type."<br>" ;
//$commissionon=$value->action->type;
//echo $value->getName().":".$value->action->commission->default."<br>" ;
//$commissioninfo=$value->action->commission->default;
}elseif ($value->getName()=='advertiser-name')///ADVERTISER NAME
{
echo $value->getName().":".$value."<br>";
//$vendor_name=$value;
}elseif ($value->getName()=='program-url')///ADVERTISER NAME
{
echo $value->getName().":".$value."<br>" ;
//$vendorurl=$value;
}
elseif ($value->getName()=='relationship-status')///ADVERTISER NAME
{
echo $value->getName().":".$value."<br>" ;
//$approval=$value;
}
elseif ($value->getName()=='seven-day-epc')///ADVERTISER NAME
{
echo $value->getName().":".$value."<br>" ;
//$epc_value=$value.",";
}elseif ($value->getName()=='three-month-epc')///ADVERTISER NAME
{
echo $value->getName().":".$value."<br>" ;
//$epc_value.=$value;
}
else
{
echo "3rd".$value->getName().":".$value."<br>" ;
}
}
}
//echo $count;
//if($count>0)
//{
//echo $item[$count];
//}
//$count = $count + 1;
}
回答4:
I just used simplexml_load_string( $response ) to get it as xml feed as already answered but the object would appear as follows:
SimpleXMLElement Object
(
[commissions] => SimpleXMLElement Object
(
[@attributes] => Array
(
[total-matched] => 1
)
[commission] => SimpleXMLElement Object
(
[action-status] => new
[action-type] => lead
[aid] => 12345678
[commission-id] => 123456789
[country] => SimpleXMLElement Object
(
)
[event-date] => 2010-05-08T08:08:55-0700
[locking-date] => 2010-06-10
[order-id] => 123456
[original] => true
[original-action-id] => 123456789
[posting-date] => 2010-05-08T10:01:22-0700
[website-id] => 999999
[cid] => 123456
[advertiser-name] => Merchant
[commission-amount] => 0
[order-discount] => 0
[sid] => 0
[sale-amount] => 0
)
)
)
来源:https://stackoverflow.com/questions/2794311/commission-detail-service-rest