(原创)整合 PayPal、VeriSign、Authorize.NET 在线支付
VeriSign
Verisign PayMent Relation Method
AuthorizeNet
AuthorizeNet PayMent Relation Method
PayPal
详细请参考: http://paypaltech.com/Dave/api_sourcebook/html/index.html
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using cSharpSignatureExamples.PPSVC; // using statement for WSDL Reference
![]()
namespace cSharpSignatureExamples
{
/// <summary>
/// Summary description for DoDirectPayment.
/// </summary>
public class DoDirectPayment : System.Web.UI.Page
{
private void Page_Load(object sender, System.EventArgs e)
{
// Put user code to initialize the page here
![]()
//################set up Request########################
![]()
//instantiate DoDirectPaymentRequestType and RequestDetails objects
DoDirectPaymentRequestType DoDirectPmtReqType = new DoDirectPaymentRequestType();
DoDirectPmtReqType.DoDirectPaymentRequestDetails = new DoDirectPaymentRequestDetailsType();
![]()
//set paymentaction
DoDirectPmtReqType.DoDirectPaymentRequestDetails.PaymentAction = PaymentActionCodeType.Sale;
![]()
//set IP
DoDirectPmtReqType.DoDirectPaymentRequestDetails.IPAddress = Request.UserHostAddress;
![]()
//set CreditCard info
DoDirectPmtReqType.DoDirectPaymentRequestDetails.CreditCard = new CreditCardDetailsType();
DoDirectPmtReqType.DoDirectPaymentRequestDetails.CreditCard.CreditCardNumber = "4719294777609143";
DoDirectPmtReqType.DoDirectPaymentRequestDetails.CreditCard.CreditCardType = CreditCardTypeType.Visa;
DoDirectPmtReqType.DoDirectPaymentRequestDetails.CreditCard.CVV2 = "587";
DoDirectPmtReqType.DoDirectPaymentRequestDetails.CreditCard.ExpMonth = 1;
DoDirectPmtReqType.DoDirectPaymentRequestDetails.CreditCard.ExpYear = 2007;
![]()
![]()
//set billing address
DoDirectPmtReqType.DoDirectPaymentRequestDetails.CreditCard.CardOwner = new PayerInfoType();
DoDirectPmtReqType.DoDirectPaymentRequestDetails.CreditCard.CardOwner.PayerName = new PersonNameType();
DoDirectPmtReqType.DoDirectPaymentRequestDetails.CreditCard.CardOwner.PayerName.FirstName = "Bob";
DoDirectPmtReqType.DoDirectPaymentRequestDetails.CreditCard.CardOwner.PayerName.LastName = "Fakebuyer";
DoDirectPmtReqType.DoDirectPaymentRequestDetails.CreditCard.CardOwner.Address = new AddressType();
DoDirectPmtReqType.DoDirectPaymentRequestDetails.CreditCard.CardOwner.Address.Street1 = "1541 N 121st st";
DoDirectPmtReqType.DoDirectPaymentRequestDetails.CreditCard.CardOwner.Address.Street2 = "Apt 12";
DoDirectPmtReqType.DoDirectPaymentRequestDetails.CreditCard.CardOwner.Address.CityName = "Los Angeles";
DoDirectPmtReqType.DoDirectPaymentRequestDetails.CreditCard.CardOwner.Address.StateOrProvince = "CA";
DoDirectPmtReqType.DoDirectPaymentRequestDetails.CreditCard.CardOwner.Address.PostalCode = "90210";
DoDirectPmtReqType.DoDirectPaymentRequestDetails.CreditCard.CardOwner.Address.CountrySpecified = true;
DoDirectPmtReqType.DoDirectPaymentRequestDetails.CreditCard.CardOwner.Address.Country = CountryCodeType.US;
DoDirectPmtReqType.DoDirectPaymentRequestDetails.CreditCard.CardOwner.Address.Phone = "210-899-4111";
![]()
![]()
//setup individual items
//item 1
PaymentDetailsItemType item1 = new PaymentDetailsItemType();
item1.Amount = new BasicAmountType();
item1.Amount.Value = "2.00";
item1.Amount.currencyID = CurrencyCodeType.USD;
item1.Quantity = "1";
item1.Tax = new BasicAmountType();
item1.Tax.Value = "1.00";
item1.Tax.currencyID = CurrencyCodeType.USD;
item1.Name = "Item 1";
item1.Number = "SKU 1";
![]()
//item 2
PaymentDetailsItemType item2 = new PaymentDetailsItemType();
item2.Amount = new BasicAmountType();
item2.Amount.Value = "5.00";
item2.Amount.currencyID = CurrencyCodeType.USD;
item2.Quantity = "1";
item2.Tax = new BasicAmountType();
item2.Tax.Value = "1.00";
item2.Tax.currencyID = CurrencyCodeType.USD;
item2.Name = "Item 2";
item2.Number = "SKU 2";
![]()
PaymentDetailsItemType[] itemArray = new PaymentDetailsItemType[2];
itemArray.SetValue(item1, 0);
itemArray.SetValue(item2, 1);
![]()
//set payment Details
DoDirectPmtReqType.DoDirectPaymentRequestDetails.PaymentDetails = new PaymentDetailsType();
DoDirectPmtReqType.DoDirectPaymentRequestDetails.PaymentDetails.Custom = System.DateTime.Now.ToLongTimeString();
DoDirectPmtReqType.DoDirectPaymentRequestDetails.PaymentDetails.PaymentDetailsItem = new PaymentDetailsItemType[2];
DoDirectPmtReqType.DoDirectPaymentRequestDetails.PaymentDetails.PaymentDetailsItem = itemArray;
![]()
DoDirectPmtReqType.DoDirectPaymentRequestDetails.PaymentDetails.PaymentDetailsItem.SetValue(item1, 0);
DoDirectPmtReqType.DoDirectPaymentRequestDetails.PaymentDetails.PaymentDetailsItem.SetValue(item2, 1);
![]()
DoDirectPmtReqType.DoDirectPaymentRequestDetails.PaymentDetails.OrderTotal = new BasicAmountType();
DoDirectPmtReqType.DoDirectPaymentRequestDetails.PaymentDetails.OrderTotal.currencyID = CurrencyCodeType.USD;
DoDirectPmtReqType.DoDirectPaymentRequestDetails.PaymentDetails.OrderTotal.Value = "11.00";
DoDirectPmtReqType.DoDirectPaymentRequestDetails.PaymentDetails.ShippingTotal = new BasicAmountType();
DoDirectPmtReqType.DoDirectPaymentRequestDetails.PaymentDetails.ShippingTotal.currencyID = CurrencyCodeType.USD;
DoDirectPmtReqType.DoDirectPaymentRequestDetails.PaymentDetails.ShippingTotal.Value = "2.00";
DoDirectPmtReqType.DoDirectPaymentRequestDetails.PaymentDetails.TaxTotal = new BasicAmountType();
DoDirectPmtReqType.DoDirectPaymentRequestDetails.PaymentDetails.TaxTotal.currencyID = CurrencyCodeType.USD;
DoDirectPmtReqType.DoDirectPaymentRequestDetails.PaymentDetails.TaxTotal.Value = "2.00";
DoDirectPmtReqType.DoDirectPaymentRequestDetails.PaymentDetails.ItemTotal = new BasicAmountType();
DoDirectPmtReqType.DoDirectPaymentRequestDetails.PaymentDetails.ItemTotal.currencyID = CurrencyCodeType.USD;
DoDirectPmtReqType.DoDirectPaymentRequestDetails.PaymentDetails.ItemTotal.Value = "7.00";
![]()
//individual items
![]()
//set ship to address
DoDirectPmtReqType.DoDirectPaymentRequestDetails.PaymentDetails.ShipToAddress = new AddressType();
DoDirectPmtReqType.DoDirectPaymentRequestDetails.PaymentDetails.ShipToAddress.Name = "Sally Fakebuyer";
DoDirectPmtReqType.DoDirectPaymentRequestDetails.PaymentDetails.ShipToAddress.Street1 = "58654 Happy Valley";
DoDirectPmtReqType.DoDirectPaymentRequestDetails.PaymentDetails.ShipToAddress.CityName = "Oakland";
DoDirectPmtReqType.DoDirectPaymentRequestDetails.PaymentDetails.ShipToAddress.StateOrProvince = "CA";
DoDirectPmtReqType.DoDirectPaymentRequestDetails.PaymentDetails.ShipToAddress.PostalCode = "94603";
DoDirectPmtReqType.DoDirectPaymentRequestDetails.PaymentDetails.ShipToAddress.CountrySpecified = true;
DoDirectPmtReqType.DoDirectPaymentRequestDetails.PaymentDetails.ShipToAddress.Country = CountryCodeType.US;
![]()
DoDirectPaymentReq DoDPReq = new DoDirectPaymentReq();
DoDPReq.DoDirectPaymentRequest = DoDirectPmtReqType;
DoDPReq.DoDirectPaymentRequest.Version = "2.20";
![]()
//################### FINISH set up req ##############
![]()
![]()
//################ setup request Header, API credentials #######
PayPalAPIAASoapBinding PPInterface = new PayPalAPIAASoapBinding();
UserIdPasswordType user = new UserIdPasswordType();
![]()
//set api credentials - username, password, signature
user.Username = "3token_api1.sandbox.com";
user.Password = "JAVL2F5LJQAYUNQJ";
user.Signature = "ABjwDNHZ2vaJeK5UyS4MMW7IBQdlAfz0gnsA.AYAfpMVAoAB6ko-w9v4";
![]()
// set API server URL - this is for the Sandbox
PPInterface.Url = "https://api-aa.sandbox.paypal.com/2.0/";
![]()
// if this was the production site, you'd use
// PPInterface.Url = "https://api-aa-3t.paypal.com/2.0/";
![]()
PPInterface.RequesterCredentials = new CustomSecurityHeaderType();
PPInterface.RequesterCredentials.Credentials = new UserIdPasswordType();
PPInterface.RequesterCredentials.Credentials = user;
![]()
![]()
![]()
![]()
try
{
//make call return response
DoDirectPaymentResponseType DPRes = new DoDirectPaymentResponseType();
![]()
![]()
DPRes = PPInterface.DoDirectPayment(DoDPReq);
![]()
//print some output
![]()
switch (DPRes.Ack)
{
case AckCodeType.Success:
![]()
Response.Write("API response: <b>" + DPRes.Ack.ToString() +
"</b><br> Timestamp: <b>" + DPRes.Timestamp.ToLongTimeString() +
"</b><br> Version: <b>" + DPRes.Version +
"</b><br> TransactionID: <b>" + DPRes.TransactionID +
"</b><br> AVS Code: <b>" + DPRes.AVSCode +
"</b><br> CVV2 Code: <b>" + DPRes.CVV2Code);
break;
![]()
![]()
![]()
default: // show errors if Ack is NOT Success
![]()
Response.Write("API response: <b>" + DPRes.Ack.ToString() +
"</b><br> Timestamp: <b>" + DPRes.Timestamp.ToLongTimeString() +
"</b><br> Version: <b>" + DPRes.Version.ToString() +
"</b><br> Error code: <b>" + DPRes.Errors[0].ErrorCode +
"</b><br> Short error: <b>" + DPRes.Errors[0].ShortMessage +
"</b><br> Long error: <b>" + DPRes.Errors[0].LongMessage);
break;
![]()
![]()
}
![]()
![]()
}
![]()
catch (Exception ex) // if there is some exception, catch it and print the error
{
![]()
Response.Write(ex.ToString());
}
![]()
}
![]()
Web Form Designer generated code
}
}
Verisign PayMent Relation MethodAuthorizeNet
AuthorizeNet PayMent Relation MethodPayPal
详细请参考: http://paypaltech.com/Dave/api_sourcebook/html/index.html
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using cSharpSignatureExamples.PPSVC; // using statement for WSDL Reference
namespace cSharpSignatureExamples
{
/// <summary>
/// Summary description for DoDirectPayment.
/// </summary>
public class DoDirectPayment : System.Web.UI.Page
{
private void Page_Load(object sender, System.EventArgs e)
{
// Put user code to initialize the page here
//################set up Request########################
//instantiate DoDirectPaymentRequestType and RequestDetails objects
DoDirectPaymentRequestType DoDirectPmtReqType = new DoDirectPaymentRequestType();
DoDirectPmtReqType.DoDirectPaymentRequestDetails = new DoDirectPaymentRequestDetailsType();
//set paymentaction
DoDirectPmtReqType.DoDirectPaymentRequestDetails.PaymentAction = PaymentActionCodeType.Sale;
//set IP
DoDirectPmtReqType.DoDirectPaymentRequestDetails.IPAddress = Request.UserHostAddress;
//set CreditCard info
DoDirectPmtReqType.DoDirectPaymentRequestDetails.CreditCard = new CreditCardDetailsType();
DoDirectPmtReqType.DoDirectPaymentRequestDetails.CreditCard.CreditCardNumber = "4719294777609143";
DoDirectPmtReqType.DoDirectPaymentRequestDetails.CreditCard.CreditCardType = CreditCardTypeType.Visa;
DoDirectPmtReqType.DoDirectPaymentRequestDetails.CreditCard.CVV2 = "587";
DoDirectPmtReqType.DoDirectPaymentRequestDetails.CreditCard.ExpMonth = 1;
DoDirectPmtReqType.DoDirectPaymentRequestDetails.CreditCard.ExpYear = 2007;

//set billing address
DoDirectPmtReqType.DoDirectPaymentRequestDetails.CreditCard.CardOwner = new PayerInfoType();
DoDirectPmtReqType.DoDirectPaymentRequestDetails.CreditCard.CardOwner.PayerName = new PersonNameType();
DoDirectPmtReqType.DoDirectPaymentRequestDetails.CreditCard.CardOwner.PayerName.FirstName = "Bob";
DoDirectPmtReqType.DoDirectPaymentRequestDetails.CreditCard.CardOwner.PayerName.LastName = "Fakebuyer";
DoDirectPmtReqType.DoDirectPaymentRequestDetails.CreditCard.CardOwner.Address = new AddressType();
DoDirectPmtReqType.DoDirectPaymentRequestDetails.CreditCard.CardOwner.Address.Street1 = "1541 N 121st st";
DoDirectPmtReqType.DoDirectPaymentRequestDetails.CreditCard.CardOwner.Address.Street2 = "Apt 12";
DoDirectPmtReqType.DoDirectPaymentRequestDetails.CreditCard.CardOwner.Address.CityName = "Los Angeles";
DoDirectPmtReqType.DoDirectPaymentRequestDetails.CreditCard.CardOwner.Address.StateOrProvince = "CA";
DoDirectPmtReqType.DoDirectPaymentRequestDetails.CreditCard.CardOwner.Address.PostalCode = "90210";
DoDirectPmtReqType.DoDirectPaymentRequestDetails.CreditCard.CardOwner.Address.CountrySpecified = true;
DoDirectPmtReqType.DoDirectPaymentRequestDetails.CreditCard.CardOwner.Address.Country = CountryCodeType.US;
DoDirectPmtReqType.DoDirectPaymentRequestDetails.CreditCard.CardOwner.Address.Phone = "210-899-4111";

//setup individual items
//item 1
PaymentDetailsItemType item1 = new PaymentDetailsItemType();
item1.Amount = new BasicAmountType();
item1.Amount.Value = "2.00";
item1.Amount.currencyID = CurrencyCodeType.USD;
item1.Quantity = "1";
item1.Tax = new BasicAmountType();
item1.Tax.Value = "1.00";
item1.Tax.currencyID = CurrencyCodeType.USD;
item1.Name = "Item 1";
item1.Number = "SKU 1";
//item 2
PaymentDetailsItemType item2 = new PaymentDetailsItemType();
item2.Amount = new BasicAmountType();
item2.Amount.Value = "5.00";
item2.Amount.currencyID = CurrencyCodeType.USD;
item2.Quantity = "1";
item2.Tax = new BasicAmountType();
item2.Tax.Value = "1.00";
item2.Tax.currencyID = CurrencyCodeType.USD;
item2.Name = "Item 2";
item2.Number = "SKU 2";
PaymentDetailsItemType[] itemArray = new PaymentDetailsItemType[2];
itemArray.SetValue(item1, 0);
itemArray.SetValue(item2, 1);
//set payment Details
DoDirectPmtReqType.DoDirectPaymentRequestDetails.PaymentDetails = new PaymentDetailsType();
DoDirectPmtReqType.DoDirectPaymentRequestDetails.PaymentDetails.Custom = System.DateTime.Now.ToLongTimeString();
DoDirectPmtReqType.DoDirectPaymentRequestDetails.PaymentDetails.PaymentDetailsItem = new PaymentDetailsItemType[2];
DoDirectPmtReqType.DoDirectPaymentRequestDetails.PaymentDetails.PaymentDetailsItem = itemArray;
DoDirectPmtReqType.DoDirectPaymentRequestDetails.PaymentDetails.PaymentDetailsItem.SetValue(item1, 0);
DoDirectPmtReqType.DoDirectPaymentRequestDetails.PaymentDetails.PaymentDetailsItem.SetValue(item2, 1);
DoDirectPmtReqType.DoDirectPaymentRequestDetails.PaymentDetails.OrderTotal = new BasicAmountType();
DoDirectPmtReqType.DoDirectPaymentRequestDetails.PaymentDetails.OrderTotal.currencyID = CurrencyCodeType.USD;
DoDirectPmtReqType.DoDirectPaymentRequestDetails.PaymentDetails.OrderTotal.Value = "11.00";
DoDirectPmtReqType.DoDirectPaymentRequestDetails.PaymentDetails.ShippingTotal = new BasicAmountType();
DoDirectPmtReqType.DoDirectPaymentRequestDetails.PaymentDetails.ShippingTotal.currencyID = CurrencyCodeType.USD;
DoDirectPmtReqType.DoDirectPaymentRequestDetails.PaymentDetails.ShippingTotal.Value = "2.00";
DoDirectPmtReqType.DoDirectPaymentRequestDetails.PaymentDetails.TaxTotal = new BasicAmountType();
DoDirectPmtReqType.DoDirectPaymentRequestDetails.PaymentDetails.TaxTotal.currencyID = CurrencyCodeType.USD;
DoDirectPmtReqType.DoDirectPaymentRequestDetails.PaymentDetails.TaxTotal.Value = "2.00";
DoDirectPmtReqType.DoDirectPaymentRequestDetails.PaymentDetails.ItemTotal = new BasicAmountType();
DoDirectPmtReqType.DoDirectPaymentRequestDetails.PaymentDetails.ItemTotal.currencyID = CurrencyCodeType.USD;
DoDirectPmtReqType.DoDirectPaymentRequestDetails.PaymentDetails.ItemTotal.Value = "7.00";
//individual items
//set ship to address
DoDirectPmtReqType.DoDirectPaymentRequestDetails.PaymentDetails.ShipToAddress = new AddressType();
DoDirectPmtReqType.DoDirectPaymentRequestDetails.PaymentDetails.ShipToAddress.Name = "Sally Fakebuyer";
DoDirectPmtReqType.DoDirectPaymentRequestDetails.PaymentDetails.ShipToAddress.Street1 = "58654 Happy Valley";
DoDirectPmtReqType.DoDirectPaymentRequestDetails.PaymentDetails.ShipToAddress.CityName = "Oakland";
DoDirectPmtReqType.DoDirectPaymentRequestDetails.PaymentDetails.ShipToAddress.StateOrProvince = "CA";
DoDirectPmtReqType.DoDirectPaymentRequestDetails.PaymentDetails.ShipToAddress.PostalCode = "94603";
DoDirectPmtReqType.DoDirectPaymentRequestDetails.PaymentDetails.ShipToAddress.CountrySpecified = true;
DoDirectPmtReqType.DoDirectPaymentRequestDetails.PaymentDetails.ShipToAddress.Country = CountryCodeType.US;
DoDirectPaymentReq DoDPReq = new DoDirectPaymentReq();
DoDPReq.DoDirectPaymentRequest = DoDirectPmtReqType;
DoDPReq.DoDirectPaymentRequest.Version = "2.20";
//################### FINISH set up req ##############

//################ setup request Header, API credentials #######
PayPalAPIAASoapBinding PPInterface = new PayPalAPIAASoapBinding();
UserIdPasswordType user = new UserIdPasswordType();
//set api credentials - username, password, signature
user.Username = "3token_api1.sandbox.com";
user.Password = "JAVL2F5LJQAYUNQJ";
user.Signature = "ABjwDNHZ2vaJeK5UyS4MMW7IBQdlAfz0gnsA.AYAfpMVAoAB6ko-w9v4";
// set API server URL - this is for the Sandbox
PPInterface.Url = "https://api-aa.sandbox.paypal.com/2.0/";
// if this was the production site, you'd use
// PPInterface.Url = "https://api-aa-3t.paypal.com/2.0/";
PPInterface.RequesterCredentials = new CustomSecurityHeaderType();
PPInterface.RequesterCredentials.Credentials = new UserIdPasswordType();
PPInterface.RequesterCredentials.Credentials = user;



try
{
//make call return response
DoDirectPaymentResponseType DPRes = new DoDirectPaymentResponseType();

DPRes = PPInterface.DoDirectPayment(DoDPReq);
//print some output
switch (DPRes.Ack)
{
case AckCodeType.Success:
Response.Write("API response: <b>" + DPRes.Ack.ToString() +
"</b><br> Timestamp: <b>" + DPRes.Timestamp.ToLongTimeString() +
"</b><br> Version: <b>" + DPRes.Version +
"</b><br> TransactionID: <b>" + DPRes.TransactionID +
"</b><br> AVS Code: <b>" + DPRes.AVSCode +
"</b><br> CVV2 Code: <b>" + DPRes.CVV2Code);
break;


default: // show errors if Ack is NOT Success
Response.Write("API response: <b>" + DPRes.Ack.ToString() +
"</b><br> Timestamp: <b>" + DPRes.Timestamp.ToLongTimeString() +
"</b><br> Version: <b>" + DPRes.Version.ToString() +
"</b><br> Error code: <b>" + DPRes.Errors[0].ErrorCode +
"</b><br> Short error: <b>" + DPRes.Errors[0].ShortMessage +
"</b><br> Long error: <b>" + DPRes.Errors[0].LongMessage);
break;

}

}
catch (Exception ex) // if there is some exception, catch it and print the error
{
Response.Write(ex.ToString());
}
}
Web Form Designer generated code
}
}


浙公网安备 33010602011771号