Interface de paiement de renouvellement d'application web
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) SDK paie avec le serveur Ali Après confirmation, la page de paiement est affichée à l'utilisateur
3) Après que l'utilisateur confirme le paiement, le SDK lance et termine le paiement au serveur Ali
4) Le serveur Ali renvoie le résultats du paiement au SDK et informe le serveur d'application
5) Le serveur d'application décide s'il doit émettre des accessoires aux utilisateurs de l'application via les informations de commande de rappel
Premier paiement pour le renouvellement de l'application en ligne
Description de l'interface :
public static void repayFromServer, pour implémenter la fonction de renouvellement automatique. Si l'application doit accéder à l'interface de paiement de renouvellement, elle doit contacter Alibaba Operations pour configurer. et activez-le. Le premier renouvellement sera effectué en temps réel via le client, et les renouvellements ultérieurs seront mis en œuvre via le serveur de l'application appelant le serveur de Digital Entertainment. Veuillez faire attention aux règles de l'interface de renouvellement. Les appels qui ne respectent pas les règles ne pourront pas obtenir le premier paiement ni les paiements suivants.
Conditions préalables : Aucun
Prototype de fonction :
public static void repayFromServer (String subject, String orderId, String interval, List<String> priceList, String description, final String title, final String notifyUrl , final String subjectId, final IPayListener payListener)
Description du paramètre :
sujet : Pack de produits de renouvellement , comme "abonnement mensuel cinéma et télévision"
orderId : numéro de commande, généré par le serveur CP
intervalle : mode de renouvellement automatique (mois : mensuel, saison : trimestriel), ne prend en charge que deux Mode fixe ; qu'il soit mensuel ou trimestriel, il ne prend en charge le renouvellement que dans un délai d'un an. Autrement dit, lors d'un renouvellement mensuel, le serveur d'applications suivant peut lancer jusqu'à 11 demandes de renouvellement, et lors d'un renouvellement trimestriel, il peut lancer jusqu'à 3 renouvellements ultérieurs. demandes.
priceList : liste de prix, incluant cette consommation et le montant de la consommation pour chaque renouvellement ultérieur
description (facultatif) : L'heure de fin des droits commerciaux, sinon, elle sera vide
title : Le produit cible du paiement, tel que "xx Film and Television"
notifyUrl : Une fois le paiement effectué, Ali L'adresse de rappel que le serveur rappelle au serveur CP
subjectId
(facultatif) ID de produit S'il est vide, vous ne pourrez pas. pour participer à des activités d’incitation à la consommation. Il est recommandé que cela soit exigé.
payListener: fonction de rappel pour notifier le succès ou l'échec une fois le paiement effectué.
Demande d'échantillon
:
AliTvSdk.pay("XX商品", "12345678", "month", Arrays.asList(arr), "权益描述", "支付物品名称", "http://setbycp2", null, new IPayListener(){ @Override public void onSuccess(String title, int amount) { TestToast.show("支付成功"); } @Override public void onError(String title, int amount, String errMsg) { TestToast.show("支付失败, 原因:" + errMsg); } @Override public void onError(String errCode, String errMsg) { TestToast.show(" 支付失败。" + errCode + ":" + errMsg); } @Override public void onCancel(String title, int amount) { TestToast.show("支付取消"); } });
Renouvellement de l'application Web Paiement ultérieur
Description de l'interface
:
Après avoir créé avec succès une séquence de renouvellement à l'aide du client, le commerçant peut envoyer une demande de renouvellement au backend de paiement via le serveur.
🎜Méthode d'accès : TOP🎜🎜🎜TOPVoir
//open.taobao.com/doc2/detail.htm?spm=a219a.7629140.0.0.jlQptD&treeId=49&articleId=101617&docType=1
TOP Assistant Voir l'annexe pour la classe d'outils (Java).
API :
taobao.tvpay.partner.renewal.pay
Structure des paramètres de demande
Nom du paramètre | Description du paramètre | Est-ce obligatoire ? | Détails |
partner_notify_url | adresse de rappel | est | |
partner_order_no | Le numéro de commande marchand de cette commande | est |
|
prix | Le prix en RMB | doit être le même que lors de la création initiale de la séquence, sinon une erreur sera signalée. | ref_order_no |
Le numéro de commande du commerçant de première commande en série | est | de sdk Lors de la création d'une séquence, le numéro de commande marchand correspondant à la commande. | |
Seq | Numéro de série de renouvellement. | est | SDKLa première séquence payée compte pour 0, la première séquence renouvelée depuis l'arrière-plan vaut 1, et ainsi de suite. |
Sujet | Titre du produit | est | |
subject_id | l'identifiant du produit | est |
Retour à la description de la structure de base :
De inscription | Code | |
succès | 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 l'analyser en paramètres data structurés) |
Exemple d'infrastructure de retour :
{ "tvpay_partner_renewal_pay_response":{ "result":{ "code":"success", "data":{ "order_status":"TRADE_SUCCESS" }, "message":"success", "success":true } } }
Si la demande est réussie (le succès est vrai), reportez-vous au champ order_status pour vérifier l'état de la commande
WAIT_BUYER_PAY En attente du paiement de l'acheteur
TRADE_SUCCESS Paiement réussi
TRADE_CLOSED Transaction clôturée
Si la demande échoue, veuillez vous référer au champ du code d'erreur pour analyser la cause de l'erreur.
TERM_COUNT_EXCEED_LIMIT, trop de périodes de compte
RENEWAL_PRICE_ERROR, échec de la vérification du montant
RENEWAL_PRICE_EXCEED_LIMIT Frais de renouvellement total Ex dépasser la limite
RENEWAL_ORDER_NOT_ALLOWED L'application ne prend pas en charge le renouvellement pour pour le moment
RENEWAL_ORDER_INFO_ERROR Informations de commande incorrectes
RENEWAL_THREAD_NOT_FOUND Séquence de renouvellement introuvable
RENEWAL_THREAD_STATUS_ERROR Exception dans l'état de la séquence de renouvellement
RENEWAL_ORDER_PAY_FAIL Échec du paiement de la commande de renouvellement
RENEWAL_TIME_ERROR L'heure de renouvellement n'est pas arrivée pourtant
RENEWAL_THREAD_SEQ_ERROR La période de renouvellement du compte est erronée
--- ------------------------------------------------ ------- -------------------------------
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://Serveur d'applications tiers adresse/numéro XXX Le serveur de divertissement utilise la clé publique (public_key) fournie par le commerçant pour crypter les paramètres afin de générer une chaîne cryptée encryptString (déchiffrée au format json) et ajoute la chaîne cryptée des informations de commande réussie à l'URL fournie par l'application. demande (le paramètre est : notify_url) (Le format est : notify_url?data=encryptString) Le serveur de divertissement numérique envoie les informations ci-dessus au serveur APP Si les informations renvoyées sont "succès", l'envoi est réussi. est autre, l'intervalle de temps est augmenté et la demande est renvoyée.
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 message d'erreur |
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) |
partner_order_no | numéro de commande du commerçant |
alipay_trade_no | Numéro de série de la transaction Alipay |
order_status | Statut de la commande |
WAIT_BUYER_PAY En attente du paiement de l'acheteur | |
TRADE_SUCCESS Paiement réussi | |
TRADE_CLOSED Transaction clôturée | |
prix | Prix de la commande, en RMB En unités |
sujet | titre du produit |
subject_id | identifiant du produit |
buyer_logon _ identifiant | Compte Payeur Alipay |