在使用豌豆莢支付以前,先要下載豌豆莢SDK並閱讀一下豌豆莢文檔 SDK和文檔
java
首先添加wdjpayplugin.jar到Android工程libs目錄下,再添加assets_wdj420.apk到assets下安全
具體的實現:
服務器
首先要初始化SDK,在onCreate方法中初始化cookie
PayConfig.init(context, appkey_id, secretkey);// appkey_id,secret是在豌豆莢平臺由開發者申請的
讓用戶登陸豌豆莢平臺app
private WandouAccount account = new WandouAccountImpl(); account.doLogin(context, new LoginCallBack() { @Override public void onSuccess(User user, int type) { // 豌豆莢帳戶UID Long uid = user.getUid(); // 豌豆莢帳戶暱稱 String nick = user.getNick(); // 豌豆莢帳戶登陸驗證 Token ,15分鐘內有效 String token = user.getToken(); // 1.請把uid,token 提交遊戲服務器 // 2.遊戲服務器收到uid,token後提交給豌豆莢服務器驗證 // 3.驗證經過後,遊戲服務器生成一個 cookie 給遊戲客戶端使用 // 4.遊戲客戶端獲得遊戲的cookie 與遊戲服務器進行交互通訊,保證身份驗證安全
支付:ide
public void pay(float money){ WandouPay wandouPay = new WandouPayImpl(); WandouOrder order = new WandouOrder(""// 遊戲名稱 , ""),// 商品名稱 (long) (money * 100));//錢數 // 設置遊戲訂單號,最長50個字符 order.setOut_trade_no("訂單號"); // 觸發支付 wandouPay.pay(context, order, new PayCallBack() { @Override public void onSuccess(User user, WandouOrder order) { Log.i("ccc", "onSuccess:" + order); } @Override public void onError(User user, WandouOrder order) { Log.i("ccc", "onError:" + order); } }); }
支付中的onSuccess回調只是表明客戶端支付完成,具體付款成功是以豌豆莢服務器通知回調爲準。post
在豌豆莢開發者後臺上傳應用時,須要配置一個回調地址,這個回調地址就是豌豆莢用來通知遊戲服務器支付成功的,在支付成功以後豌豆莢服務器會以post方式去請求這個url測試
post中所帶參數有如下三種類型:ui
具體服務器端實現(java,服務器參考代碼也在sdk文檔中):url
RSA驗證:
boolean check = WandouRsa.doCheck(content, sign);//content sign分別是上面post中的內容
//RSA校驗 public static boolean doCheck(String content, String sign) { try { KeyFactory keyFactory = KeyFactory.getInstance("RSA"); byte[] encodedKey = Base64.decode(WandouPublicKey); PublicKey pubKey = keyFactory.generatePublic(new X509EncodedKeySpec(encodedKey)); java.security.Signature signature = java.security.Signature.getInstance(SIGN_ALGORITHMS); signature.initVerify(pubKey); signature.update(content.getBytes("utf-8")); boolean bverify = signature.verify(Base64.decode(sign)); return bverify; } catch (Exception e) { e.printStackTrace(); } return false; }
在校驗成功以後,服務器端進行購買成功以後操做,如增長金幣,解鎖裝備等。注意豌豆莢爲防止漏單,會在遊戲服務器沒有返回success以後屢次請求回調url,應當注意success並增長防止重複訂單機制,防止屢次加錢
支付測試:
豌豆莢不像谷歌,91有支付測試環境,具體的支付測試須要支付真實money(囧)。不過辦法老是有的:咱們能夠將支付金額設置爲0.01元,以後用支付寶進行測試,由於銀行卡最低支付金額是1元。
待支付寶支付成功以後,再測試1元的銀行卡或信用卡支付,這兩種支付都成功以後,應該就差很少了。