1. 程式人生 > >個人開發者快速整合移動支付SDK,TrPay支付接入說明

個人開發者快速整合移動支付SDK,TrPay支付接入說明

最近在開發自己的一款應用,其中涉及到移動快捷支付,但由於自己是個人開發者(哈哈~~相信有不少跟我一樣的朋友),無法直接申請市場上主流支付,如支付寶、微信、銀聯等。在網上找了好久第三方支付SDK,後來不經意間看到了TrPay聚合支付,感覺費率還可以,便試著集成了,現在應用上線運營了快大半年了,今天來跟大家分享一下TrPay的兩種整合過程(aar和jar方式)。

整合步驟:

一、準備工作:

2、登入控制檯後,點選“新增應用”按鈕,填寫自己的應用名稱以及平臺(Android、IOS、Wap),按提示進行下一步,最後進入到“完善應用詳細內容”環節,上傳自己的應用安裝包、應用截圖、應用描述等資料,之後點選”提交稽核“按鈕,提交成功後請等待TrPay官方人員對您的應用或網站進行稽核。

3、當稽核成功後,便開始我們的下一步整合工作了。

二、整合工作:

方式一:以aar方式整合:

2、將已下載的paysdk複製到工程的libs(若無該目錄,請先建立)目錄下,並修改build.gradle配置檔案。程式碼如下所示:

2.1、在android中增加以下內容:

repositories{flatDir{  dirs'libs'}  }

2.2、在dependencies中增加以下內容:

compile(name:'paysdk-release-1.2.1', ext:'aar')//paysdk-release-1.2.1(sdk名稱)
2.3、點選Sync,同步配置。

3、在你的應用程式的AndroidManifest.xml

檔案中新增相應的許可權。程式碼如下所示:

   <uses-permission android:name="android.permission.INTERNET" />    
   <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />    
   <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />    
   <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" />

方式二:以jar方式整合:

1.將解壓後的SDK檔案中的TrPay_sdk_Jar.zip檔案解壓,其中包含TrPay所需要的jar檔案res資原始檔AndroidManifest.xml許可權檔案

2.1.將alipaySdk-20170922.jarpaysdk-release-1.2.1.jar檔案複製到工程的libs(若無該目錄,請先建立)目錄下,之後將其加入專案依賴庫中。

2.2.將res資原始檔新增到您專案的res目錄中(若不想走TrPay收銀臺,可不必加入res資原始檔)。

3.修改您專案的AndroidManifest.xml檔案,請參考TrPay_sdk_Jar.zip壓縮包中AndroidManifest.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" />
<activity
        android:name="com.base.bj.trpayjar.TrPayAcitivity"
        android:configChanges="orientation|keyboardHidden|navigation|screenSize"
        android:exported="false"
        android:launchMode="singleTask"
        android:screenOrientation="behind"
        android:windowSoftInputMode="adjustResize|stateHidden" >
    </activity>
    <activity
        android:name="com.base.bj.trpayjar.TrPayUnionAcitivity"
        android:configChanges="orientation|keyboardHidden|navigation|screenSize"
        android:exported="false"
        android:windowSoftInputMode="adjustResize|stateHidden" >
    </activity>
    <activity
        android:name="com.base.bj.trpayjar.TrSelectListActivity"
        android:configChanges="orientation|keyboardHidden|navigation|screenSize"
        android:exported="false"
        android:windowSoftInputMode="adjustResize|stateHidden" >
    </activity>
    <!-- alipay sdk begin -->
    <activity
        android:name="com.alipay.sdk.app.H5PayActivity"
        android:configChanges="orientation|keyboardHidden|navigation|screenSize"
        android:exported="false"
        android:screenOrientation="behind"
        android:windowSoftInputMode="adjustResize|stateHidden" >
    </activity>
 <activity
        android:name="com.alipay.sdk.app.H5AuthActivity"
        android:configChanges="orientation|keyboardHidden|navigation"
        android:exported="false"
        android:screenOrientation="behind"
        android:windowSoftInputMode="adjustResize|stateHidden" >
    </activity>

4、在你應用程式啟動的Activity的onCreate()方法中初始化TrPay功能。程式碼如下所示:

