1. 程式人生 > >Cordova Plugin | 使用ionic(Angularjs)呼叫支付寶(Alipay)進行支付

Cordova Plugin | 使用ionic(Angularjs)呼叫支付寶(Alipay)進行支付

0、引言

之前釋出了一篇關於開發和使用Alipay(支付寶)的Cordova Plugin的部落格,實現了簡單的呼叫支付寶支付功能。但是上篇部落格所實現的外掛並不能直接應用於商業專案中,因為加簽操作都在客戶端完成。之後有很多小夥伴找我要原始碼,索性就自己封裝一個可以應用於正式版本的Alipay Cordova Plugin,供大家參考。

1、概述

本文用於闡述將Alipay的官方SDK(Android、iOS)封裝為標準化Cordova Plugin的過程,並提供Angularjs的呼叫示例。

2、安裝

2.1、clone

PS:喜歡的話記得給我一顆小星星,感謝臉.jpg

首先,使用如下命令將外掛程式碼clone到本地

git clone https://github.com/BeanYong/com.anas.alipay.git

2.2、修改scheme

在外掛目錄com.anas.alipay/src/ios下,找到AlipayPlugin.m檔案,對其中your_scheme進行編輯,將其修改為自定義的Scheme,具體為如下一行

NSString *your_scheme = @"your_scheme";

例如修改為

NSString *your_scheme = @"qazxcfghjklmnbgfdw";

scheme為自己應用的唯一標識,作為支付寶支付完成後跳轉的憑據,可以設定為隨機值,但要儘量確保scheme在使用者手機上的唯一性。

2.3、安裝外掛

cordova plugin add 外掛在本機的路徑

例如

cordova plugin add E:\Anasit\plugins\com.anas.alipay

3、配置

外掛安裝完成後,需要對iOS平臺進行一些回撥配置,以在支付完成後,正確跳轉及接收回調引數。

3.1、AppDelegate配置

在AppDelegate.h檔案中加入如下程式碼

#import "AlipayPlugin.h"

在AppDelegate.m檔案中加入如下程式碼

