- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
注意:这篇文章中提到的所有代码都在沙箱中,而不是在实时环境中。
我将 CreateRecurringPaymentsProfile API 与 .Net SDK 结合使用,为订阅创建定期付款配置文件。虽然我可以使用下面的代码片段在买家使用信用卡时创建定期配置文件,但是当买家使用 PayPal 帐户时我不能这样做。我在 Merchant Net SDK 中找不到任何属性来指定买家拥有 PayPal 帐户。
问题:如何使用 Merchant SDK 使用 CreateRecurringPaymentsProfile API 为 PayPal 买家帐户而不是信用卡创建订阅配置文件?
CreateRecurringPaymentsProfile API 与使用 Merchant Net SDK 的信用卡
CreateRecurringPaymentsProfileReq createRecurringPaymentsProfile = new CreateRecurringPaymentsProfileReq();
CreateRecurringPaymentsProfileRequestType createRecurringPaymentsProfileRequest = new CreateRecurringPaymentsProfileRequestType();
RecurringPaymentsProfileDetailsType recurringPaymentsProfileDetails
= new RecurringPaymentsProfileDetailsType("2016-06-02T16:55:19+00:00");
BasicAmountType billingAmount = new BasicAmountType(CurrencyCodeType.USD, "3.00");
BillingPeriodDetailsType paymentPeriod = new BillingPeriodDetailsType(BillingPeriodType.DAY, Convert.ToInt32("5"), billingAmount);
ScheduleDetailsType scheduleDetails = new ScheduleDetailsType("description", paymentPeriod);
CreateRecurringPaymentsProfileRequestDetailsType createRecurringPaymentsProfileRequestDetails
= new CreateRecurringPaymentsProfileRequestDetailsType(recurringPaymentsProfileDetails, scheduleDetails);
CreditCardDetailsType creditCard = new CreditCardDetailsType();
creditCard.CreditCardType = CreditCardTypeType.VISA;
creditCard.CreditCardNumber = "5261193281604310";
creditCard.CVV2 = "235";
creditCard.ExpMonth = Convert.ToInt32("12");
creditCard.ExpYear = Convert.ToInt32("2016");
createRecurringPaymentsProfileRequestDetails.CreditCard = creditCard;
createRecurringPaymentsProfileRequest.CreateRecurringPaymentsProfileRequestDetails = createRecurringPaymentsProfileRequestDetails;
createRecurringPaymentsProfile.CreateRecurringPaymentsProfileRequest = createRecurringPaymentsProfileRequest;
PayPalAPIInterfaceServiceService service = new PayPalAPIInterfaceServiceService();
responseCreateRecurringPaymentsProfileResponseType
= service.CreateRecurringPaymentsProfile(createRecurringPaymentsProfile);
最佳答案
答案是不能在 CreateRecurringPaymentsProfile API 中将付款人指定为 PayPal 账户持有人。但是,此 API 仍可用于为 PayPal 帐户持有人创建订阅,如下所述。
要使用 CreateRecurringPaymentsProfile
API 通过现有的 PayPal 帐户而不是信用卡创建订阅,需要遵循一个多步骤过程。 第一步是调用 SetExpressCheckout 将 BillingAgreementDetailsType 指定为 RecurringPayments,然后重定向到此 URL (https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express -checkout
) 传递 token 以响应 SetExpressCheckout API。
ReturnURL
中指定的页面CancelURL
。第二步是在 SetExpressCheckout API 调用中指定的 ReturnURL 页面中调用 CreateRecurringPaymentsProfile
并将在步骤 1 之后收到的 token 传递给它(从传递给 ReturnUrl 的查询字符串参数中获取)在第 1 步)。当您将 token 传递给此 API 时,您不应指定任何信用卡详细信息。此步骤将导致从在第 1 步中接受订阅的用户的 PayPal 帐户支付订阅费用。
调用 SetExpressCheckout 并将用户重定向到 PayPal 的代码
protected void btnSubmit_Click(object sender, EventArgs e) {
string token = null;
SetExpressCheckoutResponseType response = SetExpressCheckoutAPIOperation();
if (response.Token == null) {
txtLog.Text = "There was some issue with calling SetExpressCheckout API. Please review the failure message that should also be printed in this textbox.";
} else {
token = response.Token;
Response.Redirect("https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=" + Server.UrlEncode(token));
}
}
public SetExpressCheckoutResponseType SetExpressCheckoutAPIOperation() {
// Create the SetExpressCheckoutResponseType object
SetExpressCheckoutResponseType responseSetExpressCheckoutResponseType = new SetExpressCheckoutResponseType();
try {
SetExpressCheckoutRequestDetailsType setExpressCheckoutRequestDetails = new SetExpressCheckoutRequestDetailsType();
BillingAgreementDetailsType baType = new BillingAgreementDetailsType(BillingCodeType.RECURRINGPAYMENTS);
baType.BillingAgreementDescription = "Gold Carrier";
billingAgreementDescription = baType.BillingAgreementDescription;
setExpressCheckoutRequestDetails.BillingAgreementDetails.Add(baType);
// URL to which the buyer's browser is returned after choosing to pay
// with PayPal.
setExpressCheckoutRequestDetails.ReturnURL = "http://www.myexample.com/completed.aspx";
// URL to which the buyer is returned if the buyer does not approve the
// use of PayPal to pay you.
setExpressCheckoutRequestDetails.CancelURL = "http://www.myexample.com/canceled.aspx";
SetExpressCheckoutReq setExpressCheckout = new SetExpressCheckoutReq();
SetExpressCheckoutRequestType setExpressCheckoutRequest = new SetExpressCheckoutRequestType(setExpressCheckoutRequestDetails);
setExpressCheckout.SetExpressCheckoutRequest = setExpressCheckoutRequest;
Dictionary < string, string > configurationMap = new Dictionary < string, string > ();
configurationMap.Add("mode", "sandbox");
// Signature Credential
configurationMap.Add("account1.apiUsername", "******");
configurationMap.Add("account1.apiPassword", "*******");
configurationMap.Add("account1.apiSignature", "********");
configurationMap.Add("account1.applicationId", "******");
// Create the service wrapper object to make the API call
PayPalAPIInterfaceServiceService service = new PayPalAPIInterfaceServiceService(configurationMap);
// # API call
responseSetExpressCheckoutResponseType = service.SetExpressCheckout(setExpressCheckout);
}
// # Exception log
catch (System.Exception ex) {
// Log the exception message
}
return responseSetExpressCheckoutResponseType;
}
ReturnURL 中用于调用 CreateRecurringPaymentProfile API 的代码
protected void Page_Load(object sender, EventArgs e) {
if (!string.IsNullOrWhiteSpace(Request.QueryString["token"])) {
token = Server.UrlDecode(Request.QueryString["token"]);
CreateRecurringPaymentProfile();
}
}
private void CreateRecurringPaymentProfile() {
CreateRecurringPaymentsProfileResponseType responseCreateRecurringPaymentsProfileResponseType = new CreateRecurringPaymentsProfileResponseType();
try {
CreateRecurringPaymentsProfileReq createRecurringPaymentsProfile = new CreateRecurringPaymentsProfileReq();
CreateRecurringPaymentsProfileRequestType createRecurringPaymentsProfileRequest = new CreateRecurringPaymentsProfileRequestType();
RecurringPaymentsProfileDetailsType recurringPaymentsProfileDetails
= new RecurringPaymentsProfileDetailsType(string.Format("{0}{1}", DateTime.UtcNow.ToString("s"), "Z"));
// Billing amount for each billing cycle during this payment period.
BasicAmountType billingAmount = new BasicAmountType(CurrencyCodeType.USD, "3.00");
BillingPeriodDetailsType paymentPeriod = new BillingPeriodDetailsType(BillingPeriodType.DAY, Convert.ToInt32("5"), billingAmount);
ScheduleDetailsType scheduleDetails = new ScheduleDetailsType(this.billingAgreementDescription, paymentPeriod);
CreateRecurringPaymentsProfileRequestDetailsType createRecurringPaymentsProfileRequestDetails
= new CreateRecurringPaymentsProfileRequestDetailsType(recurringPaymentsProfileDetails, scheduleDetails);
// Either EC token or a credit card number is required.If you include
CreditCardDetailsType creditCard = new CreditCardDetailsType();
if (string.IsNullOrEmpty(token)) {
creditCard.CreditCardType = CreditCardTypeType.VISA;
creditCard.CreditCardNumber = "5261193281604310";
creditCard.CVV2 = "235";
creditCard.ExpMonth = Convert.ToInt32("12");
creditCard.ExpYear = Convert.ToInt32("2016");
createRecurringPaymentsProfileRequestDetails.CreditCard = creditCard;
} else //we are using a PayPal email account i.e. not a credit card but a PayPal account to set up the subscription
{
createRecurringPaymentsProfileRequestDetails.Token = token;
}
createRecurringPaymentsProfileRequest.CreateRecurringPaymentsProfileRequestDetails = createRecurringPaymentsProfileRequestDetails;
createRecurringPaymentsProfile.CreateRecurringPaymentsProfileRequest = createRecurringPaymentsProfileRequest;
Dictionary < string, string > configurationMap = new Dictionary < string, string > ();
configurationMap.Add("mode", "sandbox");
// Signature Credential
configurationMap.Add("account1.apiUsername", "*****");
configurationMap.Add("account1.apiPassword", "*****");
configurationMap.Add("account1.apiSignature", "*****");
configurationMap.Add("account1.applicationId", "*****");
// Create the PayPalAPIInterfaceServiceService service object to make the API call
PayPalAPIInterfaceServiceService service = new PayPalAPIInterfaceServiceService(configurationMap);
responseCreateRecurringPaymentsProfileResponseType
= service.CreateRecurringPaymentsProfile(createRecurringPaymentsProfile);
}
// # Exception log
catch (System.Exception ex) {
// Log the exception message
}
}
关于c# - 使用 CreateRecurringPaymentsProfile API 时如何指定 PayPal 买家帐户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37603355/
在我的网站中,我们需要集成 paypal Recurring(CreateRecurringPaymentsProfile)但我们不想最终获取信用卡详细信息,我们需要将用户重定向到 Paypal 网站
我已经设法让我的网站使用 paypal billing CreateRecurringPaymentsProfile 但是我对 的字段感到困惑 计费周期和计费频率 如果我将第一个设置为每月,第二个设置
我面临试用期和第一个月付款的问题。我的要求是用户可以注册试用期这允许新用户有 30 天的免费试用期。这意味着在前 30 天之后才会按月收取费用常规金额将向用户收取。但下一个账单日应该是一个月稍后的配置
我正在尝试使用 SOAP API 创建定期付款,我执行了 PayPal API 手册中提到的以下步骤: 1- 调用“设置快速结帐”API。2- 获取 token 并将买家重定向到 PayPal 网站。
我正在尝试使用 CreateRecurringPaymentsProfile 进行定期付款。 发送的数据: &TOKEN=EC-9VR75992DL646470M &SUBSCRIBERNAME=Mr
我正在尝试在沙盒模式下使用 Paypal API 版本 54.0 56.0 的 CreateRecurringPaymentsProfile 方法创建定期付款配置文件。不幸的是,我收到 10002 错
第一步。使用 SetExpressCheckout 请求 如果成功则重定向到paypal 第 2 步。使用方法 DoExpressCheckoutPayment 和通知 url 的 curl 请求 (
因为在 SetExpressCheckout 中有一个参数 LOCALECODE 以所需语言显示支付页面。是否为 CreateRecurringPaymentsProfile 方法提供任何参数以显示特
我正在实现定期快速结账。创建配置文件的代码正在运行。我现在要做的是将自定义值传递给它。 我们可以通过 DoExpressCheckout 和 SetExpressCheckout 使用以下名称 PAY
我需要知道如何在调用 CreateRecurringPaymentsProfile 时支付第一个月的费用,目前的情况是,我可以在创建个人资料时进行初始付款,但我想进行定期付款的第一个月付款。 我当前的
在过去的 5 个小时里,我一直在搜索关于这个东西的信息,并且发现了很多不起作用的信息。我已经成功地能够使用 setExpressCheckout API,获取详细信息并收取正常订单费用,但是当我想要创
当我调用 CreateRecurringPaymentsProfile NVP API 时,我不断收到无效 token 错误。 请在下面找到我的 API 调用顺序: 设置ExpressCheckout
我正在尝试使用 Express Checkout NVP API 实现定期付款。在成功流程 SetExpressCheckout -> 重定向到 PayPal 并接受 -> GetExpressChe
注意:这篇文章中提到的所有代码都在沙箱中,而不是在实时环境中。 我将 CreateRecurringPaymentsProfile API 与 .Net SDK 结合使用,为订阅创建定期付款配置文件。
我已经在我的网站上下载并实现了这个 paypal 集成库。 https://github.com/hrendoh/PayPal-Express-Checkout-example 没有创建重复配置文件。
我正在尝试使用 Paypal 创建定期付款。为此,我正在使用此功能, function CallShortcutExpressCheckout( $paymentAmount, $currencyCo
我正在使用 angelleye php 库来创建 RecurringPaymentsProfile 并遵循 4 个步骤: 1、设置ExpressCheckout 2、重定向到www.sandbox.p
在使用 Paypal API 调用 CreateRecurringPaymentsProfile 时,我应该为 PROFILESTARTDATE 使用哪种 PHP 日期格式? Paypal 文档说:#
我尝试使用方法 CreateRecurringPaymentsProfile 在一个 session 中处理两笔定期付款。这是我的行动的时间顺序: 首先我设置方法 SetExpressCheckout
我是一名优秀的程序员,十分优秀!