自分のAndroidアプリでアリペイページを起動
2176 ワード
ここ数日、現在のアプリケーションではモバイル決済としてアリペイインタフェースを呼び出す必要があるため、アリペイインタフェースの呼び出しが検討されています.
何日か困ったことがあったのは、私たちの携帯電話側が支付宝アプリをインストールしていないとき、自分のアプリケーションで支付宝の登録ページを呼び出して支払う必要があるということです.私はAndroid開発です.ネット上では多くのパートナーがウェブ支付宝の登録ページを調整できない問題に直面しています.ここでは、同じ問題に直面しているパートナーを助けるための解決策を共有します.
ネット上にもたくさん貼られていて、H 5 PayActivityとAuthActivityの配置を入れて解決すると言っていますが、役に立たないです.私のは、ジャンプの動作がありますが、白い板のページに直接挨拶して、それからではありません.
支付宝技術文書には、支付宝を呼び出すコードを1つのスレッドに単独で呼び出す必要があると書かれています.以下のようにします.
これで調整できます.大きな問題はないはずです.私はまだプラグインで書いたので、外層のネストがあって、大丈夫です.
何日か困ったことがあったのは、私たちの携帯電話側が支付宝アプリをインストールしていないとき、自分のアプリケーションで支付宝の登録ページを呼び出して支払う必要があるということです.私は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;
これで調整できます.大きな問題はないはずです.私はまだプラグインで書いたので、外層のネストがあって、大丈夫です.