protected void Page_Load(object sender, EventArgs e) { string cardNo = Request.Form["cardNo"]; string expire = Request.Form["expire"]; string cvv = Request.Form["cvv"]; string firstName = Request.Form["firstName"]; string lastName = Request.Form["lastName"]; string cardType = Request.Form["cardType"]; BCCreditCardInfo info = new BCCreditCardInfo(); info.card_number = cardNo; info.expire_month = int.Parse(expire.Split('-')[1]); info.expire_year = int.Parse(expire.Split('-')[0]); info.cvv = int.Parse(cvv); info.first_name = firstName; info.last_name = lastName; info.card_type = cardType; BCInternationlBill bill = new BCInternationlBill(BCPay.InternationalPay.PAYPAL_CREDITCARD.ToString(), 1, BCUtil.GetUUID(), "dotnet paypal", "USD"); bill.info = info; try { bill = BCPay.BCInternationalPay(bill); Response.Write("<span style='color:#00CD00;font-size:20px'>" + bill.creditCardId + "</span><br/>"); } catch (Exception excption) { Response.Write("<span style='color:#00CD00;font-size:20px'>" + excption.Message + "</span><br/>"); } }
protected void Page_Load(object sender, EventArgs e) { BCInternationlBill bill = new BCInternationlBill(BCPay.InternationalPay.PAYPAL_PAYPAL.ToString(), 1, BCUtil.GetUUID(), "dotnet paypal", "USD"); bill.returnUrl = "http://localhost:50003/paypal/return_paypal_url.aspx"; try { bill = BCPay.BCInternationalPay(bill); Response.Write("<a href=" + bill.url + ">付款地址</a><br/>"); } catch (Exception excption) { Response.Write("<span style='color:#00CD00;font-size:20px'>" + excption.Message + "</span><br/>"); } }
protected void Page_Load(object sender, EventArgs e) { //这里填入你在信用卡付款后获得的信用卡id。 BCInternationlBill bill = new BCInternationlBill(BCPay.InternationalPay.PAYPAL_SAVED_CREDITCARD.ToString(), 1, BCUtil.GetUUID(), "dotnet paypal", "USD"); bill.creditCardId = "CARD-1K997489XXXXXXXXXXXXXXX"; try { bill = BCPay.BCInternationalPay(bill); Response.Write("<span style='color:#00CD00;font-size:20px'>" + "成功" + "</span><br/>"); } catch (Exception excption) { Response.Write("<span style='color:#00CD00;font-size:20px'>" + excption.Message + "</span><br/>"); } }
/// <summary> /// 境外支付 /// </summary> /// <param name="channel">渠道类型 /// enum InternationalPay提供了三个境外支付渠道类型,分别是: /// PAYPAL_PAYPAL : 跳转到paypal使用paypal内支付 /// PAYPAL_CREDITCARD : 直接使用信用卡支付(paypal渠道) /// PAYPAL_SAVED_CREDITCARD : 使用存储的行用卡id支付(信用卡信息存储在PAYPAL) /// </param> /// <param name="totalFee">订单总金额 /// 只能为整数,单位为分 /// 必填 /// </param> /// <param name="billNo">商户订单号 /// 32个字符内,数字和/或字母组合,确保在商户系统中唯一(即所有渠道所有订单号不同) /// 必填 /// </param> /// <param name="title">订单标题 /// 32个字节内,最长支持16个汉字 /// 必填 /// </param> /// <param name="currency">三位货币种类代码 /// 必填 /// 类型如下: /// Australian dollar AUD /// Brazilian real** BRL /// Canadian dollar CAD /// Czech koruna CZK /// Danish krone DKK /// Euro EUR /// Hong Kong dollar HKD /// Hungarian forint HUF /// Israeli new shekel ILS /// Japanese yen JPY /// Malaysian ringgit MYR /// Mexican peso MXN /// New Taiwan dollar TWD /// New Zealand dollar NZD /// Norwegian krone NOK /// Philippine peso PHP /// Polish złoty PLN /// Pound sterling GBP /// Singapore dollar SGD /// Swedish krona SEK /// Swiss franc CHF /// Thai baht THB /// Turkish lira TRY /// United States dollar USD /// </param> /// <param name="info">信用卡信息 /// 具体查看BCCreditCardInfo类 /// 当channel 为PAYPAL_CREDITCARD必填 /// </param> /// <param name="creditCardId"> /// 当使用PAYPAL_CREDITCARD支付完成后会返回一个credit_card_id,商家可以存储这个id方便下次通过这个id发起支付无需再输入卡面信息 /// </param> /// <param name="returnUrl">同步返回页面 /// 支付渠道处理完请求后,当前页面自动跳转到商户网站里指定页面的http路径。 /// 当channel参数为PAYPAL_PAYPAL时为必填 /// </param> /// <returns></returns> public static BCInternationlBill BCInternationalPay(BCInternationlBill bill) { Random random = new Random(); string payUrl = BCPrivateUtil.getHost() + BCConstants.version + BCConstants.internationalURL; string paraString = prepareInternationalPayParameters(bill); try { HttpWebResponse response = BCPrivateUtil.CreatePostHttpResponse(payUrl, paraString, BCCache.Instance.networkTimeout); string respString = BCPrivateUtil.GetResponseString(response); return handleInternationalPayResult(respString, bill); } catch (Exception e) { var ex = new BCException(e.Message); throw ex; } }
//准备境外支付参数 public static string prepareInternationalPayParameters(BCInternationlBill bill) { long timestamp = BCUtil.GetTimeStamp(DateTime.Now); JsonData data = new JsonData(); data["app_id"] = BCCache.Instance.appId; data["app_sign"] = BCPrivateUtil.getAppSignature(BCCache.Instance.appId, BCCache.Instance.appSecret, timestamp.ToString()); data["timestamp"] = timestamp; data["channel"] = bill.channel; data["total_fee"] = bill.totalFee; data["bill_no"] = bill.billNo; data["title"] = bill.title; data["currency"] = bill.currency; if (bill.info != null) { data["credit_card_info"] = JsonMapper.ToObject(JsonMapper.ToJson(bill.info)); } if (bill.creditCardId != null) { data["credit_card_id"] = bill.creditCardId; } if (bill.returnUrl != null) { data["return_url"] = bill.returnUrl; } string paraString = data.ToJson(); return paraString; }
//处理境外支付回调 public static BCInternationlBill handleInternationalPayResult(string respString, BCInternationlBill bill) { JsonData responseData = JsonMapper.ToObject(respString); if (responseData["result_code"].ToString() == "0") { if (bill.channel == "PAYPAL_PAYPAL") { bill.url = responseData["url"].ToString(); } if (bill.channel == "PAYPAL_CREDITCARD") { bill.creditCardId = responseData["credit_card_id"].ToString(); } } else { var ex = new BCException(responseData["err_detail"].ToString()); throw ex; } return bill; }