@Override
protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
       /**
        * 初始化PaySdk(context請傳入當前Activity物件(如:MainActivity.this))
        * 第一個引數:是您在trPay後面應用的appkey(需要先提交應用資料(若應用未上線,需上傳測試APK檔案),           * 稽核通過後appkey生效)
        * 第二個引數:是您的渠道,一般是baidu,360,xiaomi等
        */
       TrPay.getInstance(Activity.this).initPaySdk("您的應用AppKey","baidu");
}

5、設定支付相關的引數,並啟動支付。程式碼如下所示:

/**
 * 1.發起快捷支付呼叫(開啟TrPay收銀臺頁面,使用者自己選擇支付方式)
 * @param tradename     商品名稱      
 * @param outtradeno    商戶系統訂單號(商戶系統內唯一)
 * @param amount        商品價格(單位:分。如1.5元傳150)
 * @param backparams    商戶系統回撥引數
 * @param notifyurl     商戶系統回撥地址
 * @param userid        商戶系統使用者ID(如:[email protected],商戶系統內唯一)
 */
 TrPay.getInstance(Activity.this).callPay(tradename, outtradeno, amount, backparams, notifyurl,  userid, new PayResultListener() {
            /**
             * 支付完成回撥
             * @param context      上下文
             * @param outtradeno   商戶系統訂單號
             * @param resultCode   支付狀態(RESULT_CODE_SUCC:支付成功、RESULT_CODE_FAIL:支付失敗)
             * @param resultString 支付結果
             * @param payType      支付型別(1:支付寶 2:微信 3:銀聯)
             * @param amount       支付金額
             * @param tradename    商品名稱
             */
     @Override
      public void onPayFinish(Context context, String outtradeno, int resultCode, String          resultString, int payType, Long amount, String tradename) {
            if (resultCode == TrPayResult.RESULT_CODE_SUCC.getId()) {
                 //支付成功邏輯處理
            } else if (resultCode == TrPayResult.RESULT_CODE_FAIL.getId()) {
                 //支付失敗邏輯處理
            }
         }
 });
 
/**
 * 2.發起支付寶支付
 * @param tradename    商品名稱      
 * @param outtradeno   商戶系統訂單號(商戶系統內唯一)
 * @param amount       商品價格(單位:分。如1.5元傳150)
 * @param backparams   商戶系統回撥引數
 * @param notifyurl    商戶系統回撥地址
 * @param userid       商戶系統使用者ID(如:[email protected],商戶系統內唯一)*/
 TrPay.getInstance(Activity.this).callAlipay(tradename, outtradeno, amount, backparams, notifyurl, userid, new PayResultListener() {
           /**
            * 支付完成回撥
            * @param context      上下文
            * @param outtradeno   商戶系統訂單號
            * @param resultCode   支付狀態(RESULT_CODE_SUCC:支付成功、RESULT_CODE_FAIL:支付失敗)
            * @param resultString 支付結果
            * @param payType      支付型別(1:支付寶 2:微信 3:銀聯)
            * @param amount       支付金額
            * @param tradename    商品名稱
            */
     @Override
      public void onPayFinish(Context context, String outtradeno, int resultCode, String   resultString, int payType, Long amount, String tradename) {
            if (resultCode == TrPayResult.RESULT_CODE_SUCC.getId()) {
                 //支付成功邏輯處理
            } else if (resultCode == TrPayResult.RESULT_CODE_FAIL.getId()) {
                 //支付失敗邏輯處理
            }      
         }
  });
/**
 * 3.發起微信支付
 * @param tradename    商品名稱      
 * @param outtradeno   商戶系統訂單號(商戶系統內唯一)
 * @param amount       商品價格(單位:分。如1.5元傳150)
 * @param backparams   商戶系統回撥引數
 * @param notifyurl    商戶系統回撥地址
 * @param userid       商戶系統使用者ID(如:[email protected],商戶系統內唯一)*/
 TrPay.getInstance(Activity.this).callWxPay(tradename, outtradeno, amount, backparams, notifyurl, userid, new PayResultListener() {
           /**
            * 支付完成回撥
            * @param context      上下文
            * @param outtradeno   商戶系統訂單號
            * @param resultCode   支付狀態(RESULT_CODE_SUCC:支付成功、RESULT_CODE_FAIL:支付失敗)
            * @param resultString 支付結果
            * @param payType      支付型別(1:支付寶 2:微信 3:銀聯)
            * @param amount       支付金額
            * @param tradename    商品名稱
            */
     @Override
      public void onPayFinish(Context context, String outtradeno, int resultCode, String   resultString, int payType, Long amount, String tradename) {
            if (resultCode == TrPayResult.RESULT_CODE_SUCC.getId()) {
                 //支付成功邏輯處理
            } else if (resultCode == TrPayResult.RESULT_CODE_FAIL.getId()) {
                 //支付失敗邏輯處理
            }      
         }
  });
