(原创)整合 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
    }

}

posted @ 2006-07-07 14:15  杰客  阅读(2936)  评论(5)    收藏  举报