0

mysql テーブルから情報を取得し、それを createTransactionRequest 配列に挿入して、電子メールに項目を表示しようとしています。これを実行してページにエコーすると、本来あるべきように見えますが、エラーが発生し続けます。配列 ( $lineitem ) を削除すると、正常に作成されます。私はこれを間違って挿入していると感じています。または、私がやろうとしている方法でこれを行うことは不可能です。これについてより多くの経験を持つ誰かが私がそれを理解するのを助けることができることを願っています.

このような配列を作成します。

while($r = mysql_fetch_array($cartitems)) {
$lineitem[] = array('itemId' => ''.$r['itemid'].'','name' => ''.$r['productname'].'','description' => ''.$r['productdescription'].'','quantity' => '1','unitPrice' => ''.$price.'');
}

次に、このように配列にプラグインします..

$xml->createTransactionRequest(array(
'refId' => rand(1000000, 100000000),
'transactionRequest' => array(
'transactionType' => 'authCaptureTransaction',
'amount' => 45.00,
'payment' => array(
'creditCard' => array(
    'cardNumber' => '4111111111111111',
    'expirationDate' => '122015',
    'cardCode' => '123',
),
),
'order' => array(
'invoiceNumber' => '123123',
'description' => 'Purchase from website',
),
'lineItems' => array(
'lineItem' => $lineitem
),
'poNumber' => '123123321',
'customer' => array(
'id' => 123,
'email' => email@website.com,
),
'billTo' => array(
'firstName' => $firstname,
'lastName' => $lastname,
'address' => $address,
'city' => $city,
'state' => $state,
'zip' => $zipcode,
'country' => 'USA',
),
'customerIP' => 12-12-12-1234,
'transactionSettings' => array(
'setting' => array(
    0 => array(
        'settingName' =>'allowPartialAuth',
        'settingValue' => 'false'
                                                ),
    1 => array(
        'settingName' => 'duplicateWindow',
        'settingValue' => '0'
    ),
    2 => array(
        'settingName' => 'emailCustomer',
        'settingValue' => 'true'
    ),
    3 => array(
        'settingName' => 'recurringBilling',
        'settingValue' => 'false'
    ),
    4 => array(
        'settingName' => 'testRequest',
        'settingValue' => 'false'
    )
)
),
),
));

--------------- 以下の編集、print からの出力の表示 ----------------

Array
(
    [refId] => 90801855
    [transactionRequest] => Array
        (
            [transactionType] => authCaptureTransaction
            [amount] => 31.41
            [payment] => Array
                (
                    [creditCard] => Array
                        (
                            [cardNumber] => 4111111111111111
                            [expirationDate] => 042012
                            [cardCode] => 123
                        )

                )

            [order] => Array
                (
                    [invoiceNumber] => 1360116011
                    [description] => Purchase from website
                )

            [lineItems] => Array
                (
                    [lineItem] => Array
                        (
                            [0] => Array
                                (
                                    [itemId] => 1
                                    [name] => item one title
                                    [description] => item one description
                                    [quantity] => 1
                                    [unitPrice] => 19.90
                                )

                            [1] => Array
                                (
                                    [itemId] => 4
                                    [name] => item 4 title
                                    [description] => item 4 description
--
                                    [quantity] => 1
                                    [unitPrice] => 15.00
                                )

                        )

                )

            [poNumber] => 22
            [customer] => Array
                (
                    [id] => 2
                    [email] => email@website.com
                )

            [billTo] => Array
                (
                    [firstName] => john
                    [lastName] => smith
                    [address] => 132 addy here lane
                    [city] => foxboro
                    [state] => MA
                    [zip] => 01955
                    [country] => USA
                )

            [customerIP] => 12.123.123.123
            [transactionSettings] => Array
                (
                    [setting] => Array
                        (
                            [0] => Array
                                (
                                    [settingName] => allowPartialAuth
                                    [settingValue] => false
                                )

                            [1] => Array
                                (
                                    [settingName] => duplicateWindow
                                    [settingValue] => 0
                                )

                            [2] => Array
                                (
                                    [settingName] => emailCustomer
                                    [settingValue] => true
                                )

                            [3] => Array
                                (
                                    [settingName] => recurringBilling
                                    [settingValue] => false
                                )

                            [4] => Array
                                (
                                    [settingName] => testRequest
                                    [settingValue] => false
                                )

                        )

                )

        )

)
4

1 に答える 1

0

これが良いニュースなのか、悪いニュースなのか、私にはわかりません。提供されたデータを使用して、2 つのテストを機能させることができました。

最初のコード例は、提供されたデータで私のサンプル コードを使用していました。サンプル コードは、私が手動で追加した項目を含む上記のコードを使用しています。3 番目のコード サンプルで、要求と応答の XML を確認できます。

これを行う際に役立つヒントをいくつか紹介します。

  • --上記のサンプル データでは、2 番目の項目でランダムにいくつかのダッシュが表示されました。それらはあなたのコードにありますか?それとも単なるカット&ペーストのミスですか?
  • Authorize.Net は、数値が引用符で囲まれて渡されるかどうかをあまり気にしないので、数値をそこに入れることは常に良い考えです。
于 2013-02-06T02:52:26.830 に答える