ping++支付,支付宝、微信等支付功能,和相关的问题解决方案

功能的集成步骤在本页面第二,请往下翻,相关问题在一;

一、相关问题:
1、导入官方项目时,不能像常规那样导入项目时,删掉一些文件夹,更改文件中版本,什么都不改,直接打开即

可。错误时,android studio会报错:android studio error: style attribute ‘@android:attr/windowEnterAnimation’

n,什么都不改就可以了。

2、android studio CreateProcess error=2, 系统找不到指定的文件。

解决方法:打开 local.properties,将ndk目录的目录加上后缀 .cmd, 即:ndk.dir=E\:\\android\\sdk\\ndk-bundle.cmd,  重新build就
可以正常编译了,没有出现的,那也是可以的

如图:在这里插入图片描述

3、Program type already present: android.support.v4.app.BackStackState$1

	这个问题是因为我自己操作错误,我是一边把:pingpp,pingpp_ui文件夹导入项目中,又一边加依赖:
	compile 'com.pingxx:pingpp-core:2.1.17' // (Ping++ 标准版 SDK) 必须添加
	compile 'com.pingxx:pingpp-ui:2.1.17' // (Ping++ UI 控件) 使用 Ping++ UI 时添加
	
	如果有过文件夹导入的过程,就重新写个demo,这个时候别加入pingpp,pingpp_ui文件夹,直接添加依赖即可:
	compile 'com.pingxx:pingpp-core:2.1.17' // (Ping++ 标准版 SDK) 必须添加
	compile 'com.pingxx:pingpp-ui:2.1.17' // (Ping++ UI 控件) 使用 Ping++ UI 时添加

4、error: style attribute ‘@android:attr/windowEnterAnimation’ not found.

这个坑是因为android studio版本问题,导致的方式不一样,
解决:在gradle.properties中,加上
android.enableAapt2=false

加上后会出现一些问题,比如:在relativelayout中,android:layout_toLeftOf="@id/"的控制命令会报错,如果不想加这一句,那就先删掉 “ compile ‘com.pingxx:pingpp-ui:2.1.17’ // (Ping++ UI 控件) 使用 Ping++ UI 时添加”这个依赖,这个不影响创建定单的。

	贴上图,清晰一些

在这里插入图片描述

这几个坑,够我吃的了。大家小心。

二、集成步骤
android根据官方文档集成,地址:https://www.pingxx.com/docs/client/android
在这里插入图片描述
然后一步步的来,我项目里直接是
2.1、依赖,
dependencies {
implementation ‘com.pingxx:pingpp-android:2.2.1’ // (Ping++ 标准版 SDK) 必须添加
implementation ‘com.tencent.mm.opensdk:wechat-sdk-android-without-mta:+’ // 使用微信支付时添加,具体版本参考微信官方文档
implementation ‘com.pingxx:pingpp-android-alipay:2.2.0’ // 使用支付宝时添加
implementation ‘com.pingxx:pingpp-android-upacp:2.2.0’ // 使用银联支付时添加
implementation ‘com.pingxx:pingpp-qpay:2.1.19’ // 使用QQ钱包时添加
implementation ‘com.pingxx:pingpp-cmbwallet:2.1.19’ // 使用招行一网通时添加
implementation ‘com.pingxx:pingpp-ccbpay:2.1.19’ // 使用建行支付时添加
}
2.2、再是权限

2.3、然后是Mainifest.xml

<!-- Ping++ SDK -->
<activity
	android:name="com.pingplusplus.android.PaymentActivity"
    android:configChanges="orientation|keyboardHidden|navigation|screenSize"
    android:launchMode="singleTop"
    android:theme="@android:style/Theme.Translucent.NoTitleBar" >
 
    <!-- 不使用QQ钱包,可删除此部分代码 -->
    <!-- scheme 填写规则建议:qwallet + QQ 钱包中的 app_id -->
    <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>
 
<!-- 微信支付 -->
<!-- 1.需要将以下"替换成自己 APK 的包名"换成在微信平台上注册填写的包名 -->
<!-- 2.WxPayEntryActivity 这个类在 SDK 内部实现,开发者不需要额外实现该类 -->
<activity-alias
    android:name="替换成自己APK的包名.wxapi.WXPayEntryActivity"
    android:exported="true"
    android:targetActivity="com.pingplusplus.android.PaymentActivity" />
 
<!-- 支付宝 -->
<activity
    android:name="com.alipay.sdk.app.H5PayActivity"
    android:configChanges="orientation|keyboardHidden|navigation|screenSize"
    android:exported="false"
    android:screenOrientation="behind" >
</activity>
<activity
    android:name="com.alipay.sdk.auth.AuthActivity"
    android:configChanges="orientation|keyboardHidden|navigation|screenSize"
    android:exported="false"
    android:screenOrientation="behind" >
