##### Gradle导入方式
1、在module中的build.gradle中设置
```
dependencies {
compile 'com.pingxx:pingpp-core:2.1.7' //必须添加
compile 'com.pingxx:pingpp-alipay:2.1.7' //使用支付宝时添加
compile 'com.pingxx:pingpp-upacp:2.1.7' //使用银联支付时添加
compile 'com.pingxx:pingpp-wxpay:2.1.7' //使用微信支付时添加
compile 'com.pingxx:pingpp-bfb-sdk:2.1.7' // 使用百付宝时添加
compile 'com.pingxx:pingpp-qpay:2.1.7' //使用QQ钱包时添加
}
```
2、在项目中的build.gradle中添加
```
buildscript {
repositories {
jcenter()
}
}
allprojects {
repositories {
jcenter()
}
}
##### 权限声明
``` xml
<!-- 通用权限 -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!-- 银联需要的权限 -->
<uses-permission android:name="android.permission.NFC" />
<!-- 百度支付需要的权限 -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.READ_SMS" />
##### 注册 activity
``` xml
<!-- Ping++ SDK -->
<activity
android:name="com.pingplusplus.android.PaymentActivity"
android:configChanges="orientation|screenSize"
android:launchMode="singleTop"
android:theme="@android:style/Theme.Translucent.NoTitleBar" >
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.BROWSABLE"/>
<category android:name="android.intent.category.DEFAULT"/>
<data android:scheme="qwalletXXXXXXXX"/>
</intent-filter>
</activity>
<!-- 微信支付 -->
<activity-alias
android:name=".wxapi.WXPayEntryActivity"
android:exported="true"
android:targetActivity="com.pingplusplus.android.PaymentActivity" />
<!-- 支付宝 -->
<activity
android:name="com.alipay.sdk.app.H5PayActivity"
android:configChanges="orientation|keyboardHidden|navigation"
android:exported="false"
android:screenOrientation="behind" >
</activity>
<activity
android:name="com.alipay.sdk.auth.AuthActivity"
android:configChanges="orientation|keyboardHidden|navigation"
android:exported="false"
android:screenOrientation="behind" >
</activity>
### 三、获得 Charge/Order
Charge/Order 对象是一个包含支付信息的 JSON 对象,是 Ping++ SDK 发起支付的必要参数。该参数需要请求用户服务器获得,服务端生成 charge 的方式参考 [Ping++ 开发指南](https://www.pingxx.com/docs/overview)。SDK 中的 demo 里面提供了如何获取 charge 的实例方法,供用户参考。
### 四、发起支付
``` java
//data:表示charge或者order的字符串
Pingpp.createPayment(YourActivity.this, data);
//QQ钱包调起支付方式 “qwalletXXXXXXX”需与AndroidManifest.xml中的data值一致
//建议填写规则:qwallet + APP_ID
Pingpp.createPayment(YourActivity.this, data, "qwalletXXXXXXX");
```
#### 五、获取支付状态
从 Activity 的 onActivityResult 方法中获得支付结果。支付成功后,用户服务器也会收到ping++ 服务器发送的异步通知。 最终支付成功请根据服务端异步通知为准。
``` java
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
//支付页面返回处理
if (requestCode == Pingpp.REQUEST_CODE_PAYMENT) {
if (resultCode == Activity.RESULT_OK) {
String result = data.getExtras().getString("pay_result");
/* 处理返回值
* "success" - 支付成功
* "fail" - 支付失败
* "cancel" - 取消支付
* "invalid" - 支付插件未安装(一般是微信客户端未安装的情况)
*/
String errorMsg = data.getExtras().getString("error_msg"); // 错误信息
String extraMsg = data.getExtras().getString("extra_msg"); // 错误信息
showMsg(result, errorMsg, extraMsg);
}
}
<---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
六丶在项目中关于和友盟的jar包冲突
如果在项目中您添加了友盟分享的jar包,和ping++支付的jar包,需要注意的是,如微信支付和微信分享,友盟的完整版微信jar包,包含了微信支付。所以当你需要使用ping++
微信支付的时候,不要使用友盟分享完整版微信jar包。请选择精简版