La aplicación iOS accede al proceso de pago de WeChat
Después de que un comerciante solicita desarrollar una aplicación APP en la plataforma abierta WeChat, la plataforma abierta WeChat generará el identificador único de la aplicación, APPID. Abra el proyecto en Xcode y configure los esquemas de URL en las propiedades del proyecto en su APPID. Como se muestra en la imagen.
2. Importar SDK de pago de WeChat
Copie la carpeta en la demostración oficial al proyecto
Establezca el APPID en APPdelegate
Importar bibliotecas dependientes
Haga clic en el botón de pago en el proyecto y escriba el siguiente método
¿No olvide importar el archivo de encabezado, seguir al agente y registrarlo?
info.Agregue el siguiente campo LSApplicationQueriesSchemes al plist, que es de tipo Array, y luego agregue dos pequeñas opciones, a saber, weixin y wechat
¡Atención! ! ! ¿Los siguientes tres lugares deben corresponder? ¿Uno menos es esencial?
Si no hay devolución de llamada, escribe esto en el APPdelegate
//Los métodos abandonados son los siguientes
- (BOOL)aplicación:(UIApplication*)aplicación handleOpenURL:(NSURL*)url {
retorno? [WXApi handleOpenURL:url delegado:[WXApiManager shareManager]];
}
- (BOOL)aplicación:(UIApplication*)aplicación openURL:(NSURL*)url sourceApplication:(NSString*)sourceApplication anotación:(id)annotation {
return [WXApi handleOpenURL: url delegado:[WXApiManager shareManager]];
}
//Nuevo método de reemplazo
- (BOOL)aplicación:(UIApplication*)app openURL : (NSURL*)opciones de URL:(NSDictionary*)opciones {
return [WXApi handleOpenURL:url delegado:[WXApiManager shareManager]];
}
//Iniciar WeChat Pay
PayReq* req? = [[PayReq alloc] init];
req.partnerId = @"1220277201";
req. prepayId? = @"9201039000160315ab9324b87b451223";
req.nonceStr? = @"83DB7tk21akNRSFs";
req.timeStamp = 1458027344;
req.package? @"Sign=WXPay";
req.sign ? = @"db6919dbd8ccb3f8a25108bebcd87f7a02c52e39";
[WXApi sendReq:req];
// Obtener el actual hora
time_t ahora;
hora(&now);
// marca de tiempo
//NSString *timestamp = [NSString stringWithFormat: @"%ld", ahora];
// Cadena aleatoria
//NSString *nonceStr = [[self md5:timestamp] lowercaseString];
//Id. del pedido
NSString *prepayid = _prepayid;
PayReq * request = [[PayReq alloc] init];
/** El ID del comerciante aplicado por el comerciante a Tenpay */
request.partnerId = WXPartnerid;
/** Orden de prepago*/
request.prepayId= prepayid;
/** Datos y firma completados por el comerciante en base al documento Tenpay*/
request.package = @"Sign=WXPay";
/** Cadena aleatoria, anti-retransmisión*/
request.nonceStr= _noncestr;
/** Marca de tiempo, anti-retransmisión*/
request.timeStamp = [_timestamp intValue];
/** El comerciante firma los datos de acuerdo con el documento de la plataforma abierta WeChat * /
request.sign= _sign;
/*! @brief Envía una solicitud a WeChat y espera a que WeChat regrese onResp
*
* Después de llamar a la función, cambiará a la interfaz WeChat. La aplicación de terceros espera a que WeChat regrese onResp. WeChat definitivamente llamará a onResp una vez que se complete el procesamiento asincrónico. Admite los siguientes tipos
* SendAuthReq, SendMessageToWXReq, PayReq, etc.
* @param req Solicitud de envío específica, libérela usted mismo después de llamar a la función.
* @return Devuelve SÍ en caso de éxito, NO en caso de error.
*/
[WXApi sendReq: solicitud];