<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                ## 一、導入開發資源 1. 下載SQPaySdk-Android-xxx.jar包。在壹收銀開放平臺下載SQPaySdk-Android-xxx.zip資源并解壓,SQpaySdk-xxx.jar在libs中。 <br/> 2. 以Android studio為例,將SQpaySdk-xxx.jar包導入module下libs文件夾 <br/> 3. 右擊SQpaySdk-xxx.jar選擇Add As Library...添加jar包依賴 4. 按applicationId.wxapi.WXPayEntryActivity格式在applicationId包名對應的文件夾下創建文件夾wxapi,并在文件夾下添加類名為WXPayEntryActivity.class的類,且必須extend SQWXPayEntryActivity類。 &ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;**注意一定按applicationId.wxapi.WXPayEntryActivity格式創建,否則微信支付結果將無法回調。** <br/> <br/> <br/> * * * * * ## 二、修改Manifest.xml 1. 聲明WXPayEntryActivity,配置ACCESS ID: ~~~ <!-- 微信支付結果回調界面,注意:? 1、類名為WXPayEntryActivity,不能更改? 2、路徑為package.wxapi.WXPayEntryActivity,不能更改? 否則將無法回調,將demo中的配置copy使用即可-->?<activity android:name=".wxapi.WXPayEntryActivity"? android:exported="true"? android:launchMode="singleTop"/> ~~~ <br/> 2. 添加權限: ~~~ <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" /> ~~~ <br/><br/> ## ## 三、添加混淆規則 ~~~ -keep class io.youyi.pay.SQPayApi {*;}?-keep class io.youyi.pay.SQPayRequest {*;}?-keep class io.youyi.pay.SQPayResult {*;}?-keep class io.youyi.pay.SQPayResultListener{*;}?-keep class io.youyi.pay.SQWXPayEntryActivity{*;} ??-keep class com.alipay.**?-keep class com.tencent.mm.opensdk.**?-keep class com.tentent.**??-dontshrink?-dontpreverify?-dontoptimize?-dontusemixedcaseclassnames??-flattenpackagehierarchy?-allowaccessmodification?-printmapping map.txt??-optimizationpasses 7?-verbose?-keepattributes Exceptions,InnerClasses?-dontskipnonpubliclibraryclasses?-dontskipnonpubliclibraryclassmembers?-ignorewarnings??-keep public class * extends android.app.Activity?-keep public class * extends android.app.Application?-keep public class * extends android.app.Service?-keep public class * extends android.content.BroadcastReceiver?-keep public class * extends android.content.ContentProvider?-keep public class * extends java.lang.Throwable {*;}?-keep public class * extends java.lang.Exception {*;}??-keep class com.alipay.android.app.IAlixPay{*;}?-keep class com.alipay.android.app.IAlixPay$Stub{*;}?-keep class com.alipay.android.app.IRemoteServiceCallback{*;}?-keep class com.alipay.android.app.IRemoteServiceCallback$Stub{*;}?-keep class com.alipay.sdk.app.PayTask{ public *;}?-keep class com.alipay.sdk.app.AuthTask{ public *;}?-keep class com.alipay.sdk.app.H5PayCallback {? <fields>;? <methods>;?}?-keep class com.alipay.android.phone.mrpc.core.** { *; }?-keep class com.alipay.apmobilesecuritysdk.** { *; }?-keep class com.alipay.mobile.framework.service.annotation.** { *; }?-keep class com.alipay.mobilesecuritysdk.face.** { *; }?-keep class com.alipay.tscenter.biz.rpc.** { *; }?-keep class org.json.alipay.** { *; }?-keep class com.alipay.tscenter.** { *; }?-keep class com.ta.utdid2.** { *;}?-keep class com.ut.device.** { *;}???-keepclasseswithmembernames class * {? native <methods>;?}??-keepclasseswithmembers class * {? public <init>(android.content.Context, android.util.AttributeSet);?}??-keepclasseswithmembers class * {? public <init>(android.content.Context, android.util.AttributeSet, int);?}??-keepclassmembers class * extends android.app.Activity {? public void *(android.view.View);?}??-keepclassmembers enum * {? public static **[] values();? public static ** valueOf(java.lang.String);?}??-keep class * implements android.os.Parcelable {? public static final android.os.Parcelable$Creator *;?}?# adding this in to preserve line numbers so that the stack traces?# can be remapped?-renamesourcefileattribute SourceFile?-keepattributes SourceFile,LineNumberTable ~~~ <br/> <br/> ## ## 四、檢查簽名配置 &ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;檢查build.gradle是否添加簽名,并且與微信開放平臺注冊app時填寫的一致。 &ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;至此,開發包開發資源導入完成,詳細使用見資源包中的demo。 <br/> <br/> ## ## 五、支付接口調用 1. 初始化支付sdk ~~~ // 初始化配置,填寫壹收銀開放平臺注冊時獲取的mchNo和client key SQPayApi.init("your_mch_no","your_client_key" ); 發起支付請求 // 創建支付請求?SQPayRequest request = new SQPayRequest();? // 訂單名稱(必填)? request.setBody("支付測試");? // 支付金額,單位:分(必填)? request.setFee(1);? // 商家訂單號(必填)? request.setMchOrderId("123456");? // 訂單支付結束后異步回調通知url(必填)? request.setNotifyUrl("http://www.baidu.com");? // 訂單附加信息(選填)? request.setAttach("附加信息");? // 支付渠道:微信/支付寶? request.setPayChannel(SQPayRequest.CHANNEL_ALIPAY);? //request.setPayChannel(SQPayRequest.CHANNEL_WEIXIN);? // 發起支付,并添加支付結果監聽? // 發起支付請求?SQPayApi.pay(this, request, new SQPayResultListener() {? @Override? public void onSuccess(SQPayResult sqPayResult) {? Toast.makeText(PayDemoActivity.this, "支付成功", Toast.LENGTH_SHORT).show();? }?? @Override? public void onFail(String errorCode, String errorDes) {? if (errorCode.equals(SQPayResult.FAIL)) {? Toast.makeText(PayDemoActivity.this, "支付失敗", Toast.LENGTH_SHORT).show();? } else if (errorCode.equals(SQPayResult.CANCEL)) {? Toast.makeText(PayDemoActivity.this, "用戶取消支付", Toast.LENGTH_SHORT).show();? }? }?}); ~~~ 【注:[獲取mchNo和client key](http://www.hmoore.net/book/cattong/youyisdk/preview/%E6%B3%A8%E5%86%8C%E5%BC%80%E5%8F%91%E8%80%85%E8%B4%A6%E5%8F%B7.md)】 <br/> <br/> ## ## 六、接口說明 Android平臺上的快捷支付開發包接口如下表所示: 1、SQPayRequest.class | 接口名稱 | 接口描述 | | --- | --- | | SQPayRequest | 開發包提供,封裝商品訂單信息。 | &ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;方法聲明:getXX()和setXX() | 參數名稱 | 參數類型 | 必填 | 說明 | | --- | --- | --- | --- | | body | String | 是 | 訂單名稱 | | fee | Int | 是 | 訂單金額,單位分 | | mchOrderId | String | 是 | 自定義訂單號 | | notifyUrl | String | 是 | 異步通知的地址,服務器在支付完成后,會以POST方式調用notify_url傳輸數據 | | attach | String | 否 | 訂單附加信息 | | payChannelv | Int | 是 | 支付渠道,1:微信;2:支付寶 | | orderId | String | 否 | 平臺生成的訂單號,在支付結束后返回,不需要填寫 | **常量** | CHANNEL_WEIXIN | 微信支付渠道 | | --- | --- | | CHANNEL_ALIPAY | 支付寶支付渠道 | <br/> <br/> 2、SQPayResult.class | 接口名稱 | 接口描述 | | --- | --- | | SQPayResult | 開發包提供,支付成功后返回的支付訂單信息。 | 方法聲明:getXX()和setXX() <br/> | 參數名稱 | 參數類型 | 必填 | 說明 | | --- | --- | --- | --- | | body | String | 是 | 訂單名稱 | | fee | Int | 是 | 訂單金額,單位分 | | mchOrderId | String | 是 | 自定義訂單號 | | notifyUrl | String | 是 | 異步通知的地址,服務器在支付完成后,會以POST方式調用notify_url傳輸數據 | | attach | String | 否 | 訂單附加信息 | | payChannel | Int | 是 | 支付渠道,1:微信;2:支付寶 | | orderId | String | 否 | 平臺生成的訂單號,在支付結束后返回,不需要填寫 | ### **常量** | CHANNEL_WEIXIN | 微信支付渠道編碼 | | --- | --- | | CHANNEL_ALIPAY | 支付寶支付渠道編碼 | <br/> <br/> ### 3、SQPayResultListener.class | 接口名稱 | 接口描述 | | --- | --- | | SQPayResultListener | 開發包提供,支付結果監聽接口 | <br/> <br/> #### 接口方法聲明: | 支付成功接口與參數 | 說明 | | --- | --- | | SQPayResultListener.OnSuccess(SQPayResult result) | 支付成功監聽接口 | | SQPayResult | 支付結果,包含訂單信息 | | 支付失敗接口與參數 | 說明 | | --- | --- | | SQPayResultListener.OnFail(String errorCode, String errorDes) | 支付失敗監聽接口 | | errorCode | 錯誤碼 | | errorDes | 錯誤描述 | <br/> <br/> 4、SQPayApi.class | 接口名稱 | 接口描述 | | --- | --- | | SQPayApi | 開發包提供,支付相關請求 | <br/> | 方法SQPayApi.init() | 說明 | | --- | --- | | SQPayApi.init(String mchNo,String clientKey) | 配置商戶信息 | | mchNo | 商戶號,注冊賬號后本平臺內獲取 | | clientKey | 訪問id,注冊賬號后本平臺內獲取 | <br/> <br/> | 方法SQPayApi.pay() | 說明 | | --- | --- | | SQPayApi.RequestPay(Activity activity, SQPayRequest request, SQPayResultListener listener) | 發起支付請求 | | Activity | | | SQPayRequest | | | SQPayResultListener | | <br/> <br/> ## ## 七、APP支付新手入門及常見問題 1. 微信支付無法顯示付款界面 請檢查以下方面: * 當前App已添加簽名; * 簽名與微信開放平臺注冊app時填寫一致; <br/> 2. 微信支付成功后回調失敗 請檢查以下方面: * 當前app模塊src—>main—>java下的包名是否與簽名所用包名一致; * 檢測包名方法:退出微信登錄,點擊你App的微信支付,顯示微信登錄界面后返回,回調正常;登錄微信,重復上述,支付成功后回調失敗。 3. 微信返回-1 * 可能的原因:簽名錯誤、未注冊APPID、項目設置APPID不正確、注冊的APPID與設置的不匹配、其他異常等。 4. 支付寶支付失敗 [支付寶公共返回碼](https://doc.open.alipay.com/doc2/detail.htm?treeId=200&articleId=105351&docType=1#s2) [支付寶Ali錯誤碼](https://tech.open.alipay.com/support/knowledge/index.htm?categoryId=24120&tabId=270052&scrollcheck=1#/?_k=fyysbb) <br/> ## ## 八、附錄 | 錯誤碼 | 參數名稱 | | --- | --- | | 1100 | 網絡出現異常 | | 1102 | 網絡出現異常,請確認網絡是否穩定 | | 40001 | 未填寫accessKey | | 40002 | 服務端返回數據出錯 | | 40003 | GoodOrder未填寫完整 | | 40004 | 微信未安裝 | | 40005 | 微信版本過低,請先更新微信 | | 40006 | 微信接口IWXAPI調用失敗 | | 40007 | 存在微信支付所需參數為空 |
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看