


Explication détaillée du code de cas de développement de paiement iOS WeChat
Mar 27, 2017 pm 01:30 PMCet article présente principalement en détail le cas de développement du paiement iOS WeChat, qui a une certaine valeur de référence. Les amis intéressés peuvent s'y référer
Le paiement WeChat présente de nombreux pièges et les documents officiels sont fournis. Il n'est pas exhaustif. du tout, et la démo est également "timide" et difficile à comprendre. De nombreux détails auxquels on avait prêté attention n’ont pas été reflétés et de nombreux détours ont été effectués. Par conséquent, le processus de développement du système est le suivant. (La démo complète est jointe à la fin du blog) Cela inclut le traitement de compatibilité du développement des paiements WeChat et du client d'appel de développement Alipay. (Les deux signatures sont placées c?té mobile. Le blog ne mentionne pas la situation de non-installation du client WeChat. Il est également très simple d'en juger par la valeur de retour de 0 lors de l'appel de cette méthode [WXApi sendReq:request].)
1. Configuration de l'environnement
1. Le premier est l'accès au protocole https, définissez la liste blanche dans plist
2. Lorsque vous avez Pour le partage, la collecte, le paiement, la connexion, etc. WeChat, vous devez ajouter le code suivant (LSApplicationQueriesSchemes) dans "Info.plist"
3 . Résolvez le problème de la compilation du bitcode
4. Définir les types d'URL
5. de la démo officielle de WeChat)
6. Importer les bibliothèques de dépendances du système
7. ??>
Le paiement WeChat est divisé en Unité, c'est-à-dire que si le montant de votre paiement est maintenu à deux décimales, le montant du paiement doit être de *100 avant d'être envoyé à la plateforme de paiement WeChat, et ainsi de suite pour les autres . 2. Développement de code1. Opérations requises à l'entrée du programme (c'est-à-dire applegate.m)Cette fonction de rappel doit être écrite en délégué.m !!!
4. Code pour un contr?leur de vue spécifique (contr?leur de vue avec fonction de paiement WeChat)
4.1 Soumettre un ordre de prépaiement pour obtenir l'identifiant de précommande (ce processus doit être signé deux fois, c'est-à-dire sans paramètres ni signature). . Bien entendu, ces méthodes ont été encapsulées dans la classe payRequsestHandler. Il suffit de passer les paramètres pour appeler la méthode.) C'est aussi la méthode d'action pour cliquer sur le bouton de paiement
4.2 Après avoir re?u la commande prépayée, vous pouvez ajuster le c?té service client du paiement WeChat (les codes 4.2 et 4.1 sont consécutifs)
Deux packages indépendants avec signature de paramètre de signe La méthode n'est pas encapsulée par payRequsestHandler. Je l'ai écrite moi-même. Des problèmes sont survenus lors de son utilisation (la capture d'écran du problème est la suivante, prenez d'abord une capture d'écran du code, puis fournissez un bloc de code qui peut être directement copié et). collé.
Capture d'écran du problème?: (Je crois que beaucoup de gens ont rencontré ce problème. J'y suis allé, c'est à 100?% un problème de signe)
Première méthode. :
Méthode deux?:
4.3 Le code ci-dessus peut résoudre complètement le problème de paiement WeChat. La dernière étape est. à gauche. Le paiement est réussi et revient à l'application pour appeler la méthode -(void)onResp:(BaseResp*)resp du délégué. Nous devons donc ici envoyer une notification à un contr?leur de vue spécifique et le laisser demander l'état de la commande en arrière-plan. Ce que je veux expliquer ici, c'est qu'après avoir ajusté WeChat Pay depuis cette interface, vous serez toujours au même endroit à votre retour. C'est juste que la méthode de rappel doit être dans le délégué, donc une notification réussie doit être envoyée dans la méthode de rappel. Ensuite, vous devez écouter cette notification dans la méthode de la vue spécifique du contr?leur de vue qui est sur le point d'appara?tre, puis demander l'état de la commande en arrière-plan. Ce qu'il faut noter ici, c'est que la méthode dealloc doit être réécrite pour supprimer la notification.
3. Traitement de compatibilité des méthodes proxy des clients de rappel de paiement Alipay et WeChat
4. Démo
Copier et coller le code (signer la signature)
-(NSString?)createMD5SingForPay:(NSString?)appid_key?partnerid:(NSString)partnerid_key?prepayid:(NSString?)prepayid_key?package:(NSString?)package_key?noncestr:(NSString)noncestr_key?timestamp:(UInt32)timestamp_key? {? NSMutableDictionary?*signParams?=?[NSMutableDictionary?dictionary];? [signParams?setObject:appid_key?forKey:@”appid”];? [signParams?setObject:noncestr_key?forKey:@”noncestr”];? [signParams?setObject:package_key?forKey:@”package”];? [signParams?setObject:partnerid_key?forKey:@”partnerid”];? [signParams?setObject:prepayid_key?forKey:@”prepayid”];? [signParams?setObject:[NSString?stringWithFormat:@”%u”,(unsigned?int)timestamp_key]?forKey:@”timestamp”]; NSMutableString?*contentString?=[NSMutableString?string];? NSArray?*keys?=?[signParams?allKeys];? //按字母順序排序? NSArray?*sortedArray?=?[keys?sortedArrayUsingComparator:^NSComparisonResult(id?obj1,?id?obj2)?{ return?[obj1?compare:obj2?options:NSNumericSearch];? }];? //拼接字符串? for?(NSString?*categoryId?in?sortedArray)?{? if?(?![[signParams?objectForKey:categoryId]?isEqualToString:@”“]? &&?![[signParams?objectForKey:categoryId]?isEqualToString:@”sign”]? &&?![[signParams?objectForKey:categoryId]?isEqualToString:@”key”]? )? {? [contentString?appendFormat:@”%@=%@&”,?categoryId,?[signParams?objectForKey:categoryId]]; }? }? //添加商戶密鑰key字段? [contentString?appendFormat:@”key=%@”,?@”這里填寫商戶密鑰”];? NSString?*result?=?[self?md5:contentString];? return?result; }//創(chuàng)建發(fā)起支付時的sige簽名 -(NSString?)?md5:(NSString?)str? {? const?char?*cStr?=?[str?UTF8String];? unsigned?char?result[16]=?“0123456789abcdef”;? CC_MD5(cStr,?(CC_LONG)strlen(cStr),?result);? //這里的x是小寫則產生的md5也是小寫,x是大寫則md5是大寫,這里只能用大寫,微信的大小寫驗證很逗? return?[NSString?stringWithFormat:? @”%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X”,? result[0],?result[1],?result[2],?result[3],? result[4],?result[5],?result[6],?result[7],? result[8],?result[9],?result[10],?result[11],? result[12],?result[13],?result[14],?result[15]? ];? }//MD5?加密
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Merci aux internautes Ji Yinkesi, xxx_x, aux tomates frites, à Terrence et aux pilons de poulet épicés pour avoir soumis des indices ! Selon les informations du 27 juillet, Apple a réédité aujourd'hui la mise à jour iOS/iPadOS 18 Beta 4 pour les développeurs. Le numéro de version interne est passé de 22A5316j à 22A5316k. La différence entre les deux mises à jour de la version Beta 4 n'est actuellement pas claire. Les développeurs enregistrés peuvent ouvrir l'application ? Paramètres ?, accéder à la section ? Mise à jour du logiciel ?, cliquer sur l'option ? Mise à jour bêta ?, puis basculer les paramètres bêta du développeur iOS18/iPadOS18 pour sélectionner la version bêta. Le téléchargement et l'installation de la version bêta nécessitent un identifiant Apple associé à un compte développeur. Signalé le 24 juillet, iO

Mise à jour : Saunders Tech a mis en ligne un didacticiel sur sa cha?ne YouTube (vidéo intégrée ci-dessous) expliquant comment installer Fortnite et Epic Games Store sur un iPad en dehors de l'UE. Cependant, non seulement le processus nécessite des versions bêta spécifiques d'iO

Selon l'actualité du 31 juillet, Apple a publié hier (30 juillet) un communiqué de presse annon?ant le lancement d'un nouveau package Swift open source (swift-homomorphic-encryption) permettant le cryptage homomorphe dans le langage de programmation Swift. Remarque?: Le chiffrement homomorphe (HE) fait référence à un algorithme de chiffrement qui satisfait aux propriétés d'opération homomorphe du texte chiffré. Autrement dit, une fois les données chiffrées de manière homomorphe, des calculs spécifiques sont effectués sur le texte chiffré et les résultats de calcul du texte chiffré obtenus sont traités en même temps. Le texte en clair après le décryptage de l'état équivaut à effectuer directement le même calcul sur les données en texte en clair, obtenant ainsi ? l'invisibilité ? des données. La technologie de cryptage homomorphe peut calculer les données cryptées sans divulguer les données non cryptées sous-jacentes au processus opérationnel.

Merci aux internautes Mo 6_, Uh-huh-huh-huh, Cat-Eating Salted Fish, Yaochi Qinglian, Spicy Chicken Leg Burger, Siyan et Tim Apple pour avoir soumis des indices ! Selon les informations du 30 juillet, Apple a lancé aujourd'hui la mise à jour de la version bêta publique iOS18 et iPadOS18 pour les utilisateurs d'iPhone et d'iPad, deux semaines après la dernière version bêta publique. Le contenu de la mise à jour de cette version bêta publique est similaire à la version d'aper?u du développeur Beta4, avec de nouveaux fonds d'écran CarPlay, des options de réglage de peignage, un contr?le amélioré de la caméra, des ic?nes de mode sombre/clair, etc. Pour plus de détails, veuillez vous référer aux rapports détaillés précédents. ##Comment mettre à niveau la version de développement iOS/iPadOS/watchOS/macOS et la version bêta publique ? Mise à niveau iOS/iPadOS iOS/iPa

Selon Mark Gurman, un initié de l’industrie, l’Apple Intelligence d’Apple sera reportée à octobre. Autrement dit, il sera poussé en premier sur iOS18.1. L'Apple iPhone 16 devrait sortir en septembre, Apple Intelligence ne sera donc pas préinstallé. 1. Apple Intelligence Apple Intelligence est un système d'intelligence personnelle qui utilise un modèle génératif puissant pour fournir de nouvelles fonctions pour iPhone, iPad et Mac afin d'aider les utilisateurs à communiquer, travailler et s'exprimer. 2. Compréhension du langage naturel Le grand modèle intégré à Apple Intelligence possède une compréhension approfondie de la signification du langage.

H5 est plus flexible et personnalisable, mais nécessite une technologie qualifiée; Les mini-programmes sont rapides à démarrer et faciles à entretenir, mais sont limités par le cadre WeChat.

Merci à l'internaute Ji Yinkesi d'avoir soumis l'indice?! Selon les informations du 30 juillet, Apple a publié aujourd'hui la première version bêta pour développeur d'iOS/iPadOS 18.1 et la deuxième version bêta publique d'iOS/iPadOS 18. Elle a également publié des mises à jour iOS 16.7.9 et iOS 15.8.3 pour les anciens iPhones. Apple a écrit dans les journaux de mise à jour des deux versions : ? Cette mise à jour fournit des correctifs de sécurité importants et il est recommandé à tous les utilisateurs de l'installer ?, mais n'a pas mentionné ce qui a été corrigé. iOS16.7.9 Remarque?: iOS16.7.9 convient aux Apple iPhoneX, iPhone8 et iPhone8Plus. Selon les détails du document divulgués par Apple, les trois modèles ci-dessus devraient être pris en charge.

T?t ce matin, Apple a proposé aux développeurs les premières versions bêta pour développeurs d'iOS 18.1, iPadOS 18.1 et macOS Sequoia 15.1. Dans le même temps, Apple a également publié les versions officielles d'iOS17.6, iPadOS17.6, visionOS1.3, macOS14.6, tvOS17.6 et watchOS10.6. iOS18.1Beta1 a finalement lancé la fonction d'enregistrement des appels, et la fonction Apple Intelligence a également été lancée dans les régions en dehors de la Chine et de l'UE. Le numéro de version d'iOS18.1Beta1 est 22B5007p et la mise à niveau OTA est d'environ 637 Mo (la taille du package de mise à jour varie légèrement selon les modèles) |
