Android浅談微信支払い+支付宝支払い

2594 ワード

担当するプロジェクトでは、微信の支払いと支付宝の支払いを終えたばかりで、いくつかの穴を越えて、少し収穫があったので、記録しておきます.
サードパーティを統合するのは、開発ドキュメントを見て、手順に従って一歩一歩進みます.バックグラウンドに二次署名をしたり、前払書の各種値を生成したりする必要があります.
      1.微信支払い:
微信の開発文書はまあまあ、app支払い、ホームページ支払いなどです.5.0以上のシステムが稼働しているので、以下はだめです.ロゴを打つのはガイドパッケージが重複しているのを見て、最初からandroid studioかどうかの問題に悩んでいました(何といっても不思議な問題が少なくありません)、jarパッケージを整理しても重複しているのを発見していません.困っています.その後、友盟のjarパッケージには微信の支払いが含まれているという話を見た.すぐに微信のjarを削除して、もう一度cleanして、コンパイルに成功しました.の
      2.アリペイ支払い:
正直に言うと支付宝の文書を見ると雲の中の霧の中のような感じがして、欲しいものが見つからず、見たくない大きな列があります.私がやったのはホームページがappを回転して支払って、webviewのurlを傍受して、ドキュメントの中で言うのは使います
public boolean shouldOverrideUrlLoading(final WebView view, String url) {
    final PayTask task = new PayTask(H5PayDemoActivity.this);
    //      
    final String ex = task.fetchOrderInfoFromH5PayUrl(url); 
    if (!TextUtils.isEmpty(ex)) {
        //          
        new Thread(new Runnable() {
            public void run() {
                H5PayResultModel result = task.h5Pay(ex, true);
                //      
                if (!TextUtils.isEmpty(result.getReturnUrl())) {
                    view.loadUrl(result.getReturnUrl());
                }
            }
        }).start();
    } else {
        view.loadUrl(url);
    }
    return true;
}
しかし
    final String ex = task.fetchOrderInfoFromH5PayUrl(url); 
アリの支払いリンク(alipayまたはalipaysで始まる)を傍受していますが、この戻り値が空であれば使用することをお勧めします.
public boolean shouldOverrideUrlLoading(final WebView view, String url) {
   //      , H5PayDemoActivity     
   final Activity context = H5PayDemoActivity.this;
  
   // ------   alipays:   scheme   -------
   if(url.startsWith("alipays:") || url.startsWith("alipay")) {
    try {
     context.startActivity(new Intent("android.intent.action.VIEW", Uri.parse(url)));
    } catch (Exception e) {
     new AlertDialog.Builder(context)
     .setMessage("          ,      。")
     .setPositiveButton("    ", new DialogInterface.OnClickListener() {
  
      @Override
      public void onClick(DialogInterface dialog, int which) {
       Uri alipayUrl = Uri.parse("https://d.alipay.com");
       context.startActivity(new Intent("android.intent.action.VIEW", alipayUrl));
      }
     }).setNegativeButton("  ", null).show();
    }
    return true;
   }
   // -------      -------
  
   if (!(url.startsWith("http") || url.startsWith("https"))) {
    return true;
   }
  
   view.loadUrl(url);
   return true;
  }
これはアリのapiドキュメントの中のので、使ってもローカルの支付宝を開けることができて、リンクはここにあります