我有一个需要支付网关集成的 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>
我已经对请求标头进行了两次交叉检查,每次我都有唯一的请求 ID,即“hiren-”+GUID+DATETIMEWITHTIME
我什至已经对交易类型的网关文档进行了交叉检查,它是有效的,但即便如此,它也会给出同样的错误。
为了编码 url,我使用了以下代码字符串 sendString = "param=" + HttpUtility.UrlEncode(xmlData);
我在想上面的代码可能有错误,但它正在回复......所以需要帮助来解决问题。
请不要要求提供文档文件,但您可以要求提供额外信息。