https://lx.azure.microsoft.com/. 申请地址
<appSettings>
<add key=”wll_appid” value=”Your.Application.ID”/>
<add key=”wll_secret” value=”Your.Application.Secret”/>
<add key=”wll_securityalgorithm” value=”wsignin1.0″/>
<add key=”wll_returnurl” value=”http://Your.Server.Host.Name/delauth/sample1/delauth-handler.aspx” />
<add key=”wll_policyurl” value=”http://Your.Server.Host.Name/delauth/sample1/policy.html” />
</appSettings>
key输入.
php代理方式范例:
http://msdn.microsoft.com/en-us/library/cc287663%28v=MSDN.10%29.aspx
http://help.nicovideo.jp/jksdk/
环境需求:
Pentium4 2.0GHz以上
1.0GB以上
Windows XP/Windows Vista/Windows 7
Visual C++ 2008 SP1 ランタイム
API详细介绍:
各APIの大まかな説明です。
http://www.microsoft.com/windowsazure/windowsazure/
php的地址:http://phpazure.codeplex.com/
// load order
$order = Mage::getModel(‘sales/order’)->load($orderId);
// set store and locale according to order store
Mage::app()->setCurrentStore($order->getStoreId());
Mage::app()->getLocale()->emulate($order->getStoreId());
// create invoice and send email
if ($order->canInvoice()) {
$invoice = $order->prepareInvoice();
$invoice->register();
$invoice->setEmailSent(true);
$invoice->save();
$invoice->sendEmail();
}
// create shipment and send email
if ($order->canShip()) {
$shipment = $order->prepareShipment();
$shipment->register();
$shipment->setEmailSent(true);
$shipment->save();
$shipment->sendEmail();
}
// save order
$order->save();
// reset locale
Mage::app()->getLocale()->revert();
<?php
require_once ‘app/Mage.php’;
umask(0);
/* not Mage::run(); */
Mage::app(‘default’);
// get layout object
$layout = Mage::getSingleton(‘core/layout’);
//get block object
$block = $layout->createBlock(‘catalog/product_ajax’);
/* choose whatever category ID you want */
$block->setCategoryId(3);
$block->setTemplate(‘catalog/product/ajaxevents.phtml’);
echo $block->renderView();
?>
include(‘app/Mage.php’);
Mage::App(‘base’); //might be “default”
$customer = Mage::getModel(‘customer/customer’);
$customer->loadByEmail(‘some@email.address’); /* need a users email address */
$session = Mage::getSingleton(‘customer/session’);
$session->start();
<?php
$mageFilename = ‘app/Mage.php’;
require_once $mageFilename;
umask(0);
Mage::app();
/* Magento uses different sessions for ‘frontend’ and ‘adminhtml’ */
Mage::getSingleton(‘core/session’, array(‘name’=>’frontend’));
// $cart = Mage::getSingleton(‘checkout/cart’)->getItemsCount();
// $cart = Mage::helper(‘checkout/cart’)->getItemsCount();
$cart = Mage::helper(‘checkout/cart’)->getCart()->getItemsCount();
echo ‘cart items count: ‘ . $cart;
?>
require_once ‘app/Mage.php’;
umask(0);
$app = Mage::app(‘default’);
/* Init User Session */
$session = Mage::getSingleton(‘customer/session’, array(‘name’=>’frontend’));
if ($session->isLoggedIn()) {
/* do something if logged in */
} else {
/* do something else if not logged in */
}
This is a method that we developed to handle custom integration with an inventory management system. This pulls all orders and processes them into an xml feed for processing by the inventory management system. Once it has passed the information it can optionally set each order to closed. Hopefully this helps you.
//External script – Load magento framework
require_once(“../app/Mage.php”);
Mage::app();
/* function for adding new node to xml file */
function Add_NewDocElement($root, $parent, $name, $value){
$parent->appendChild($root->createElement($name))->appendChild($root->createTextNode($value));
}
#creating new xml-document
$dom = new DomDocument(’1.0′);
$dom->xmlStandalone = true;
$orders = $dom->appendChild($dom->createElement(‘ePosimPCOrders’));
#Magento required models
$myCustomer = Mage::getModel(‘customer/customer’);
$ordersMag = Mage::getModel(‘sales/mysql4_order_collection’);
$ordersInfo = Mage::getModel(‘sales/order_item’)->getCollection();
#Optional filters you might want to use – more available operationsin method _getConditionSql in Varien_Data_Collection_Db.
$ordersMag->addFieldToFilter(‘status’,Array(‘eq’=>”complete”)); //Status is “Completed”
#now we will get all order numbers associated
$allIds = $ordersMag->getAllIds();
#create new xml element
foreach($allIds as $thisId){
#this always needs to be inside the loop. otherwise we end up with bad data.
$myOrder = Mage::getModel(‘sales/order’);
$myOrder->load($thisId);
$getIncrement = $myOrder->getData();
$orderID = $getIncrement['increment_id'];
$myOrder->loadByIncrementId($orderID);
$order = $orders->appendChild($dom->createElement(‘Orders’));
$data = $myOrder->getData();
$address = Mage::getModel(‘sales/order_address’)->load($orderID);
#$customer = Mage::getModel(‘customer/customer’)->load($orderID->getCustomerId());
#first i’ll need to handle the multiple address scenario
$streetBA=$myOrder->getBillingAddress()->getStreet();
$streetSA=$myOrder->getShippingAddress()->getStreet();
if ($data['customer_id']){
$customer = “webCust-”.$data['customer_id'];
}else{
$customer = “web-guest”;
}
Add_NewDocElement($dom, $order, ‘idOrder’, $myOrder->getData(‘increment_id’));
Add_NewDocElement($dom, $order, ‘idCustomer’, $customer);
Add_NewDocElement($dom, $order, ‘CustomerPO’, “NO PO”); # can be left blank
Add_NewDocElement($dom, $order, ‘pcOrd_Time’, strftime(“%m-%d-%Y %H:%M%p”,strtotime($data['created_at'])));
Add_NewDocElement($dom, $order, ‘IPAddress’, $myOrder->getData(‘remote_ip’)); #remote_ip
#Add_NewDocElement($dom, $order, ‘lineBreak’, ‘#####################’); #visual debugging
#Billing Information
Add_NewDocElement($dom, $order, ‘customerCompany’, $myOrder->getBillingAddress()->getCompany());
Add_NewDocElement($dom, $order, ‘name’, $myOrder->getBillingAddress()->getFirstname());
Add_NewDocElement($dom, $order, ‘lastName’,$myOrder->getBillingAddress()->getLastname());
Add_NewDocElement($dom, $order, ‘address’, $streetBA[0]);
Add_NewDocElement($dom, $order, ‘address2′, (count($streetBA)==2)?$streetBA[1]:”);
Add_NewDocElement($dom, $order, ‘city’, $myOrder->getBillingAddress()->getCity());
Add_NewDocElement($dom, $order, ‘zip’,$myOrder->getBillingAddress()->getPostcode());
Add_NewDocElement($dom, $order, ‘stateCode’, $myOrder->getBillingAddress()->getRegion());
Add_NewDocElement($dom, $order, ‘countryCode’, $myOrder->getBillingAddress()->getData(‘country_id’));
Add_NewDocElement($dom, $order, ‘phone’, $myOrder->getBillingAddress()->getData(‘telephone’));
Add_NewDocElement($dom, $order, ‘email’, $data['customer_email']);
#Add_NewDocElement($dom, $order, ‘lineBreak’, ‘#####################’); #visual debugging
#now we pull shipping information
Add_NewDocElement($dom, $order, ‘shippingCompany’, $myOrder->getShippingAddress()->getFirstname());
Add_NewDocElement($dom, $order, ‘ShippingFirst’, $myOrder->getShippingAddress()->getFirstname());
Add_NewDocElement($dom, $order, ‘ShippingLast’, $myOrder->getShippingAddress()->getLastname());
Add_NewDocElement($dom, $order, ‘shippingAddress’, $streetBA[0]);
Add_NewDocElement($dom, $order, ‘shippingAddress2′, (count($streetSA)==2)?$streetSA[1]:”);
Add_NewDocElement($dom, $order, ‘shippingCity’, $myOrder->getShippingAddress()->getCity());
Add_NewDocElement($dom, $order, ‘shippingStateCode’, $myOrder->getShippingAddress()->getRegion());
Add_NewDocElement($dom, $order, ‘shippingZip’,$myOrder->getShippingAddress()->getPostcode());
Add_NewDocElement($dom, $order, ‘shippingCountryCode’, $myOrder->getShippingAddress()->getData(‘country_id’));
Add_NewDocElement($dom, $order, ‘pcOrd_ShippingPhone’, $myOrder->getShippingAddress()->getData(‘telephone’));
# get email
Add_NewDocElement($dom, $order, ‘pcOrd_ShippingEmail’, ” );
#start payment info
Add_NewDocElement($dom, $order, ‘Total’, number_format($myOrder->getTotal_paid(), 2, ‘.’, ”));
Add_NewDocElement($dom, $order, ‘SubTotal’, number_format($data['base_subtotal'], 2, ‘.’, ”));
#start tax info
Add_NewDocElement($dom, $order, ‘TaxRate1′, “.0675″);
Add_NewDocElement($dom, $order, ‘TaxRate2′, “0″);
Add_NewDocElement($dom, $order, ‘TaxAmt1′, number_format($data['base_tax_amount'], 2, ‘.’, ”));
Add_NewDocElement($dom, $order, ‘TaxAmt2′, ’0′);
Add_NewDocElement($dom, $order, ‘TotalTaxAmt’, number_format($data['base_tax_amount'], 2, ‘.’, ”));
Add_NewDocElement($dom, $order, ‘cardtype’, $myOrder->getData(‘cc_type’));
Add_NewDocElement($dom, $order, ‘cardnumber’,$myOrder->getData(‘cc_last4′));
Add_NewDocElement($dom, $order, ‘expiration’, $myOrder->getData(‘exp_month’).$myOrder->getData(‘exp_year’));
#Add_NewDocElement($dom, $order, ‘BatchID’, $BatchID); # not required
/* additional info not used
Add_NewDocElement($dom, $order, ‘TotalInvoiceAmount’, $myOrder->getTotal_paid());
Add_NewDocElement($dom, $order, ‘OrderStatus’, $myOrder->getStatus());
Add_NewDocElement($dom, $order, ‘PaymentMethod’,$myOrder->getPayment()->getData(‘method’));
Add_NewDocElement($dom, $order, ‘ShippingCaptured’, $myOrder->getPayment()->getData(‘shipping_captured’));
*/
#$myOrder->setStatus(Mage_Sales_Model_Order::STATE_CLOSED, true);
}
#next, for each order we retreive the specifics.
# first we’ll pull items information
$allIds = $ordersMag->getAllIds();
foreach($allIds as $thisId)
{ $myOrder->load($thisId);
foreach ($myOrder->getItemsCollection() as $item)
{
$order = $orders->appendChild($dom->createElement(‘OrdersItems’));
$data = $item->getOrigData();
Add_NewDocElement($dom, $order, ‘idOrder’, $myOrder->getData(‘increment_id’));
Add_NewDocElement($dom, $order, ‘LineOrder’, ’100′);
Add_NewDocElement($dom, $order, ‘sku’, $data['sku']);
Add_NewDocElement($dom, $order, ‘quantity’, $item->getQtyOrdered());
Add_NewDocElement($dom, $order, ‘unitPrice’, $item->getPrice());
Add_NewDocElement($dom, $order, ‘ns_TransCode’, “S” );//TODO pull all trans types.
Add_NewDocElement($dom, $order, ‘ns_Description’, $item->getName());
Add_NewDocElement($dom, $order, ‘ns_PriceCode’, “A”);
#Add_NewDocElement($dom, $order, ‘TaxCode’, $data['tax_percent']);// we may need this for later.
}
}
# next we’ll pull shipping information
$allIds = $ordersMag->getAllIds();
foreach($allIds as $thisId)
{
$myOrder->load($thisId);
$order = $orders->appendChild($dom->createElement(‘OrdersItems’));
$data = $myOrder->getOrigData();
Add_NewDocElement($dom, $order, ‘idOrder’, $myOrder->getData(‘increment_id’));
Add_NewDocElement($dom, $order, ‘LineOrder’, ’500′); #TODO ask brad about the significance of this.
Add_NewDocElement($dom, $order, ‘quantity’, ’1′);
Add_NewDocElement($dom, $order, ‘unitPrice’, $myOrder->getPayment()->getData(‘shipping_captured’));
Add_NewDocElement($dom, $order, ‘sku’, ‘AxloShipping’);
Add_NewDocElement($dom, $order, ‘ns_TransCode’, “F” );//POSIM specific freight code.
Add_NewDocElement($dom, $order, ‘ns_Description’, ‘per order shipping charge’ );
Add_NewDocElement($dom, $order, ‘ns_PriceCode’, “A”);
#Add_NewDocElement($dom, $order, ‘TaxCode’, $data['tax_percent']);// we may need this for later.
}
}
#now we’ll start the output.
#this method is for debugging. uncomment when testing.
/* $dom->formatOutput = true; ?> <pre> <? echo $dom->saveXML(); ?> </pre> <? */
# this method is for live version. comment out when teting for easier debugging.
$dom->formatOutput = true;
return $dom->saveXML();