PingPlusPlus(一):単純支払

2462 ワード

2015年4月20日のPing++テクニカルサポートに感謝します。


プロセス:
  • クライアントは、サービス側に対して支払要求
  • を発行する.
  • サービス側は、要求に応じる、対応するextraを設定する.//このextraは追加ではありませんね.必要です.
  • クライアントは、サービス側から戻るChargeオブジェクト
  • を受信する.
    ping++の処理をサービス層に入れました~~
    	//  ping++ 
    	//  Charge 
    	public Charge transaction() {
    		Charge charge = null;
    		Pingpp.apiKey = "sk_test_q540q9GanD0O4eLWDSqDa5SC";
    
    		Map<String, Object> chargeMap = new HashMap<String, Object>();
    		//  extra , 
    		chargeMap.put("amount", 100);
    		chargeMap.put("currency", "cny");
    		chargeMap.put("subject", "Your Subject");
    		chargeMap.put("body", "Your Body");
    		chargeMap.put("order_no", "1111");
    		chargeMap.put("channel", "alipay_wap");
    		chargeMap.put("client_ip", "127.0.0.1");
    		Map<String, String> app = new HashMap<String, String>();		
    		app.put("id", "app_GeTunDi9WzzTyfDG");
    		Map<String, String> extramap = new HashMap<String, String>();
                    //extra : https://pingxx.com/document/api#api-c-new
                    extramap.put("success_url", "http://127.0.0.1:8080/PartTimeJob/pinus_webview.html");
    		chargeMap.put("extra", extramap);
    		chargeMap.put("app", app);
    		
    		try {
    			//  
    			charge = Charge.create(chargeMap);
    			System.out.println(charge);
    		} catch (PingppException e) {
    			e.printStackTrace();
    		}
    		return charge;
    	}
    

    HTML 5クライアントは、ping++HTML 5 SDKのexampleを使用しています.
        function wap_pay(channel) {
            var amount = document.getElementById('amount').value * 100;
    
            var pay_url = "deposit-transaction";  //  url, ~ .
    
            var xhr = new XMLHttpRequest();
            xhr.open("POST", pay_url, true);
            xhr.setRequestHeader("Content-type", "application/json");
            xhr.send(JSON.stringify({
                channel: channel,
                amount: amount
            }));
    
            xhr.onreadystatechange = function () {
                if (xhr.readyState == 4 && xhr.status == 200) {
                    console.log(xhr.responseText);
                    pingpp.createPayment(xhr.responseText, function(result, err) {
                        console.log(result);
                        console.log(err);
                    });
                }
            }
        }

    アドバイスを歓迎します~