Red de conocimiento informático - Aprendizaje de código fuente - Conéctese al SDK de pagos de Alipay

Conéctese al SDK de pagos de Alipay

Acceso al SDK de pago de Alipay

Se puede decir que el acceso de pago de Alipay es el mejor acceso entre todos los SDK, sin excepción.

El cliente no necesita firmar, no necesita preocuparse por el nombre del paquete y no necesita preocuparse por el archivo de firma. La interfaz devuelve el pedido y llama al SDK de Alipay. o el error se le devuelve en la interfaz actual. Luego ingresas a la interfaz de notificación.

Diagrama de flujo de pagos

Dirección del documento oficial

! Dirección del documento oficial de pago de Alipay

Según la descripción del documento, acceda al SDK y las configuraciones relacionadas y no entrará en detalles aquí

Código de clave de pago del cliente==="Llamada a la interfaz de pago ( llamar ventana emergente de pago)

Recuerde que la llamada a la interfaz de pago debe ejecutarse en un hilo separado que no sea UI, es decir, se debe abrir un nuevo hilo dentro de la llamada. Puede usar el nuevo hilo. método como la demostración oficial.

A continuación doy el código de muestra en forma de Observable

En PayUtils

/**

*desc:Alipay Payment

* Creado por conge el 27/8/2018 17:20

* Interfaz @param orderInfo devuelta por el pedido

**/

public static void aliPay(actividad de Actividad final, OrderInfo de cadena final, OrderListener final orderListener ) {

Observable.just(orderInfo)

.map(new Function () {

@Override

public String apply(String orderInfo) throws Exception {

// Si el usuario hace clic para pagar en la aplicación comercial, ¿es necesario cargarlo como ¿Una transición antes de llamar a la billetera? Establezca este valor en verdadero

return new PayTask(activity).pay(orderInfo, true);

}

})

.subscribeOn(Schedulers.io())

.observeOn(AndroidSchedulers.mainThread())

.subscribe(new Consumer () {

@Override

public void aceptar(String payResult) lanza una excepción {

orderListener.onPayResult(payResult);

}

}

.);

}

Procesamiento de devolución de resultados de pago

Ejemplo de devolución:

resultStatus ={9000};memo ={};result={"alipay_trade_app_pay_response":{"code":"10000"," msg":"success", "app_id":"2016091300503896", "auth_app_id":"2016091300503896", "charset":"utf -8", "timestamp":"2018-08-28 17:51:11","" out_trade_no":"nVElbd74TW6WnEyxQwvX8A", "total_amount":"0.01", "trade_no":"2018082821001004680500208879 ", "seller_id": " 2088102175487650"}, "signo": "W0Hg9k4GxL8Oaxymvqk2i65WNDQxYp6HGve32ek6VjSRnymmI3GQTjpQVbZuDzvjcwQ/HIkM97PoBGAVlTmi/wiJcqDgSSDzDY7AFnN0Oc K0ehWGwK QINA4IDGh51A7yY/vYKmR0VW+2OwGhlRPPMMZtQOEqh8a9/aIijzT6ZLwy9Hl4ayG/fVKhdC1VdckF6+.

C25BFNp3fIxarg5tfEunm7N9iWngKCUsnP+IZz05OHdvynimgYPcBnbBERHG97GVqRT/ EdBWTQyIDMc0LemScAYxJixTVgXDkRddQjzWZ7HgLdBfjs0nXY24puHudT76ERxVY+8NkoKle/QI+FAsign==", " _type":"RSA2"}}

También puede escribir su propio registro para ver el procesamiento.

Código de muestra:

//Pago de Paypal

PayUtils.aliPay(this, result.getSignDataStr(), new PayUtils.OrderListener() {

@Override

public void onPayResult(String payResult) {

PayResult pr = new PayResult(payResult);

String rs = pr.getResultStatus() {

PayResult pr = new PayResult(payResult);

}

@Override

public String toString() {

return "resultStatus={" + resultStatus + "};memo={" + memo

+ "};result={ " + resultado + "}";

}

cadena privada gatValue(contenido de cadena, clave de cadena) {

prefijo de cadena = clave + "= {";

return content.substring(content.indexOf(prefijo) + prefix.length(),

content.lastIndexOf("}"));

}

public String outOrder() {

Orden de cadena = ""out_trade_no"";

if (result.contains(orden)) {

Cadena comenzar = resultado.substring(result.indexOf(orden));

Cadena ss = comenzar.split(",")[0];

Cadena newS = ss.replace("", "")

. reemplazar("}", "")

.replace(:", "")

.replace(" out_trade_no", "");

intente {

return newS;

} catch (Exception e) {

e.printStackTrace();

}

}

}

devolver " ";

}

/**

* @return the resultStatus

*/

public String getResultStatus() {

return resultStatus;

}