1. 程式人生 > >iOS之app中接入支付寶的流程解析(一)

iOS之app中接入支付寶的流程解析(一)

第一步:建立應用並獲取APPID,新增應用功能

要在您的應用中使用支付寶開放產品的介面能力,您需要先去螞蟻金服開放平臺(open.alipay.com),在開發者中心中建立登記您的應用,並提交稽核,稽核通過後會為您生成應用唯一標識(APPID),並且可以申請開通開放產品使用許可權,通過APPID您的應用才能呼叫開放產品的介面能力。

1.新增應用功能

某些功能必須簽約才能使用:簽約 如下:






              應用上線後,可選擇自己使用和推廣給他人使用。供他人使用指的是應用開發者和應用使用者不是同一個人。使用者在使用應用前,需要做兩件事情:授權、簽約(如果應用中包含需要簽約的功能則需要簽約,不包含則不需要)

開發者和使用者的區別,開發者:應用(功能或者服務)的開發人員(或者企業),使用者:購買和使用應用(功能或者服務)的人員(或者企業)。當開發者自己使用自己開發的應用時,開發者和使用者的兩個身份是重合的。

商戶(例如:是某個電商網站)對開發者進行應用授權後,開發者可以幫助商戶完成相應的業務邏輯,例如代替商戶發起當面付的收單請求。

2、授權採用標準的OAuth 2.0流程。

3、要進行第三方呼叫,開發者需要在應用中新增對應功能並獲得商戶授權,商戶需要申請開通相應的許可權(例如對於當面付,開發者只需在應用中新增“當面付”功能並獲得商戶授權,商戶則需要開通“當面付”產品,之後開發者就可以幫助商戶發起當面付的收單請求)。





必須填寫“介面加密方式”(加密方式只需填寫一個),才可以提交稽核。

第二步:配置金鑰


上傳應用公鑰並獲取支付寶公鑰,(https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7629140.0.0.TvAv9s&treeId=291&articleId=105972&docType=1);支付寶公鑰內容,在程式碼中驗籤使用。