6、若想關閉支付介面可呼叫以下程式碼:
TrPay.getInstance(Activity.this).closePayView();

7、整合測試,應用能否正常喚起支付。

好了,以上就是利用Android Studio整合TrPay支付的全部過程了,希望我的這篇文章能夠幫助到更多個人開發者或企業在自己的產品中快速整合移動支付。

注:另有需要JAVA、Android、IOS、Python、C++、HTML5等全套程式設計視訊教程的朋友,請關注微信公眾號trteach圖靈技術社群”獲取資源~~~

相關推薦

個人開發者快速整合移動支付SDKTrPay支付接入說明

最近在開發自己的一款應用,其中涉及到移動快捷支付,但由於自己是個人開發者(哈哈~~相信有不少跟我一樣的朋友),無法直接申請市場上主流支付,如支付寶、微信、銀聯等。在網上找了好久第三方支付SDK,後來不經

Android快速整合極光推送內含自定義通知通知推送物件到某一個人或者某一群人

整合極光推送 使用jcenter 自動整合步驟 說明 : 使用 jcenter 自動整合,不需要在專案中新增 jar 和 so,jcenter 會自動完成依賴;在 AndroidManifest.xml 中不需要新增任何 JPush SDK 相關的配置,jcen

不用整合微信sdk直接客戶端調起微信支付

