-1

通过 Omnipay(我使用 PxPay 网关)将用户重定向到购买页面时,如何为我自己的系统添加某种参考?

基本上我想根据付款存储订单 ID,所以当用户(或通知)回来时,我可以处理订单。

4

1 回答 1

1

PxPay 支持多个参数传入,并再次退出。您应该仔细阅读集成指南,它清楚地定义了哪些字段是必需的/可选的、适用的数据类型或限制以及它们应该用于什么。

您可以将字段TxnData1, TxnData2,TxnData3用于任何自定义属性,也MerchantReference可以将其用于您的示例中的订单 ID。本质上,一旦交易完成,您在这些字段中传递的任何信息都将传回给您。

这是对 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>

我快速浏览了GitHub 上 Omnipay Payment Express 代码的代码,您会在生成对 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字段,尽管我相信您可以添加自己对其他字段的支持。Fork 它在 GitHub 上 - 确保其他人也会欣赏它。

于 2014-07-14T03:39:32.763 回答