- (BOOL)application:(UIApplication *)application openURL:(NSURL
*)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { if ([url.host isEqualToString:@"safepay"]) { // 支付跳轉支付寶錢包進行支付,處理支付結果 [[AlipaySDK defaultService] processOrderWithPaymentResult:url standbyCallback:^(NSDictionary *resultDic) { NSLog(@"result = %@",resultDic); AlipayPlugin *plugin = [[AlipayPlugin alloc] init]; [plugin backToJs:resultDic]; }]; } return YES; } // NOTE: 9.0以後使用新API介面 - (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString*, id> *)options { if ([url.host isEqualToString:@"safepay"]) { // 支付跳轉支付寶錢包進行支付,處理支付結果 [[AlipaySDK defaultService] processOrderWithPaymentResult:url standbyCallback:^(NSDictionary *resultDic) { NSLog(@"result = %@",resultDic); AlipayPlugin *plugin = [[AlipayPlugin alloc] init]; [plugin backToJs:resultDic]; }]; } return YES; }

3.2、scheme配置

使用xcode開啟專案,在Targets中,點選info選項卡,在URL Types中新增一個item,其中URL Schemes填入剛才寫入外掛的自定義scheme,即qazxcfghjklmnbgfdw(此字串作為示例,請自行填入自定義的scheme)。

4、使用

  cordova.plugins.AlipayPlugin.pay(
    /**
     * 呼叫外掛成功回撥
     *
     * @param result 支付結果(其中包含result、memo、resultStatus三個引數)
     */
    function(result){
        var resultJson = JSON.parse(result);
        if(resultJson.resultStatus == 9000){
            // TODO 成功支付
            // 注:支付寶支付結果應該依賴於支付寶傳送到伺服器的非同步回撥,故此處應該將向伺服器詢問是否確實支付成功
        } else {
            // TODO 未成功支付
        }
    },

    // 呼叫外掛失敗回撥
    function(){
        Toast.show("伺服器開小差了,稍等一會兒在'我的訂單'裡付款吧");
    },

    // 伺服器組裝的加簽支付資訊,預先向伺服器請求獲取
    orderInfo
  );

5、作者

閆斌(BeanYon)

相關推薦

Cordova Plugin | 使用ionicAngularjs呼叫支付Alipay進行支付

0、引言 之前釋出了一篇關於開發和使用Alipay(支付寶)的Cordova Plugin的部落格,實現了簡單的呼叫支付寶支付功能。但是上篇部落格所實現的外掛並不能直接應用於商業專案中,因為加簽操作都在客戶端完成。之後有很多小夥伴找我要原始碼,索性就自己封裝一

cordova-plugin-datepicker 新增只選擇年月的模式android

cordova-plugin-datepicker 這個cordova 官網的日期選擇的外掛,裡面有幾個模式,分別是date 日期選擇,time 時間選擇,還有datetime 日期時間都選的模式。但是有時候會有這樣的需求,只顯示選擇年和月,或者只顯示選擇月和日

支付寶安卓機型支付時,只有第一次可以喚醒支付窗的bug支付交易號

如果 win 註入 false 但是 前端 ipa span dep 占坑 之前公司的支付寶支付時相關項目代碼一直是 document.addEventListener(‘AlipayJSBridgeReady‘, function() { AlipayJSBr

hdu 2015 偶數求和陣列,呼叫函式,c語言

hdu 2015 偶數求和 點選做題網站連結 題目描述 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Problem Description 有一個長度為n

hdu 2014 青年歌手大獎賽_評委會打分陣列,呼叫函式,c語言

hdu 2014 青年歌手大獎賽_評委會打分 點選做題網站連結 題目描述 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Problem Descriptio

一分鐘整合支付安卓

背景:      專案中需要整合支付寶支付。支付寶官方有整合指導,網上也有一些指導文件,但是總是感覺有些囉嗦,所以整理一片極簡對接指導文件,目的在於立刻完成支付寶整合。(至於高階玩法,請參考官方文件) 整合步驟(直接上程式碼): 關鍵程式碼MainActivity.ja

React Native (IOS和Android) 支付和微信支付整合實戰支付Android篇

序言:React Native無論是在社群和應用程度上,在國內外是十分廣泛和普及的。而支付寶和微信在支付模組上都有或多或少的支援,雖然沒有完整的Demo,不過在我做過一個相關整合的專案後,在此我把相關的步驟和方法總結出來和大家分享,希望能夠幫助大家少走彎路,快速整合。 支付

宿主語言c++呼叫Lua原理lua的堆疊

本文主要介紹宿主語言是如何一步步呼叫lua的,這裡選取c++作為宿主語言,以前使用cocos呼叫lua的時候只知道是通過lua虛擬機器中的棧來實現的一直沒有深入理解,藉著這次重新使用的機會,深入理解並作出總結,做一記錄(記性不好,可以常回來看看鞏固下)先來理一理lua虛擬機器的棧: 我

通用的webServiceCXF、Axis呼叫工具類無強制依賴

要支援Axis需要這麼幾個不常見的依賴: <dependency> <groupId>org.apache.axis</groupId> <artifactId>axis</artifactId>

一個PHP檔案搞定支付系列之手機網站支付相容微信瀏覽器

<?php header('Content-type:text/html; Charset=utf-8'); $appid = 'xxxxx'; //https://open.alipay.com 賬戶中心->金鑰管理->開放平臺金鑰,填寫添加了電腦網站支付的應用的APPID $retur

Node.js接入支付螞蟻金服支付

最近專案(Android和Ios)中需要接入付費功能(支付寶和微信),下面就先來介紹下接入支付寶的流程。文章主要分為三大塊:第一塊是如何在螞蟻金服的開放平臺建立一個應用並且配置開發選項。第二塊是node端接入支付功能生成前端支付需要的引數(私鑰簽名)。第三塊是node端對支付

iOS遠端推送自定義語音合成播放聲音類似支付收款提醒

本文參考文章 iOS 模仿支付寶支付到賬推送,播報錢數,看上面寫的一些不是很詳細遇到了許多問題,這裡特意自己總結了一下。將我遇到的問題以及解決方案給羅列出來供大家參考。首先建立一個工程:開啟推送通知註冊接受Background Modes內部的第一個我看有的demo是有夠選的

uni-app 1.4 釋出,一套程式碼,發行小程式微信/支付/百度、H5、App多個平臺

在2019新年到來之際,uni-app 1.4版本正式釋出,新增支援百度、支付寶小程式,開放外掛市場,同時注入更多優秀特性,為開發者送上了一份新年大禮! 支援更多小程式平臺 uni-app 1.4 版本新增支援百度、支付寶小程式,從此一次開發,可釋出小程式(微信/支付寶/百度)、H5、App(iOS/An

webservices系列——呼叫線上webservice天氣預報和號碼查詢

天氣預報,這個介面是.net平臺的,直接用wsimport 生成程式碼會報錯,需要儲存本地修改 瀏覽器開啟http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl,另存為weather.wsdl,然後將

angularjs學習之五angularjs中一般函式引數的傳遞

1.模型引數 直接使用變數名,不要加引號 <!doctype html> <html ng-app="passAter"> <head> <meta charset="utf-8"/> </head>

Linux下的檔案操作Linux系統呼叫和ANSIC檔案操作

1、Linux系統呼叫 系統呼叫常用於 I/O 檔案操作,系統呼叫常用的函式有 open、 close、 read、write、 lseek、ulink 等。 open:開啟或建立檔案 close:關閉檔案 read :從指定的檔案描述符中讀出的資料放到緩衝區,並

APP內支付的接入總結支付&APP STORE

支付接入(JAVA端) 支付寶(新版) · 安卓APP內的支付寶支付接入 支付寶的接入文件有新版和舊版之分,看的時候真的是雜亂無章,也可能是我找的地方不太對吧……測試了好幾天終於找見了一個目前(2017.10)能通過的資料版本,記錄一下。 第一步:接

支付網站即時到賬支付流程沙箱

這篇文章不貼程式碼,很多文章貼出程式碼也看不懂(我的感受)。主要講講支付的流程。 不然很難往下進行。 開發中需要的配置:(對應上圖) RETURNURL      //同步通知地址  return回撥 NOTIFYURL       //非同步通知

原始碼推薦(6.16):高仿新浪微博,支付高仿原始碼

模仿新浪微博做的一款app,有傳送博文,評論,點贊,私聊功能(修復了滑動會卡的bug) 使用到的第三方庫: AVOSCloud AVOSCloudIM JSBadgeView fmdb MBProgressHUD SDWebImage MessageDisplayKit

iOS中 支付錢包具體解釋/第三方支付 韓俊強的博客

rod 一次 也有 rip icontrol data tar content mic 每日更新關註:http://weibo.com/hanjunqiang 新浪微博! iOS開發人員交流QQ群: 446310206 一、在ap