2014-07-14 29 views
-2

當通過Omnipay(我正在使用PxPay網關)將用戶重定向到購買頁面時,如何爲我自己的系統添加某種參考?在Omnipay請求/響應(PxPay)中存儲訂單ID

基本上我想存儲訂單ID付款,所以當用戶(或通知)回來我可以處理訂單。

+0

是的,我瞭解PxPay中的'TxnDataX'字段,但我正在尋找一種多網關方法。 – Petah

+0

每個門口的方式都不一樣。 –

+0

如果您正在尋找多網關方法,您需要構建更高級別的支付網關處理封裝器,以便在頂層進行工作,並且每次都在內部與適當的網關API代碼進行通信。 –

回答

1

PxPay支持多個參數傳入並返回。您應該對integration guide有更好的瞭解,它清楚地說明了哪些字段是必需/可選的,哪些數據類型或限制適用以及應該使用哪些字段。

您可以使用它應該用於訂單ID作爲你的榜樣領域TxnData1TxnData2TxnData3任何自定義屬性,以及MerchantReference。基本上,一旦交易完成,您在這些字段中傳遞的任何信息都會傳回給您。

下面是一個例子請求PxPay 2.0:

<GenerateRequest> 
    <PxPayUserId>your_user_id</PxPayUserId> 
    <PxPayKey>foobar1234</PxPayKey> 
    <TxnType>Purchase</TxnType> 
    <AmountInput>1.23</AmountInput> 
    <CurrencyInput>NZD</CurrencyInput> 
    <MerchantReference>YOUR_ORDER_ID_HERE</MerchantReference> 
    <TxnData1>Custom data field 1</TxnData1> 
    <TxnData2>Custom data field 2</TxnData2> 
    <TxnData3>Custom data field 3</TxnData3> 
    <UrlSuccess>http://stackoverflow.com</UrlSuccess> 
    <UrlFail>http://facepalm.com</UrlFail> 
</GenerateRequest> 

我已經通過了Omnipay Payment Express code on GitHub代碼快看,你會發現在生成一個請求的類此行到PxPay:

public function getData() 
{ 
    $this->validate('amount', 'returnUrl'); 

    $data = new SimpleXMLElement('<GenerateRequest/>'); 
    $data->PxPayUserId = $this->getUsername(); 
    $data->PxPayKey = $this->getPassword(); 
    $data->TxnType = $this->action; 
    $data->AmountInput = $this->getAmount(); 
    $data->CurrencyInput = $this->getCurrency(); 
    $data->MerchantReference = $this->getDescription(); // here's your field 
    $data->UrlSuccess = $this->getReturnUrl(); 
    $data->UrlFail = $this->getReturnUrl(); 

    return $data; 
} 

如此看來,目前的代碼只支持MerchantReference場,但我敢肯定,你可以添加其他字段自己的支持。把它放在GitHub上 - 確定其他人也會喜歡它。

+0

'MerchantReference'顯示給用戶作爲「描述」不是嗎?訂單ID並不適合這種情況(因爲人類可讀的描述會更好。 – Petah

+0

@Petah認真閱讀文檔離子(第11頁):'商業參考參考在交易響應中返回,商戶網站可以使用該參考。商家參考字段的常見用途是發票和訂單號。這是一個可選字段.'您也可以使用'TxnId'作爲您的訂單ID。 –

+0

TxnId是你想要的那個 –