當通過Omnipay(我正在使用PxPay網關)將用戶重定向到購買頁面時,如何爲我自己的系統添加某種參考?在Omnipay請求/響應(PxPay)中存儲訂單ID
基本上我想存儲訂單ID付款,所以當用戶(或通知)回來我可以處理訂單。
當通過Omnipay(我正在使用PxPay網關)將用戶重定向到購買頁面時,如何爲我自己的系統添加某種參考?在Omnipay請求/響應(PxPay)中存儲訂單ID
基本上我想存儲訂單ID付款,所以當用戶(或通知)回來我可以處理訂單。
PxPay支持多個參數傳入並返回。您應該對integration guide有更好的瞭解,它清楚地說明了哪些字段是必需/可選的,哪些數據類型或限制適用以及應該使用哪些字段。
您可以使用它應該用於訂單ID作爲你的榜樣領域TxnData1
,TxnData2
,TxnData3
任何自定義屬性,以及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上 - 確定其他人也會喜歡它。
'MerchantReference'顯示給用戶作爲「描述」不是嗎?訂單ID並不適合這種情況(因爲人類可讀的描述會更好。 – Petah
@Petah認真閱讀文檔離子(第11頁):'商業參考參考在交易響應中返回,商戶網站可以使用該參考。商家參考字段的常見用途是發票和訂單號。這是一個可選字段.'您也可以使用'TxnId'作爲您的訂單ID。 –
TxnId是你想要的那個 –
是的,我瞭解PxPay中的'TxnDataX'字段,但我正在尋找一種多網關方法。 – Petah
每個門口的方式都不一樣。 –
如果您正在尋找多網關方法,您需要構建更高級別的支付網關處理封裝器,以便在頂層進行工作,並且每次都在內部與適當的網關API代碼進行通信。 –