2010-07-26 13 views
9

A través de la API XML, ¿cómo asocia un número de serie de devolución de llamada de Google Checkout con el pedido original?Google Checkout - Número de serie de devolución de llamada asociado API XML con el pedido original

En la misma línea - ¿Qué significa el número de serie en la "Opción B - Presentar un servidor a servidor API Pedido Solicitud" de la XML API doc corresponden a (formato: serial-number="981283ea-c324-44bb-a10c-fc3b2eba5707")? ¿Se relaciona con la serie enviada por la URL de devolución de llamada (numeric-only)?

Respuesta

8

La forma en que he hecho esto en el pasado está usando la etiqueta <merchanrt-private-data> en el carro original, así que algo como:

<checkout-shopping-cart xmlns='http://checkout.google.com/schema/2'> 
<shopping-cart> 
    <merchant-private-data> 
    <merchant-note>[some secret about the cart on my system]</merchant-note> 
    </merchant-private-data> 
    <items> 
    ... 
    </items> 
</shopping-cart> 
</checkout-shopping-cart> 

Entonces, después de que Google ha vuelto a llamar con un número de serie, yo uso el Notification History API para recuperar los detalles de la orden, que a su vez incluye mis datos privados, algo así como:

<new-order-notification xmlns="http://checkout.google.com/schema/2" serial-number="[serial number from google]"> 
<buyer-billing-address> 
    ... 
</buyer-billing-address> 
<timestamp>...</timestamp> 
<google-order-number>...</google-order-number> 
<order-summary> 
    <total-chargeback-amount currency="GBP">...</total-chargeback-amount> 
    <google-order-number>...</google-order-number> 
    <total-charge-amount currency="GBP">...</total-charge-amount> 
    <total-refund-amount currency="GBP">...</total-refund-amount> 
    <purchase-date>...</purchase-date> 
    <archived>false</archived> 
    <shopping-cart> 
    <merchant-private-data> 
    <merchant-note>[the secret about the cart from my system]</merchant-note> 
    </merchant-private-data> 
    <items> 
    </items> 
    </shopping-cart> 
    <order-adjustment> 
    ... 
    </order-adjustment> 
    <promotions /> 
    <buyer-id>...</buyer-id> 
    <buyer-marketing-preferences> 
    <email-allowed>false</email-allowed> 
    </buyer-marketing-preferences> 
    <buyer-shipping-address> 
    ... 
    </buyer-shipping-address> 
    <order-total currency="GBP">...</order-total> 
    <fulfillment-order-state>NEW</fulfillment-order-state> 
    <financial-order-state>REVIEWING</financial-order-state> 
</order-summary> 
<shopping-cart> 
    <merchant-private-data> 
    <merchant-note>[the secret about the cart from my system]</merchant-note> 
    </merchant-private-data> 
    <items> 
    </items> 
</shopping-cart> 
<order-adjustment> 
    ... 
</order-adjustment> 
<promotions /> 
<buyer-id>...</buyer-id> 
<buyer-marketing-preferences> 
    <email-allowed>false</email-allowed> 
</buyer-marketing-preferences> 
<buyer-shipping-address> 
    ... 
</buyer-shipping-address> 
<order-total currency="GBP">...</order-total> 
<fulfillment-order-state>NEW</fulfillment-order-state> 
<financial-order-state>REVIEWING</financial-order-state> 
</new-order-notification> 

puedo continuación, utilizar el secreto para que coincida con los pedidos hasta los detalles que había almacenados en la base de datos previamente.

+0

¿Conoces un buen ejemplo de cómo procesar este XML? Cuando intento usar la API getMerchantPrivateData devuelve un AnyMultiple y parece que no puedo obtener los datos de él. – Lumpy

+0

@Lumpy parece que está utilizando algún tipo de envoltorio alrededor de XML API que solo devuelve XML, y no objetos: es mejor que haga una nueva pregunta y especifique qué bibliotecas está usando –

+1

@RowlandShaw This saved mi vida. No entiendo por qué Google no menciona esto en el documento. –

Cuestiones relacionadas