</activity>
 
<!-- 银联支付 -->
<activity 
    android:name="com.unionpay.uppay.PayActivity" 
    android:configChanges="orientation|keyboardHidden|navigation|screenSize"/>
<activity
    android:name="com.unionpay.UPPayWapActivity"
    android:configChanges="orientation|keyboardHidden|navigation|screenSize"
    android:screenOrientation="portrait"
    android:windowSoftInputMode="adjustResize"/>
    
<!-- 招行一网通(非混淆加密方式) -->
<service android:name="cmb.pb.cmbsafe.CmbService" android:exported="false"/>
<activity
         android:name="cmb.pb.ui.PBKeyboardActivity"
         android:theme="@style/CmbDialogStyleBottom" />
 
<!-- 招行一网通 App 即招商银行(格式:`<SCHEME>://pingppcmbwallet`,其中 `<SCHEME>` 是你自定义的 `URL Schemes`) -->
<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="自定义 URL Scheme"/>
   <data android:host="pingppcmbwallet"/>
</intent-filter>
<!-- 将以上代码添加到 Ping++ SDK 注册的 Activity,如: -->
<activity
    android:name="com.pingplusplus.android.PaymentActivity"
    android:configChanges="orientation|keyboardHidden|navigation|screenSize"
    android:launchMode="singleTask"
    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="自定义 URL Scheme"/>
        <data android:host="pingppcmbwallet"/>
    </intent-filter>
 
</activity>
 
<!-- 建行支付需注册 (自定义 action-name 保持与服务端的 third_app_info 一致) -->
<activity android:name="com.ccb.ccbnetpay.activity.appresult.ResultActivity"
    android:configChanges="orientation|keyboardHidden|screenSize"
    android:screenOrientation="portrait">
    <intent-filter>
        <action android:name="自定义 action-name"/>
        <category android:name="android.intent.category.DEFAULT"/>
    </intent-filter>
</activity>
 
<activity android:name="com.ccb.ccbnetpay.activity.CcbUnionPayActivity"
    android:configChanges="orientation|keyboardHidden|screenSize"
    android:screenOrientation="portrait"/>
 
<activity android:name="com.ccb.ccbnetpay.activity.CcbH5PayActivity"
    android:configChanges="orientation|keyboardHidden|screenSize"
    android:screenOrientation="portrait"/>

2.4、然后就可以调用了。

这是创建定单:

//参数一:Activity 当前调起支付的Activity
//参数二:data 获取到的 Charge/Order/Recharge 的 JSON 字符串
Pingpp.createPayment(YourActivity.this, data);

然后是支付的回调监听:

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" - 支付插件未安装(一般是微信客户端未安装的情况)
             * "unknown" - app进程异常被杀死(一般是低内存状态下,app进程被杀死)
             */
            String errorMsg = data.getExtras().getString("error_msg"); // 错误信息
            String extraMsg = data.getExtras().getString("extra_msg"); // 错误信息
            showMsg(result, errorMsg, extraMsg);
        }
    }
}
// 注:线下渠道无支付结果返回, 返回 unknown 字段。需要从服务端获取正确的支付结果。

结束了,

//这里再加一点,发现一个问题,如果   “implementation 'com.pingxx:pingpp-android-alipay:2.2.0' // 使用支付宝时添加
 ”依赖添加不上,那就按如下操作:(暂时只写支付宝功能,因为它出问题了)

1、依赖
    implementation 'com.pingxx:pingpp-android:2.2.1' // (Ping++ 标准版 SDK) 必须添加
    下载ping++支付宝的sdk:https://github.com/PingPlusPlus/pingpp-android/tree/master/lib/pingpp/libs,
    这个是libs的直接路径,直接找到:alipaySdk-20180316.jar下载即可,放到自己工程的lib文件夹下,
    可到android studio面板粘贴,也可文件夹去粘贴;然后添加依赖;

2、mianifast.xml配置:

    <!-- 注:有些权限是需要动态注册的,如 READ_PHONE_STATE 权限 -->
    <!-- 通用权限 -->
    <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"/>
 <!-- 支付宝 sdk -->
        <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>


        <!-- Ping++ SDK -->
        <activity
            android:name="com.pingplusplus.android.PaymentActivity"
            android:configChanges="orientation|keyboardHidden|navigation|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>



        <!-- 微信支付 sdk ,也是 Ping++ sdk 调用入口 -->
        <activity-alias
            android:name=".wxapi.WXPayEntryActivity"
            android:exported="true"
            android:targetActivity="com.pingplusplus.android.PaymentActivity" />


	3、直接调用 Pingpp.createPayment(MainActivity.this,charge);即可
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jian11058

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值