服務端的SDK,簽名和驗籤(https://doc.open.alipay.com/docs/doc.htm?treeId=54&articleId=103419&docType=1);

開發者呼叫介面前需要先生成RSA金鑰,RSA金鑰包含應用私鑰(APP_PRIVATE_KEY)、應用公鑰(APP_PUBLIC_KEY)。生成金鑰後在開放平臺開發者中心進行金鑰配置,配置完成後可以獲取支付寶公鑰(ALIPAY_PUBLIC_KEY)。

生成RSA金鑰

支付寶提供一鍵生成工具便於開發者生成一對RSA金鑰,可通過下方連結下載金鑰生成工具:

下載該工具後,解壓開啟資料夾,執行“RSA簽名驗籤工具.bat”(WINDOWS)或“RSA簽名驗籤工具.command”(MAC_OSX)。

介面示例:

詳細步驟:

1.根據開發語言選擇金鑰格式。

2.選擇金鑰長度,建議使用2048位。

3.點選 “生成金鑰”,會自動生成商戶應用公鑰和應用私鑰。

4.點選“開啟金鑰檔案路徑”,即可找到生成的公私鑰。如圖:

生成的私鑰需妥善保管,避免遺失,不要洩露。應用私鑰需填寫到程式碼中供簽名時使用。應用公鑰需提供給支付寶賬號管理者上傳到支付寶開放平臺

除了使用支付寶提供的一鍵生成金鑰工具外,也可以使用OpenSSL工具命令生成金鑰。步驟如下:

使用OpenSSL工具生成金鑰

更新時間:2016/12/22 訪問次數:5028

除了使用支付寶提供的一鍵生成工具外,也可以使用OpenSSL工具(下載地址https://www.openssl.org/source/?spm=a219a.7629140.0.0.b0VRLV)命令生成金鑰。

第一步 生成RSA金鑰

首先進入OpenSSL工具,輸入以下命令。

1 2 3 4 OpenSSL> genrsa -out app_private_key.pem   1024 #生成私鑰 OpenSSL> pkcs8 -topk8 -inform PEM -in app_private_key.pem -outform PEM -nocrypt -out app_private_key_pkcs8.pem #Java開發者需要將私鑰轉換成PKCS8格式 OpenSSL> rsa -in app_private_key.pem -pubout -out app_public_key.pem #生成公鑰 OpenSSL> exit #退出OpenSSL程式

經過以上步驟,開發者可以在當前資料夾中(OpenSSL執行資料夾),看到app_private_key.pem(開發者RSA私鑰,非Java語言適用)、app_private_key_pkcs8.pem(pkcs8格式開發者RSA私鑰,Java語言適用)和app_public_key.pem(開發者RSA公鑰)3個檔案。開發者將私鑰保留,將公鑰提交給支付寶配置到開發平臺,用於驗證簽名。以下為私鑰檔案和公鑰檔案示例。

TIPS:對於使用Java的開發者,需將生成的pkcs8格式的私鑰去除頭尾、換行和空格,作為私鑰填入程式碼中,對於.NET和PHP的開發者來說,無需進行pkcs8命令列操作。 

標準的私鑰檔案示例(PHP、.NET使用)

1 2 3 -----BEGIN RSA PRIVATE KEY----- MIICXQIBAAKBgQC+L0rfjLl3neHleNMOsYTW8r0QXZ5RVb2p/vvY3fJNNugvJ7lo4+fdBz+LN4mDxTz4MTOhi5e2yeAqx+v3nKpNmPzC5LmDjhHZURhwbqFtIpZD51mOfno2c3MDwlrsVi6mTypbNu4uaQzw/TOpwufSLWF7k6p2pLoVmmqJzQiD0QIDAQABAoGAakB1risquv9D4zX7hCv9MTFwGyKSfpJOYhkIjwKAik7wrNeeqFEbisqv35FpjGq3Q1oJpGkem4pxaLVEyZOHONefZ9MGVChT/MNH5b0FJYWl392RZy8KCdq376Vt4gKVlABvaV1DkapL+nLh7LMo/bENudARsxD55IGObMU19lkCQQDwHmzWPMHfc3kdY6AqiLrOss+MVIAhQqZOHhDe0aW2gZtwiWeYK1wB/fRxJ5esk1sScOWgzvCN/oGJLhU3kipHAkEAysNoSdG2oWADxlIt4W9kUiiiqNgimHGMHPwp4JMxupHMTm7D9XtGUIiDijZxunHv3kvktNfWj3Yji0661zHVJwJBAM8TDf077F4NsVc9AXVs8N0sq3xzqwQD/HPFzfq6hdR8tVY5yRMb4X7+SX4EDPORKKsgnYcur5lk8MUi7r072iUCQQC8xQvUne+fcdpRyrR4StJlQvucogwjTKMbYRBDygXkIlTJOIorgudFlrKP/HwJDoY4uQNl8gQJb/1LdrKwIe7FAkBl0TNtfodGrDXBHwBgtN/t3pyi+sz7OpJdUklKE7zMSBuLd1E3O4JMzvWP9wEE7JDb+brjgK4/cxxUHUTkk592 -----END RSA PRIVATE KEY-----

PKCS8處理後的私鑰檔案示例(Java使用)

1 MIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBAN0yqPkLXlnhM+2H/57aHsYHaHXazr9pFQun907TMvmbR04wHChVsKVgGUF1hC0FN9hfeYT5v2SXg1WJSg2tSgk7F29SpsF0I36oSLCIszxdu7ClO7c22mxEVuCjmYpJdqb6XweAZzv4Is661jXP4PdrCTHRdVTU5zR9xUByiLSVAgMBAAECgYEAhznORRonHylm9oKaygEsqQGkYdBXbnsOS6busLi6xA+iovEUdbAVIrTCG9t854z2HAgaISoRUKyztJoOtJfI1wJaQU+XL+U3JIh4jmNx/k5UzJijfvfpT7Cv3ueMtqyAGBJrkLvXjiS7O5ylaCGuB0Qz711bWGkRrVoosPM3N6ECQQD8hVQUgnHEVHZYtvFqfcoq2g/onPbSqyjdrRu35a7PvgDAZx69Mr/XggGNTgT3jJn7+2XmiGkHM1fd1Ob/3uAdAkEA4D7aE3ZgXG/PQqlm3VbE/+4MvNl8xhjqOkByBOY2ZFfWKhlRziLEPSSAh16xEJ79WgY9iti+guLRAMravGrs2QJBAOmKWYeaWKNNxiIoF7/4VDgrcpkcSf3uRB44UjFSn8kLnWBUPo6WV+x1FQBdjqRviZ4NFGIP+KqrJnFHzNgJhVUCQFzCAukMDV4PLfeQJSmna8PFz2UKva8fvTutTryyEYu+PauaX5laDjyQbc4RIEMU0Q29CRX3BA8WDYg7YPGRdTkCQQCG+pjU2FB17ZLuKRlKEdtXNV6zQFTmFc1TKhlsDTtCkWs/xwkoCfZKstuV3Uc5J4BNJDkQOGm38pDRPcUDUh2/

公鑰檔案示例

1 2 3 -----BEGIN PUBLIC KEY----- MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDQWiDVZ7XYxa4CQsZoB3n7bfxLDkeGKjyQPt2FUtm4TWX9OYrd523iw6UUqnQ+Evfw88JgRnhyXadp+vnPKP7unormYQAfsM/CxzrfMoVdtwSiGtIJB4pfyRXjA+KL8nIa2hdQy5nLfgPVGZN4WidfUY/QpkddCVXnZ4bAUaQjXQIDAQAB -----END PUBLIC KEY-----

第二步 處理應用公鑰格式

將公鑰檔案去除頭尾、換行和空格,轉成一行字串。把該字串提供給支付寶賬號管理者,登入開放平臺上傳應用公鑰並獲取支付寶公鑰。教程

例如轉換前公鑰pem檔案格式:

1 2

相關推薦

iOSapp接入支付流程解析

第一步:建立應用並獲取APPID,新增應用功能 要在您的應用中使用支付寶開放產品的介面能力,您需要先去螞蟻金服開放平臺(open.alipay.com),在開發者中心中建立登記您的應用,並提交稽核,稽核通過後會為您生成應用唯一標識(APPID),並且可以申請開通

android app 快速接入支付流程android studio

   前一段時間做了商城app,增加了支付寶支付,感謝在遇到問題的時候,幫助我的大神們~    程式設計的路很長,學習的路也很長,總結才是提高的最快過程~ 一.快捷支付地址: 開發官方文件介紹

nopCommerce 3.9 大波浪系列 可退款的支付插件

則無 res oschina lin 地址 放置 訂單狀態 mage 代碼 一.簡介 nop通過插件機制可以支持更多的支付擴展,我們通過編寫支持退款的支付寶插件來更好的理解支付插件的擴展。 先分享下支付寶插件源碼點擊下載,由於時間原因,本篇只介紹使用

APP怎樣接入支付或微信支付

首先:現在的支付寶支付和微信支付都不對個人授權的,所以你必須要有門店營業執照相關的東西,或者別人的門店授權給你,才可。 這件事,說簡單也簡單,說麻煩也麻煩。如果自己去接的話,我簡單說下步驟: 第一步,準備好您公司的材料資訊,包括營業執照,法人身份證及銀行對公戶,如果是代理人申請則需要代理人的身份證及授權委

機器學習numpy庫常用的函數介紹

做的 string idt 維度 數據 round float 數值 array 1. mat() mat()與array的區別: mat是矩陣,數據必須是2維的,是array的子集,包含array的所有特性,所做的運算都是針對矩陣來進行的。 array是數組,數據可以是多

『中級篇』dockerCI/CD持續整合-整個流程串聯75

>原創文章,歡迎轉載。轉載請註明:轉載自IT人故事會,謝謝!>原文連結地址:『中級篇』docker之CI/CD持續整合-整個流程串聯(75) 前面主要說了CI python,CI java,CDpython,這次主要說下從gitlab,gitlab-ci,gitlab CICD的整個從開

app的webview通識篇

前言 如果你還是第一次與app合作開發webview的頁面,那麼對於如何除錯,可能有哪些問題可能是不夠了解的。本文嘗試性的根據自己的經驗給大家一個入門級別的瞭解,如果是大佬級別的,可以繞路了。 webview協議約定 為了更好的在app中除錯開發我們的移動頁面(h5),我們需要與app開發人員約定一些基

linux學習筆記流程控制if分支語句

流程控制 if語句 單分支if語句 程式 fi``` ```if [ 判斷 ] then 程式 fi``` 例項程式碼指令碼: #!/bin/bash

反射包 java.lang.reflect⑦ Java Proxy 動態代理類 探祕

這個系列好久沒有續作了,你以為完了,錯了。這個動態代理有說不完的知識點,我也是在不斷的學習中才瞭解得到更多的知識。但無可否認的一點是它需更多其他的知識的支援,比如設計模式,設計思想。工作越久越覺得設計模式這個東西的重要性。  其實動態代理的前兩個例子只是簡單的列出了它的一個

完整的阿里支付面試經過

前言: 支付寶是我的一個意外收穫,當初並不是很重視它,只是和其他人一起跟風投了它,後來才知道它是阿里旗下的一家公司,而且待遇和騰訊差不多,位於杭州。支付寶的招聘是所有IT企業中效率最高的一家,從宣講到拿到offer,不到72小時。大概是10月二十多號晚上,支付寶前在大活305

C++STLsort函式的內部實現

另外一個版本: 概述 先進行introsort,基本有序後再使用insertion sort。introsort是改進的quick sort,為了防止最壞情況發生,它使用__lg()函式控制分割惡化的情況。 intro sort演算法 元素個數

淺談AndroidActivity 視窗顯示流程介紹

7 Activity 視窗顯示流程介紹 Activity 視窗顯示,其實就是Décor View繪製並顯示的過程,但是在繪製之前,Décor View需要先做下面兩件事情: 1)  確定Décor View的大小 2)  對Décor View進行佈局操作,也就是確定Déc

java執行緒阻塞sleep、suspend、join、wait、resume、notify方法解析

java執行緒的5狀態包括create、runnable、running、blocked、dead。 create是指用new執行緒被建立,但是還沒有準備好各種資源。 runnable是指使用start啟動執行緒,這時候系統會為執行緒分配除cpu以外的所有需要的資源。 ru

iOSOC呼叫js方法簡述

從iOS7開始 蘋果公佈了JavaScriptCore.framework 它使得JS與OC的互動更加方便了。 下面我們就簡單瞭解一下這個框架 首先我匯入framework 方法如下: 點選Linked Frameworks and Libraries 的

Python爬蟲實戰抓取淘MM照片

背景   Python爬蟲系列教程的一次實戰,然而淘寶進行過頁面改版,現在已經沒有淘寶MM這個版面,取而代之的是淘女郎。改版後,頁面是使用JS渲染的,並不能直接通過url來切換頁碼。該系列教程後續講到

IOS音訊1:採用四種方式播放音訊檔案AudioToolbox AVFoundation OpenAL AUDIO QUEUE

在本卷你可以學到什麼? 採用四種方法設計應用於各種場合的音訊播放器: 基於AudioToolbox.framework框架。播放系統聲音檔案。 基於AVFoundation.framework框架。播放多種音訊格式檔案。具有高階音訊播放器功能。如實時顯示進度、功率,控制音量

亞馬遜語言識別AlexaAlexaAndroid的接入及AlexaAndroid的原始碼解析

一、用於國外關於語音識別的產品,現在亞馬遜開發了Alexa給開發者使用。國內的話語言識別當然就科大訊飛莫屬了,最近在接入亞馬遜Alexa語音識別遇到很多在Stack Overflow中都沒人解答的坑坑。在此以部落格的形式記錄自己深陷的坑和相應的解決辦法。整個接入的流程如圖: 

jsp讀取數據庫內容

reat cor mysq ava roo 數據 state imp nav 在jsp中將數據庫表格內容讀出為一個表格,並在表格中添加超鏈接: 1 <%@ page language="java" contentType="text/html; charset=U

salesforce零基礎學習七十二項目的零碎知識點小總結

gin 不同 grant dmi ima -m ron 角色 com 項目終於告一段落,雖然比較苦逼,不過也學到了好多知識,總結一下,以後當作參考。 一.visualforce標簽中使用html相關的屬性使用 曾經看文檔沒有看得仔細,導致開發的時候走了一些彎路。還好得到

linux驅動開發蜂鳴器驅動源碼分析

linux 蜂鳴器 驅動 蜂鳴器的驅動源碼在/driver/char/buzzer/x210-buzzer.c文件中,源碼如下#include <linux/module.h> #include <linux/kernel.h> #include <linux