付款方式 BigCommerce
Posted
技术标签:
【中文标题】付款方式 BigCommerce【英文标题】:Payment Method BigCommerce 【发布时间】:2018-03-08 05:31:30 【问题描述】:我在一个与 BigCommerce 集成的项目中工作,但我在尝试处理付款方式时遇到问题,如果接受使用卡,我需要知道付款方式中使用的卡类型是什么。 这是我请求付款方式列表时响应的 Xml。 GET /api/v2/payments/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>
如果我选择测试支付网关作为支付方式,您必须插入一张卡。我需要知道卡的类型(VI、MC、AMEX ....)
【问题讨论】:
取决于卡片生成器。 getcreditcardnumbers.com,第一个数字表示卡片类型。 4 = 签证等。 好的,但是你如何获得 card type = 4 y 需要在响应中输入 您发布了使用货到付款的付款示例,因此没有信用卡。发布信用卡付款示例,以便我们提供良好的答案。 不,我使用测试支付网关,它需要一张我发布此问题的卡片 有人可以提出任何建议吗?也许这是直接向 BigCommerce 支持团队提出的问题 【参考方案1】:考虑使用 BigCommerce 的 Transactions API - 只要您知道订单的订单 ID,您就可以使用此其他 API 访问订单支付方式的详细信息。此处的文档:https://developer.bigcommerce.com/api/v3/orders.html#gettransactions
请注意,这是一个“V3”API,因此您需要通过 OAuth 访问它,并且它只是 JSON。
【讨论】:
所以你告诉我,如果我使用 V3 API,我只能访问该信息,这是没有意义的,我的应用程序使用 XML,它必须是另一种方式 我只是向您展示 BC 提供的更新的 API,其中包含您需要的信息。他们的 V2 Orders API 已经有很多年历史了,这个非常适合您的用例的 Transaction API 还不到一年,这就是它只使用现代 JSON 的原因。 V2 Orders API 也可以通过 JSON 以及某些标头使用。【参考方案2】:使用 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();
【讨论】:
我了解,但没有卡类型或 cc_type 之类的属性,这就是我需要的,例如(万事达卡、维萨卡等) 支付卡号(信用卡、借记卡等)的前 6 位或 8 位数字称为发卡行标识号 (IIN),以前称为银行标识号 (BIN)。网上应该有一个表格,您可以查找该公司。 xml 不包含此信息。请参阅:***.com/questions/72768/… 这不是我的问题,如果您使用与 magento 的集成,您会看到他们在请求中返回支付方式中使用的 cc_type,如果您使用 Visa,他们返回 "VI" ,即我在这里需要什么,但 bigcommerce 将响应仅限于付款方式及其代码和名称 这是 BigCommerce 的问题。我去了他们的网站,但找不到如何获取银行 ID。我知道他们不想给出信用卡号码,但应该有办法提供。我在这里尝试搜索:forum.bigcommerce.com/s/search/All 但不需要信用卡号,只需要 cc_type,我知道我们可以从 cc_number 获取 cc_type 但是其他电子商务网站给你一个 cc_type 而不显示 cc_number 似乎 bigcommerce 不提供访问权限到那个信息以上是关于付款方式 BigCommerce的主要内容,如果未能解决你的问题,请参考以下文章
Braintree:如何使用自定义 UI 选择付款方式并获取付款方式 nonce?