Red de conocimiento informático - Computadora portátil - ¿Cómo implementa asp.net las transacciones bancarias en línea? Para ser más detallado, ¡es mejor contar el proceso y el código específicos! ¡Gracias!

¿Cómo implementa asp.net las transacciones bancarias en línea? Para ser más detallado, ¡es mejor contar el proceso y el código específicos! ¡Gracias!

Básicamente, los principales bancos no le proporcionarán interfaces de pago en línea a menos que su sitio web sea lo suficientemente grande y potente.

Usar la interfaz de una plataforma de pago de terceros es en realidad lo mismo que usar el programa de interfaz del banco.

Hablemos de la interfaz de Alipay. Hay una tarifa. Nada es gratis ahora. El paquete más bajo es de 600 yuanes por año. Flujo de transacciones en efectivo de 36.000 yuanes. El más barato.

Clase principal:

AliPay.cs

Usar sistema;

Usar System.Data;

Usar System.Web.Security;

Usar System.Web.UI;

Usar System.Web.UI.WebControls;

Usar System.Web.UI. WebControls.

Usar System.Web.UI.WebControls

Usar System.Text

Usar System.Security.Cryptography; >/// <.summary>

// Nueva interfaz de Alipay

//

namespace Gateway

{

///

/// < resumen>

/// creado por sunzhizhi 2006.5.21, sunzhizhi@msn.com <. /p>

///

clase pública Doku

{

cadena estática pública GetMD5(cadena s, cadena _input_charset)

{

///

StringBuilder sb = new StringBuilder(32) ;

for (int i = 0; i < t.Length; i++)

{

sb.Append(t[i].ToString( " x").PadLeft(2, '0' ));

}

return sb.ToString();

}

cadena estática pública[] BubbleSort(string[] r)

{

///

/// Ordenación de burbujas

///

int i, j; //indicadores de intercambio

string temp;

bool exchange;

for (i = 0; i < r.ToString("x".PadLeft(2); '0');

}

return sb.Length; i++ ) //Principalmente haz el viaje R.Length-1

{

exchange = false; //El indicador de intercambio debe ser falso antes de que comience este viaje

for (j = r.Length - 2; j >= i; j--)

{

if (System.String.CompareOrdinal) //El indicador de intercambio debe ser

false.String.CompareOrdinal(r[j + 1], r[j]) < 0) // Condición de intercambio

{

temp = r[j + 1];

r[j + 1] = r[j];

r[j] = temp;

exchange = true; // el intercambio ocurre, entonces The El indicador de intercambio está establecido en verdadero

}

}

if (!exchange) // No se produce ningún intercambio en esta clasificación, finalice el algoritmo antes

{

romper;

}

}

regresar r;

}< / p>

cadena pública CreatUrl(

puerta de enlace de cadena,

servicio de cadena,

socio de cadena,

tipo de signo de cadena,

cadena out_trade_no,

cadena asunto,

cadena cuerpo,

cadena tipo_pago,

cadena total_fee,

cadena show_url,

cadena seller_email,

cadena clave,

cadena return_url,

cadena_ input_charset,

Cadena notify_url,

Cadena logística_tipo,

Cadena logística_fee,

Cadena logística_pago,

cadena logística_tipo_1,

cadena logística_fee_ 1,

cadena logística_pago_1,

cantidad de cadena

)

{

/// < resumen>

/// Creado por sunzhizhi 2006.5.21, sunzhizhi@msn.com.

///

i;

/// Construye una matriz

string[] Oristr ={

"servicio="+servicio, <

"socio=" + socio,

"subject=" + asunto,

" body=" + cuerpo,

"out_trade_no=" + out_trade_no,

"price=" + tarifa_total,

"show_url=" + show_url,

"pago_tipo=" + tipo_pago,

"seller_email=" + correo_vendedor,

"notify_url=" + notify_url,

" _input_charset =" + _input_charset,

"return_url=" + return_url,

"quantity=" + cantidad,

"logistics_ type="+logistics_type,

p>

"logistics_fee="+logistics_fee ,

"logistics_paid="+logistics_paid,

"logistics_type_1 ="+logistics_type_1,

"logistics_fee_1= "+logistics_fee_1,

"logistics_paid_1="+logistics_paid_1

};

// Ordenar

string[] Sortedstr = BubbleSort (Oristr);

/Construye la cadena de resumen md5 pendiente;

StringBuilder prestr = new StringBuilder(); i < Sortedstr .Length; i++)

{

if (i == Sortedstr.Length - 1)

{

prestr .Append( Sortedstr[i]);

}

else

{

prestr.Append(Sortedstr[i] + " &") ;

}

}

prestr.Append(clave);