記事ディレクトリ
CSDNのリモート侵入: Java Alipayサンドボックス環境決済、SDKインターフェースリモートデバッグ【イントラネット侵入】の記事より転載
1. テスト環境
- メイヴン
- スプリングブーツ
- JDK1.8
2. ローカル構成
Alipay 決済の Java SDK を入手、maven プロジェクトは maven バージョンを選択可能、通常の Java プロジェクトは GitHub からダウンロード可能、maven の例はこちら
SDK ダウンロード リンク: https://doc.open.alipay.com/docs/doc.htm?treeId=193&articleId=103419&docType=1
最新の SDK バージョンを選択してください
Maven 座標をコピーして、Spring Boot プロジェクトの pom ファイルにインポートします。
開発ドキュメントを開く: https://opendocs.alipay.com/open/028r8t?scene=22
これは、コンピューターのウェブサイトの支払い統一注文と支払いページ インターフェイスの個別のテストです。
デモンストレーションの便宜上、インターフェイスを作成し、get リクエストを作成し、注文情報をコードに記述します。
//支付宝支付接口
@Controller
@RequestMapping("/pay")
public class AlipayTest {
private String serverUrl="https://openapi.alipaydev.com/gateway.do";
private String appId="2021000122601685";
private String privateKey="MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCCk5evhVhZL3kaWEN4ACD+xHoTfn0RqR7aoh2esSTHeca8bV77z4KYUYXH/76uG1ufeYX8CsI68fMTTIxTcvA1F/vctjCkyAS3fjo+DTPpQ5tZpXvJjbNhwXJwrNov/44Dsy727N+b6CAmz5C6vkNipTdekUlHO+6EJmNgMo+ZgYuoEvinP/1JLST6IpcYj/QjGtG8cYStDlx6C3P2Xk7Jv//rOsMbem6bO5v7zZU4E29lVn5mZucxyPqDfRgyz2H++EaNxDRRh6cdVxwntEImpn9Tap+Jv1tTEddI7pOnXqsOwy5lOEJ6r36g48OyXWOLum2x9bxZUs/6tg96VAgMBAAECggEAN7StlqTltHuJNQ2hBe9eQSjKRJmI3y8gQc5C6ZLLNSHXzselaEQHNd6mMjarPhg6zUV8wPH/wuvbsFOcF9tmMkFmxBiyjnGwV1pjYVmafMkpwh7jWkLk9UBLPTEbKN2+wqbuq08Pjc7et2cywRXjn8SrhQ6F47dZBspgkTDQ+PTpQ4unHjUeQVz55K2VitReDZuTNWPCj2DT7UHDaItFTVtG0oNd1mVtcmeS+4Na7WS/3dusUef2v8fpTuTYcNNcoDxYLunL90u3H5AQCnKIkk+hu6qWyuU6eJLj8QgOf82JqZcueFQxFI/8Ahlv/Y3yfdDm5RfrpsgQKBgQDXT9v9inqZPYgQqTOfZwgtU9WLcuO3e8RaKZ8NUl67Y+M4iKoYoms9ZdBFDPdj5BAygncZpTv4wrJ5Fj1gVeuBMWwmf34WkopQwXt+GbmNHPVFe12XzjkyJBGE3dOG3k0hAadWIw4O2Ipx0IqQFzQdiNCU1cSCQKBgQCbQH1260iD0PF/tNvYyq/YDe+I9+NrPgSe6f0gTOSFFo/Ni04T23vxCSdSt8mDlCULx71hxkr7uNYReUCI/ujXijlgyI/MOmd1AsDEfYceBXkEsOVjC4Zf4zYyvqqTArDdS6Hsn+Y3rwwEBa+hhTLvraCHZddbjbY7rlJttQKBgQCT2OiM/ywUUeY+2pJ5aO4FEnAg7hdKwSbKY3v+ynB8kugBq750tcUoGTQVohPaY/y8j1uIfN/pj/bCOTAP/mtrdodEd8ceN+dxXheZ8YcQgwQk7E+tvm4rMH1WGzJ/2KyiTu8AgF/Cd4791L3/NyNdwSLil9vrlwQKBgQCNBsvxllDMzKRTKWr7R0Lss9v/Q45mAHQaFttE2BRNgO0n/X7zMtEnZvU9go2e5JeyV8KEaqf6eTCbtnNnN0VXFwOo+zl7kP5fz5UMz1izUQgxdKD7sI208MmtZAvznhe47V1TDqYxq0KvNi4y64FAgwEuuMqiqFdSP6g4ecQKBgCF4KzJxe0n+intzTGKgt4a8sBDeyjUIPjU3/ujGXbYWzgmHUFtHOIgTMCs8kmkJlI+xgjqnCUNicIr0hfkjtRGTw6Tw0MqDFX1/EfDJp2spv2rQDMZyKCJZwZ2QyZNz2yYdm1ukzxbJI/conKUSsujdhKEZZhchv2MWl2moscwn";
private String alipayPublicKey="MIIBIjANBgkqhkiG9QEFAAOCAQ8AMIIBCgKCAQEAhsM/TnpIff7e39eqsCLQwI8fBQ+5lYcFjOrSw7p0ZsMETXXAS677MZTKw5JyHVTieg79708qvaYWZ58jYuViTqpBCnot+cEOnEZcfP3TxeKReAH379bHUVQOz7h3uH0eDcFmi3GjwPBB9lmcJdTI6qD/XObiWJID1e+XYzVgNKC+DXfJ2YN8NEuyRH5Zr862s3C6xd8BAYU1VW9ZfyAssQxILCOwQZ0qDOOq48GAhzDWwPG8oteJX7+lcH1TrnG01SmPiZqkHX6uUW2ye+fZkbW9qjtyujNnADIWNb/D1R2qgAcHsuOVV4hniRQIDAQAB";
//创建订单接口
@ResponseBody
@GetMapping("/create")
public String create(){
//创建连接
AlipayClient alipayClient = new DefaultAlipayClient(serverUrl,appId,privateKey,"json", "UTF-8",alipayPublicKey,"RSA2");
AlipayTradePagePayRequest request = new AlipayTradePagePayRequest();
//订单信息
JSONObject bizContent = new JSONObject();
bizContent.put("out_trade_no", "202100012260165");
bizContent.put("total_amount", 5.00);
bizContent.put("subject", "测试");
bizContent.put("product_code", "FAST_INSTANT_TRADE_PAY");
request.setBizContent(bizContent.toString());
AlipayTradePagePayResponse response = null;
try {
response = alipayClient.pageExecute(request);
} catch (AlipayApiException e) {
e.printStackTrace();
}
if(response.isSuccess()){
//成功
return response.getBody();
} else {
//失败
return "调用失败";
}
}
}
構成パラメーターに注意してください。
- serverUrl パラメータの値:
- appId パラメータの値:
- privateKey と alipayPublicKey の値:
パラメータ値を設定したら、springboot プロジェクトを開始します。ここで設定された tomcat は、ポート 8080 を使用します。
起動が成功したら、ブラウザーを開いて、上記で記述したインターフェイス アドレスにアクセスします: http://localhost:8080/pay/create , Alipay インターフェイスが表示され、成功を示します. 失敗した場合は、構成されたパラメーターを確認してください!
3. イントラネットへの浸透
SDK を呼び出して支払い注文を作成する上記のサービスは、ローカルで実行されます. 制限は、ローカル プロジェクトのみが支払いをテストするためのインターフェイスを呼び出すことができるということです. リモートで呼び出したい場合は、サービスをパブリック ネットワークに公開する必要があります.
Cpolar は、http/https/tcp プロトコルをサポートし、トラフィックを制限せず、操作が簡単で、パブリック ネットワーク IP を必要とせず、ルーターを必要とせず、サービスをパブリック ネットワーク アクセスに簡単に公開できるイントラネット侵入ツールです。
cpolar公式サイト: https: //www.cpolar.com/
3.1 cpolar イントラネット侵入のダウンロードとインストール
cpolar 公式 Web サイトにアクセスし、アカウントを登録して、cpolar クライアントをダウンロードしてインストールします。詳細については、ドキュメントのチュートリアルを参照して、ダウンロードしてインストールしてください。
3.2 トンネルを作成する
cpolar が正常にインストールされたら、ブラウザーでローカル ポート 9200 にアクセスし、Cpolar の Web UI インターフェイス ( http://localhost:9200 )にログインします。
左側のダッシュボードの [Tunnel Management] - [Create Tunnel] をクリックします。Tomcat ではポート 8080 が設定されているため、ポート 8080 を指す http トンネルを作成する必要があります。
- トンネル名: カスタマイズできます。既存のトンネル名と重複しないように注意してください
- プロトコル: http プロトコル
- ローカルアドレス: 8080
- ドメイン名の種類: ランダムなドメイン名を無料で選択
- 地域: 中国トップを選択
クリック创建
左側のダッシュボード (オンライン トンネルのリスト) のステータスをクリックします。作成したばかりのトンネルが、対応するパブリック ネットワーク アドレス、1 つの http プロトコル、1 つの https プロトコル (ssl 証明書を構成する面倒な手順なし) を生成し、設定したことを確認できます。コピーする
4. パブリック ネットワーク アクセスをテストする
ブラウザーを開き、公网地址+接口路径
アクセスするためにコピーしたものを入力すると、アクセスが成功したことを示す Alipay ページが表示されます。
5. 固定の第 2 レベルのサブドメイン名を構成する
cpolar を使用して作成された上記のトンネルは、ランダムなパブリック ネットワーク アドレスを使用するため、アドレスは 24 時間以内に変更され、長期的なリモート アクセスには適していません。したがって、固定アドレスであり、ランダムに変更されない第 2 レベルのサブドメイン名を構成できます [ps: cpolar.cn が提出されました]。
cpolar パッケージは基本パッケージ以上にアップグレードする必要があることに注意してください。[cpolar.cn が提出されました]
5.1 第 2 レベルのサブドメインを予約する
Cpolar の公式 Web サイトにアクセスし、cpolar の公式 Web サイトのバックグラウンドにログインし、左側の [予約済み] をクリックして、予約済みの第 2 レベルのサブドメイン名を見つけます。
- 地域: 中国 VIP を選択
- 第 2 レベル ドメイン名: カスタマイズ可能
- 説明: カスタマイズ可能な備考
クリック保留
サブドメイン名が正常に予約されたことを確認し、予約済みの第 2 レベルのサブドメイン名をコピーします
5.2 第 2 レベルのサブドメイン名を構成する
http://127.0.0.1:9200/にアクセスし、cpolar Web UI 管理インターフェイスにログインし、左側のダッシュボードでトンネル管理 - トンネル リストをクリックし、支払いインターフェイス テスト トンネルを見つけて、右側の [編集] をクリックします。
トンネル情報を変更し、正常に予約された第 2 レベルのサブドメイン名をトンネルに構成します
- ドメイン名の種類: 第 2 レベルのサブドメイン名を選択します
- サブドメイン: 予約済みのサブドメイン名を入力します
クリック更新
更新後、再度オンライン トンネル リストを開くと、トンネルが固定の第 2 レベルのサブドメイン名になっていることがわかります。ドメイン名をコピーします。
6. アクセスには固定の第 2 レベルのサブドメイン名を使用する
ブラウザーを開き、アクセスが正常に構成された構成を入力する固定二级子域名+接口路径
と、Alipay ページが表示され、アクセスが成功したことが示されます。
アカウント名と支払いパスワードのテストを入力し、コンソールにログインしてアカウント名と支払いパスワードを表示します
支払い用のテスト アカウントの残高を選択すると、支払いパスワードがコンソールに表示されます
支払い完了