1

支払いゲートウェイの統合を必要とする Windows アプリケーションがあります。私が行ったこれらすべてのもの。

プロセスには次のものが含まれます... -Xml リクエスト ヘッダーの作成 -URL としてのエンコード -URL エンコードされたデータを REST API に送信します。リンクはドキュメントに記載されています。- テスト サーバーがトランザクションを実行し、アプリケーションに応答を返します。

これらの機能を実現するために私が行ったこと...

1) 「HttpWebRequest」クラスを使用して URL へのリクエストを作成しました。セキュリティと機密であるため、共有するつもりはありません。

2) xml ヘッダーを生成し、エンコードされた URL として送信します。

3) サーバーもアプリケーションに応答します。しかし、ステータスでは成功しません

リクエスト形式とレスポンス形式を掲載します。

<?xml version="1.0" encoding="UTF-8"?>
    <payment xmlns="http://www.elastic-payments.com/schema/payment">
        <merchant-account-id>!@-merchant-account-id-@!</merchant-account-id>
        <request-id>!@-request-id-@!</request-id>
        <transaction-type>purchase</transaction-type>
        <requested-amount currency="AUD">!@-requested-amount-@!</requested-amount>
        <account-holder>
            <first-name>!@-first-name-@!</first-name>
            <last-name>!@-last-name-@!</last-name>
            <email>!@-email-@!</email>
            <phone>!@-phone-@!</phone>
            <address>
                <street1>!@-street1-@!</street1>
                <street2>!@-street2-@!</street2>
                <city>!@-city-@!</city>
                <state>!@-state-@!</state>
                <country>!@-country-@!</country>
                <postal-code>!@-postal-code-@!</postal-code>
            </address>
        </account-holder>
        <card>
            <account-number>!@-account-number-@!</account-number>
            <expiration-month>!@-expiration-month-@!</expiration-month>
            <expiration-year>!@-expiration-year-@!</expiration-year>
            <card-type>!@-card-type-@!</card-type>
            <card-security-code>!@-card-security-code-@!</card-security-code>
        </card>
        <notifications>
            <notification url="!@-notification-url-@!" transaction-state="failed" />
            <notification url="!@-notification-mail-@!" />
        </notifications>
        <custom-fields>
            <custom-field field-name="order no" field-value="!@-order no-@!" />
        </custom-fields>
       <ip-address>!@-ip-address-@!</ip-address>
   </payment>

以下は、サーバーから返される応答です。

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <payment xmlns="http://www.elastic-payments.com/schema/payment" self="http://sandbox-engine.thesolution.com/engine/rest/merchants/null/payments/null">
    <merchant-account-id ref="http://sandbox-engine.thesolution.com/engine/rest/config/merchants/null"/>
        <transaction-state>failed</transaction-state>
        <completion-time-stamp>2012-11-28T08:19:31.024Z</completion-time-stamp>
        <statuses>
            <status code="400.1018" description="The same Request Id for the Merchant Account is being tried a second time.  Please use another Request Id.  " severity="error"/>
            <status code="400.1009" description="The Transaction Type is invalid. Please check your input and try again." severity="error"/>
        </statuses>
        <requested-amount/>
        <api-id>elastic-api</api-id>
    </payment>

リクエストヘッダーで2回クロスチェックしました。毎回、「hiren-」+ GUID + DATETIMEWITHTIMEである一意のリクエストIDを持っています

トランザクションタイプのゲートウェイのドキュメントとクロスチェックしたこともあり、有効ですが、それでも同じエラーが発生します。

URL をエンコードするために、次のコード文字列 sendString = "param=" + HttpUtility.UrlEncode(xmlData); を使用しました。

上記のコードでエラーが発生している可能性があると考えていますが、返信が返されているため、問題を解決するために助けが必要です。

文書ファイルを求めないでください。追加情報を求めることはできます。

4

0 に答える 0