在玩过游戏之后。Net CIM XML API C#示例代码,我开始使用授权。Net C#SDK。我能够使用CIM XML API示例代码将信用卡和银行账户添加到客户配置文件中。不过,我不知道如何使用SDK添加银行账户。
使用CIM XML API添加银行账户:
...
customerPaymentProfileType new_payment_profile = new customerPaymentProfileType();
paymentType new_payment = new paymentType();
bankAccountType new_bank = new bankAccountType();
new_bank.nameOnAccount = "xyz";
new_bank.accountNumber = "4111111";
new_bank.routingNumber = "325070760";
new_payment.Item = new_bank;
new_payment_profile.payment = new_payment;
createCustomerPaymentProfileRequest request = new createCustomerPaymentProfileRequest();
XmlAPIUtilities.PopulateMerchantAuthentication((ANetApiRequest)request);
request.customerProfileId = profile_id.ToString();
request.paymentProfile = new_payment_profile;
request.validationMode = validationModeEnum.testMode;
...
使用SDK,我只看到一个。AddCreditCard()
方法,但无法添加银行帐户。当我循环查看我所有的PaymentProfiles
时,遇到银行账户时也会抛出一个异常:
CustomerGateway cg = new CustomerGateway("xxx", "yyy");
foreach (string cid in cg.GetCustomerIDs())
{
Customer c = cg.GetCustomer(cid);
foreach (PaymentProfile pp in c.PaymentProfiles)
{
Console.WriteLine(pp.ToString());
}
}
例外情况:
Unable to cast object of type 'AuthorizeNet.APICore.bankAccountMaskedType' to type 'AuthorizeNet.APICore.creditCardMaskedType'.
如何使用Authorize. Net C#SDK将银行账户添加到CIM配置文件中?
更新:
CIM可以存储银行账户信息的证明:
以下是经过测试的,但仅限于原始问题提出的内容(为我测试更多?),我使用提供的XML示例编写了它,并复制了AddCreditCard代码的代码。
完成所有更新后,以下代码将起作用:
var cg = new CustomerGateway("login", "transkey", ServiceMode.Test);
var c = cg.CreateCustomer("peter@example.com", "test customer");
//just to show that we didn't break CC
cg.AddCreditCard(c.ProfileID, "cc#", 07, 2011);
cg.AddBankAccount(c.ProfileID, "Peter", "bankaccoung#", "routing#");
//tostring doesn't actually do much... but if you break on it you can see the details for both the CC and the bank info.
foreach (PaymentProfile pp in cg.GetCustomer(c.ProfileID).PaymentProfiles)
{
Console.WriteLine(pp.ToString());
}
首先,从下载API的C#源代码http://developer.authorize.net/downloads/.
在回顾代码时,我可以看到4个使用“信用卡类型”的文件,它们是订阅equest.cs、客户ateway.cs、支付rofile.cs和AnetApiSchema.cs(最后一个我们不必碰)。我们还需要注意“信用卡伪装类型”,它用于支付rofile.cs、Transaction.cs和AnetApiSchema.cs.这些文件出现的任何地方,我们都需要确保我们也支持银行账户等价物。
打开AuthorizeNET解决方案。我们将跳过上面列出的文件。
在CustomerGateway。cs添加以下代码块:
/// <summary>
/// Adds a bank account profile to the user and returns the profile ID
/// </summary>
/// <returns></returns>
public string AddBankAccount(string profileID, string nameOnAccount, string accountNumber, string routingNumber)
{
var req = new createCustomerPaymentProfileRequest();
req.customerProfileId = profileID;
req.paymentProfile = new customerPaymentProfileType();
req.paymentProfile.payment = new paymentType();
bankAccountType new_bank = new bankAccountType();
new_bank.nameOnAccount = nameOnAccount;
new_bank.accountNumber = accountNumber;
new_bank.routingNumber = routingNumber;
req.paymentProfile.payment.Item = new_bank;
var response = (createCustomerPaymentProfileResponse)_gateway.Send(req);
return response.customerPaymentProfileId;
}
在PaymentP中rofile.cs添加一些公共属性
public string BankNameOnAccount {get; set; }
public string BankAccountNumber { get; set; }
public string BankRoutingNumber { get; set; }
修改PaymentProfile(CusterPaymentProfileMaskedType apiType)
构造函数的以下块:
if (apiType.payment != null) {
if(apiType.payment.Item is bankAccountMaskedType) {
var bankAccount = (bankAccountMaskedType)apiType.payment.Item;
this.BankNameOnAccount = bankAccount.nameOnAccount;
this.BankAccountNumber = bankAccount.accountNumber;
this.BankRoutingNumber = bankAccount.routingNumber;
}
else if (apiType.payment.Item is creditCardMaskedType)
{
var card = (creditCardMaskedType)apiType.payment.Item;
this.CardType = card.cardType;
this.CardNumber = card.cardNumber;
this.CardExpiration = card.expirationDate;
}
}
将此块添加到PaymentProfile. ToAPI()方法:
if (!string.IsNullOrEmpty(this.BankAccountNumber))
{
bankAccountType new_bank = new bankAccountType();
new_bank.nameOnAccount = BankNameOnAccount;
new_bank.accountNumber = BankAccountNumber;
new_bank.routingNumber = BankRoutingNumber;
result.payment.Item = new_bank;
}
将以下公共属性添加到SubscriptionRequest。反恐精英
public string BankNameOnAccount {get; set; }
public string BankAccountNumber { get; set; }
public string BankRoutingNumber { get; set; }
如果将块TWICE添加到SubcriptionRequest,则添加以下其他内容。第一次是在ToAPI方法中,第二次是在ToUpdateableAPI方法中,在这两种情况下,它都在CC号空值检查之后。
else if (!String.IsNullOrEmpty(this.BankAccountNumber))
{
bankAccountType new_bank = new bankAccountType();
new_bank.nameOnAccount = BankNameOnAccount;
new_bank.accountNumber = BankAccountNumber;
new_bank.routingNumber = BankRoutingNumber;
sub.payment = new paymentType();
sub.payment.Item = new_bank;
}
将以下公共属性添加到Transaction.cs
public string BankNameOnAccount { get; set; }
public string BankAccountNumber { get; set; }
public string BankRoutingNumber { get; set; }
交易中。cs在静态NewFromResponse(transactionDetailsType trans)方法中,找到检查trans的块。付款!=空
并调整,如图所示:
if (trans.payment != null) {
if (trans.payment.Item.GetType() == typeof(creditCardMaskedType))
{
var cc = (creditCardMaskedType)trans.payment.Item;
result.CardNumber = cc.cardNumber;
result.CardExpiration = cc.expirationDate;
result.CardType = cc.cardType;
}
else if (trans.payment.Item.GetType() == typeof(bankAccountMaskedType))
{
var bankAccount = (bankAccountMaskedType)trans.payment.Item;
result.BankNameOnAccount = bankAccount.nameOnAccount;
result.BankAccountNumber = bankAccount.accountNumber;
result.BankRoutingNumber = bankAccount.routingNumber;
}
}
我正在研究使用GMail API为我们的一个系统以编程方式发送电子邮件。我认为我需要创建一个服务帐户,然后将其设置为具有域范围的访问权限,以便授权发送电子邮件(因此电子邮件似乎来自实际用户,而不是我的程序)。我的问题是,如果我走这条路,有没有办法阻止某些用户,这样服务帐户就不能为他们“委派”?例如,我希望能够为我们的销售团队生成和发送电子邮件,但我不希望api能够为我们的高级管理人员生成任何电子邮
我在项目中有以下课程: 账户 客户 名称:fName和lName(都是字符串字段) 日期:年、月、日(均为整数字段) 银行:包含账户收款 InputReader:从键盘读取输入 账户对象需要客户对象和期初余额。客户对象需要名称对象和日期对象。Name对象需要名字和姓氏的字符串我需要向用户询问创建Name和Date对象的详细信息,以及期初余额。 我必须通过从用户那里获取相关信息来创建一个新帐户,即它
使用指南 - 账户管理 - 多账户关联 - 账户间授权有哪些限制 报告授权 百度统计客户版与站长版都有网站报告授权功能,可将本账户中的全部或部分报告授权给其他账户。 但是,由于站长账户中不存在消费维度,因此,无法接受推广账户的报告授权 即: 站长账户只能接受来自站长账户的网站报告授权,若推广账户授权网站报告给站长账户,站长版的用户将无法接受授权。 推广账户可以接受只能接受推广账户,或接受过本推广账
我目前正在开发一个应用程序,用户A可以从用户B那里购买东西。 我想做的是让用户A用PayPal付款。然后在后端,我增加用户B在我的数据库中的帐户余额,然后允许用户B将这笔钱提取到他的银行帐户。这是我的问题,是否可以将钱从PayPal转移到各种银行账户?例如,用户B通过表单发送他的银行帐号,并在后端进行适当的API调用以转移资金。 如果没有使用PayPal,那么我如何执行这种类型的转移,可能是使用其
介绍 除了内置的 用户认证 服务之外, Lumen 还提供了用户授权和资源访问控制的方案。有很多种方法与辅助函数能帮你处理授权逻辑。 总的来说,Lumen 中的使用和 Laravel 大同小异,我们会在这个文档中指出不同的地方,完整的用户授权文档还需要查阅 Laravel 授权文档 。 与 Laravel 的不同 定义权限 与 Laravel 相比,Lumen 的用户授权的不同之处在于如何定义权限
技术栈在前端是reactJS,后端由APIGateway和Lambda供电。我正在使用Auth0作为我的react应用程序中的身份服务。通过Auth0提供的一个社交登录进行身份验证时,我会返回、和。此外,我可以使用获取用户信息,例如。现在,我需要保护/阻止对我的后端即APIGateway和lambda的访问。 有很多选项来保护对AWS APIGateway的访问,如IAM授权器、自定义授权器。有一