自分のAndroidアプリでアリペイページを起動


ここ数日、現在のアプリケーションではモバイル決済としてアリペイインタフェースを呼び出す必要があるため、アリペイインタフェースの呼び出しが検討されています.
何日か困ったことがあったのは、私たちの携帯電話側が支付宝アプリをインストールしていないとき、自分のアプリケーションで支付宝の登録ページを呼び出して支払う必要があるということです.私はAndroid開発です.ネット上では多くのパートナーがウェブ支付宝の登録ページを調整できない問題に直面しています.ここでは、同じ問題に直面しているパートナーを助けるための解決策を共有します.
ネット上にもたくさん貼られていて、H 5 PayActivityとAuthActivityの配置を入れて解決すると言っていますが、役に立たないです.私のは、ジャンプの動作がありますが、白い板のページに直接挨拶して、それからではありません.
支付宝技術文書には、支付宝を呼び出すコードを1つのスレッドに単独で呼び出す必要があると書かれています.以下のようにします.
final String payInfo=args.getString(0);
Runnable payRunnable = new Runnable() {
@Override
public void run() {
PayTask alipay = new PayTask(activity);
String result = null;
//       ,      
result = alipay.pay(payInfo, true);
Message msg = new Message();
msg.what = SDK_PAY_FLAG;
msg.obj = result;
new Handler() {
@SuppressWarnings("unused")
public void handleMessage(Message msg) {
switch (msg.what) {
case SDK_PAY_FLAG: {
PayResult payResult = new PayResult((String) msg.obj);
/**
*                    (       https://doc.open.alipay.com/doc2/
* detail.htm?spm=0.0.0.0.xdvAU6&treeId=59&articleId=103665&
* docType=1)           
*/
String resultInfo = payResult.getResult();//            


String resultStatus = payResult.getResultStatus();
//   resultStatus  “9000”       ,                
if (TextUtils.equals(resultStatus, "9000")) {
Toast.makeText(activity, "    ", Toast.LENGTH_SHORT).show();
PluginResult pluginResult=new PluginResult(PluginResult.Status.OK,"    ");
pluginResult.setKeepCallback(true);
callbackContext.sendPluginResult(pluginResult);
} else {
//   resultStatus   "9000"         
// "8000"                              ,                  (     )
if (TextUtils.equals(resultStatus, "8000")) {
Toast.makeText(activity, "       ", Toast.LENGTH_SHORT).show();


} else {
//              ,          ,         
Toast.makeText(activity, "    ", Toast.LENGTH_SHORT).show();


}
}
break;
}
default:
break;
}
};
}.sendMessage(msg);
}
};
//       
Thread payThread = new Thread(payRunnable);
payThread.start();
            return true;

これで調整できます.大きな問題はないはずです.私はまだプラグインで書いたので、外層のネストがあって、大丈夫です.