不用整合sdk,直接客戶端調起微信支付。但支付的資訊需要伺服器處理好,只需要在webView的shouldOverrideUrlLoading的重寫方法里加上如下程式碼: if (urlString.startsWith("weixin://wap/pay")) { //掉

Unity 下整合第三方原生 SDK以極光廠商通道為例

Unity中整合三方SDK有兩種方式: Unity 專案開發中時常有整合 Android 第三方 SDK 的需求,比如接入第三方推送,分享等功能。而第三方 SDK 的整合文件提到的往往是基於原生 Android 專案整合。 第一種 匯出 gradle 專案進行整合 匯出 gradle 專案的方式可以直接

快速利用第三方平臺SDK實現點對點語音通話

最近公司的一個APP專案需要一個加一個網際網路點對點語音功能,網上找了Linphone 研究了一個月發現這些開源庫很強大也很優秀,支援平臺廣泛 windows, mac,ios,android,linux,但是程式碼量和結構實在龐大,坑爹的專案經理要求一個月把這個功

快速整合Bugly Android SDK

騰訊Bugly,面向移動開發者提供最專業的Crash監控、崩潰分析等質量跟蹤服務,為您修復使用者的每一次Crash! 註冊新App 註冊登入平臺賬號,然後就可以註冊新的app,填寫相應的資訊,就可以得到相應的APP_ID。

PHP微信支付--接入支付SDK生成訂單二維碼進行掃碼支付

在PHP開發微信支付中接入支付SDK,生成訂單二維碼進行掃碼支付,實際運用中做出一些整理,以便後期查閱。整體流程如下圖; 微信支付官方流程:https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=6_5 1、當我們選擇使用掃碼支付,

快速整合融雲SDK– Android Studio

    現在很多應用都加入了即時通訊功能(客服等),選擇第三方的SDK比較省事快捷,這裡就介紹一下整合融雲SDK時遇到的一些問題。      這個是官網的整合指南:http://www.rongcloud.cn/docs,前3步沒啥好說的,關鍵是第4步:獲取Token。這裡

大型的支付系統支付寶、財付通後系統是如何對賬、風控的呢

1.對賬週期:A公司對玩家開放了包括支付寶、財付通在內的十餘種電子支付渠道,大部分都是按月對賬的,即當月1-10號(視渠道有差異)進行對賬,然後11號開始打款/轉賬。部分渠道可能是本月對上上個月的賬,即3月對1月的賬,如簡訊渠道(還分本地和外地)。還有的可能是周結算,如中騰神州行。2.各渠道成交額:

第四方支付崛起聚合支付為什麼這麼火?

“第四方聚合支付服務”不具備支付牌照,而是通過聚合多種第三方支付平臺、合作銀行及其他服務商介面等支付工具的綜合支付服務。 它不進行資金清算,但能夠根據商戶的需求進行個性化定製,形成支付通道資源優勢互補,具有中立性、靈活性、便捷性等特點。簡而言之,第三方支付提供的是資金

微信支付開發設定支付授權目錄

分享一下我老師大神的人工智慧教程吧。零基礎,通俗易懂!風趣幽默!http://www.captainbed.net/ 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

通過lua指令碼識別微信支付支付

需求:微信,支付寶,龍支付的APP中的掃一掃掃描二維碼,根據不同的瀏覽器,調起不同的支付。這裡要通過lua指令碼識別掃碼之後支付型別。 lua指令碼判斷支付型別,要知道各種支付的標誌性欄位,比如微信,

iOS 微信支付SDK與微信友盟分享兩者同時整合出現的問題與解決之路。

這兩天改版一箇舊的APP,要舊貌換新顏,拿到app後進行編譯,一直報下面的錯誤。 報不認識的符號名PayReq錯誤。奇怪,啥也沒動就這樣,真不知道給的包是不是本來就是個報錯的工程。 不管怎樣,要對它修改就先要跑起來啊。   根據錯誤提示,判斷是libwec

快速開發app這個快速開發框架整合PC、移動端開發讓開發更暢快!

之前,有發過不少PC端快速開發的文章,但是現在越來越多的專案需要PC和移動端結合,所以,我給大家介紹一下之前快速開發平臺的APP版本,希望大家能夠體驗一下,發表一下自己的看法。下載的話,在官網:www

maven 整合支付匯入alipay-sdk-java包到本地倉庫遠端倉庫

1.環境變數新增: MAVEN_HOME:(maven位置) M2_HOME:(maven位置) PATH:%M2_HOME%\bin (驗證maven是否配置成功cmd–>mvn -version(或者 mvn -v)) 2.安裝sdk到本地倉

maven 整合支付匯入alipay-sdk-java包到本地倉庫

1.環境變數新增: MAVEN_HOME:(maven位置) M2_HOME:(maven位置) PATH:%M2_HOME%\bin (驗證maven是否配置成功cmd-->mvn -vers

在項目中遷移MS SQLServer到Mysql數據庫實現MySQL數據庫的快速整合

mage 操作 info 支持 文件選擇 需要 並且 在服務器 重要 在開發項目的時候,往往碰到的不同的需求情況,兼容不同類型的數據庫是我們項目以不變應萬變的舉措之一,在底層能夠兼容多種數據庫會使得我們開發不同類型的項目得心應手,如果配合快速的框架支持,那更是錦上添花的舉措

移動端車牌識別SDK您無法拒絕的技術!

互聯網公司 創業 and 光照 投資公司 服務 車牌識別sdk 保持 電視劇 最近大熱的電視劇《創業時代》,移動端車牌識別SDK大家應該都愛看。劇中的洛菲斯投資公司作出決策,要重點投資以魔晶為首的三家移動互聯網公司中的一家,因為他們認為移動互聯是未來的趨勢。最終,魔晶作為研

支付寶免籤個人支付自動轉賬自動提現到銀行卡自動銀行卡轉賬

微信,支付寶,收款二維碼實時生成訂單監控,免籤支,付支付系統,個人收款,收款二維碼 微信和支付寶個人支付二維碼生成與監控!有PHP介面回撥,個人收款好助手! 實現收款即時到個人微信或支付寶賬戶!方便安全。 這個APP的作用是對自己的網站或者任何業務進行搭建支付系統!可以把錢收到自

微信支付收款二維碼實時生成訂單監控免籤支,付支付系統個人收款,收款二維碼

微信,支付寶,收款二維碼實時生成訂單監控,免籤支,付支付系統,個人收款,收款二維碼 微信和支付寶個人支付二維碼生成與監控!有PHP介面回撥,個人收款好助手! 實現收款即時到個人微信或支付寶賬戶!方便安全。 這個APP的作用是對自己的網站或者任何業務進行搭建支付系統!可以把錢收到自