前言:
oneStore 支付对于某些没有接触过的来对接,可能很费工夫。毕竟没有参考没有demo着实为难。
本菜鸟也刚刚从坑里爬出来,本着大爱无私的情操,就直接上代码,有需要的可能参考代码实现自己的对接。
1.onestore支付的sdk;
本文封装的时候使用的sdk为iap_sdk-v19.00.01.aar版本。
若需要下载或查看的,请点击onestore 中文文档 跳转查看吧。
2.下载好sdk后,就引用吧。
implementation fileTree(dir: 'libs', include: ['*.jar', '*.aar'])
3.前两步处理好了,就直接把封装好的 OneStorelePay.java直接拷贝到自己的项目中。
直接上封装好的代码类OneStorelePay
package //包名路径,本菜鸟就直接隐藏了哈
import android.app.Activity;
import android.os.Handler;
import android.util.Log;
import com.gaa.sdk.iap.AcknowledgeListener;
import com.gaa.sdk.iap.AcknowledgeParams;
import com.gaa.sdk.iap.ConsumeListener;
import com.gaa.sdk.iap.ConsumeParams;
import com.gaa.sdk.iap.IapResult;
import com.gaa.sdk.iap.IapResultListener;
import com.gaa.sdk.iap.ProductDetailsListener;
import com.gaa.sdk.iap.ProductDetailsParams;
import com.gaa.sdk.iap.PurchaseClient;
import com.gaa.sdk.iap.PurchaseClientStateListener;
import com.gaa.sdk.iap.PurchaseData;
import com.gaa.sdk.iap.PurchaseFlowParams;
import com.gaa.sdk.iap.PurchasesListener;
import com.gaa.sdk.iap.PurchasesUpdatedListener;
import com.gaa.sdk.iap.RecurringProductListener;
import com.gaa.sdk.iap.RecurringProductParams;
import com.gaa.sdk.iap.StoreInfoListener;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
public class OneStorelePay implements PurchasesUpdatedListener {
private final String TAG = OneStorelePay.class.getSimpleName();
private Activity mActivity;
private PurchaseClient mPurchaseClient;
private Set<String> mTokenToBe;
private boolean isServiceConnected;
public OneStorelePay(Activity activity) {
mActivity = activity;
//避免多个支付端,所以初始化时,需要进行判断释放。
if(mPurchaseClient!=null)destroy();
mPurchaseClient = PurchaseClient.newBuilder(activity)
//
.setBase64PublicKey(mActivity.getString("onestore的key"))
.setListener(this)
.build();
startConnection(new Runnable() {
@Override
public void run() {
Log.d(TAG, "Setup successful. Querying inventory.");
queryPurchasesAsync();
}
});
}
public void destroy() {
if (mPurchaseClient != null) {
mPurchaseClient.endConnection();
mPurchaseClient = null;
}
}
/**
* 开始 onestore 服务连接
* **/
public void startConnection(final Runnable executeOnSuccess) {
mPurchaseClient.startConnection(new PurchaseClientStateListener() {
@Ov