我在一个与BigCommerce集成的项目中工作,但我在尝试处理付款方式时遇到问题,如果接受使用卡,我需要知道付款方式中使用的卡类型是什么。 这是我提出付款方式列表请求时的响应的Xml。 GET / api / v2 / payment / methods
<?xml version="1.0" encoding="UTF-8"?>
<payment_methods>
<payment_method>
<code>braintree</code>
<name>PayPal powered by Braintree</name>
<test_mode>false</test_mode>
</payment_method>
<payment_method>
<code>braintreepaypal</code>
<name>PayPal powered by Braintree</name>
<test_mode>false</test_mode>
</payment_method>
<payment_method>
<code>testgateway</code>
<name>Test Payment Gateway</name>
<test_mode>true</test_mode>
</payment_method>
<payment_method>
<code>cod</code>
<name>Cash on Delivery</name>
<test_mode>false</test_mode>
</payment_method>
<payment_method>
<code>cheque</code>
<name>Check</name>
<test_mode>false</test_mode>
</payment_method>
<payment_method>
<code>moneyorder</code>
<name>Money Order</name>
<test_mode>false</test_mode>
</payment_method>
<payment_method>
<code>instore</code>
<name>Pay in Store</name>
<test_mode>false</test_mode>
</payment_method>
<payment_method>
<code>bankdeposit</code>
<name>Bank Deposit</name>
<test_mode>false</test_mode>
</payment_method>
</payment_methods>
如果我选择Test Payment Gateway作为付款方式,您必须插入一张卡。我需要知道卡的类型(VI,MC,AMEX ....)
答案 0 :(得分:-1)
使用xml linq。我将文件读入字符串,就像你从响应中获得的输入一样。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Xml.Linq;
using System.IO;
namespace ConsoleApplication1
{
class Program
{
const string FILENAME = @"c:\temp\test.xml";
static void Main(string[] args)
{
//read file into string
string xml = File.ReadAllText(FILENAME);
XDocument doc = XDocument.Parse(xml);
var payment_methods = doc.Descendants("payment_method").Select(x => new {
code = (string)x.Element("code"),
name = (string)x.Element("name"),
test_mode = (Boolean)x.Element("test_mode")
}).ToList();
}
}
}
答案 1 :(得分:-1)
考虑使用BigCommerce的交易API - 只要您知道订单的订单ID,您就可以使用此其他API访问订单上的付款方式的详细信息。这里的文档:https://developer.bigcommerce.com/api/v3/orders.html#gettransactions
请注意,这是一个&#34; V3&#34; API,因此您需要通过OAuth访问它,而且只需要它的JSON。