Interface de paiement des applications réseau
Description du processus de paiement
Processus de consommation :
1) L'utilisateur initie le paiement dans l'application, et l'application appelle l'interface de paiement du SDK payFromServer
2) Après le SDK et Ali Le serveur confirme le paiement, affiche la page de paiement à l'utilisateur
3) Une fois que l'utilisateur a confirmé le paiement, le SDK lance et termine le paiement au serveur Ali
4) Le serveur Ali renvoie le résultat du paiement au SDK et informe le serveur d'applications
5) Le serveur d'applications décide s'il doit émettre des accessoires aux utilisateurs de l'application via les informations de commande de rappel
Interface de paiement de l'application Web
Description de l'interface :
Serveur d'application Transmettez les paramètres de paiement à l'application et l'application appelle l'interface de paiement payFromServer pour terminer le paiementLe serveur Alibaba informe le SDK et le serveur d'application des résultats du paiement, et le serveur d'application décide si les accessoires sont émis
Conditions préalables : Aucune
Prototype de fonction :
public static void payFromServer (titre de la chaîne, montant de la chaîne, ID de commande de chaîne, URL de notification de chaîne, ID de sujet de chaîne, IPayListener payListener)Description du paramètre :
titre : le nom de l'élément de paiement, tel que "Gem"
montant : "points" RMB (par exemple, montant = 100, représente 1 yuan)
identifiant du produit subjectId (utilisé pour marquer les produits participants dans les activités d'incitation, personnalisées par CP) facultatif
orderId : numéro de commande, généré par le serveur du CP
notifyUrl : Une fois le paiement effectué, le serveur Alibaba rappelle l'adresse de rappel du serveur CP
payListener : La fonction de rappel notifie le Client de l'application de succès ou d'échec une fois le paiement effectué.Demande d'échantillon :
Stringamount = “2”; String title ="支付人民币0.02元"; finalString orderId = System.currentTimeMillis() +""; // App服务端提供回调接口,用于接收支付成功的消息 String notifyUrl ="http://xxxx.com/callback/notify"; AliTvSdk.payFromServer(title, amount,orderId, notifyUrl,subjectId, newIPayListener() { @Override publicvoidonSuccess(String title,intamount) { TestToast.show("二维码扫码支付成功"); } @Override publicvoidonError(String title,intamount, String errMsg) { TestToast.show("二维码扫码支付失败,原因:"+ errMsg); } @Override publicvoidonCancel(String title,intamount) { TestToast.show("二维码扫码支付取消"); } });
Notification de rappel après paiement réussi côté serveur
Description de l'interface :
Les applications tierces doivent développer un service HTTP et fournir l'adresse de l'interface du serveur, telle que : http://Third -party application server Adresse/Informations de commande chaîne cryptée (format : notify_url?data=encryptString) Le serveur de divertissement numérique envoie une requête http au serveur APP pour les informations ci-dessus. Si les informations renvoyées sont « succès », l'envoi est réussi. Si les informations renvoyées sont autres, incrémentez l'intervalle de temps pour renvoyer.
Structure des données décryptées :
Nom de la clé(clé) | valeur (valeur) | ||
partner_order_no Numéro de commande du commerçant | WAIT_BUYER_PAYEn attente du paiement de l'acheteur | ||
| TRADE_SUCCESS Paiement réussi|||
buyer_logon_id | |||
Nom du paramètre | Description du paramètre | Est-ce obligatoire ? | Détails |
order_no | le numéro de commande du marchand | est | le numéro de commande du marchand |
Retour à la description des infrastructures :
Champ | Description |
code | succès : succès |
message | message rapide ou erreur message |
data.data | Renvoyer les paramètres commerciaux (nécessite la méthode RSA pour utiliser la clé privée pour déchiffrer, obtenir la chaîne JSON et analyser les paramètres de données structurées) |
Renvoyer un exemple de structure de base :
{ "tvpay_partner_order_query_response": { "result": { "code": "success", "data": { "data": "PG5Qgxp5C+Muqohd7s01IE9SK/VnYVSxsY7nPqHFR8d+tjx3qLBeTu8llVi0+yaQHdMl/ZMTXxhchl9FiruOkX+GL5aN4S+/C68Tq5Os5dT4iilwNaDT6gw2pBtMUR9maVfXukcvFMLSx7d9XsjebWpapqTMgjOkMQjOHUA0GtcdgfFPE4sFxwB0+8SdbOYF1qoEkBoU8o0brd6/tFTJkqn/uJUbHOoqqLXCB3LmxShRa4m8KRsVPfSavOEjcSO7yfNTu7cLhGoOCRL5ffwLWVxyPRpaLfm0O8CJi9Cllb5nndWzh1zoXUtyBdfw9iHzbE0C7WArO5+YLKVCzA5c4A==" }, "message": "success", "success": true }, "request_id": "118g71ywn59zf" } }
dataStructure de données décryptée :
Nom de la clé (clé) | Valeur (valeur) | order_status
statut de la commande | WAIT_BUYER_PAY En attente du paiement de l'acheteur |
TRADE_SUCCESS Paiement réussi | |
prix | |