一、注册sofort 交易账号
注册中须填公司基本信息、绑定银行卡等,个人感觉让财务或行政做就行了,开发人员就不要搞了
https://www.sofort.com/integrationCenter-eng-DE/content/view/full/4520此链接是sofort关于注册、项目创建等的引导说明,按照步骤来就行了。
创建项目有Gateway project 和 Classic project两种,一般选择Gateway project 即可。测试模式当然要勾选,方便测试。 notificationURL 、successURL 、 abortURL 、 timeoutURL要根据项目实际情况填写,注意最好是https路径哦。
创建完项目后只能测试用,需要你激活项目才能用于生产环境。
创建完后在My projects页面,点击你创建的项目,进入下图页面,Base setting窗口有你代码中需要的customerId、projectId和apiKey,Test the project窗口有你测试需要银行信息。
二、
API类型选择及源码下载
https://www.sofort.com/integrationCenter-eng-DE/integration/API-SDK/#2861-sue此链接API类型选择及源码下载
下图选择API版本
下图源码下载及跳转到API文档页面,源码是gradle构建的,习惯maven的朋友百度搜下gradle的基本使用即可。(本人项目是电子商务网站,所以选择的是Sofort版,语言是java)
开发前建议先看看API文档,另外sofort有点坑,没有可用的sdk jar包,需要你下载源码后自己打成jar包。
三、写代码喽
四、本人代码
1、支付接口(跟sofort实例代码基本一样,只是方法变成静态方便调用,另外交易ID存入session方便回调获取session信息)
package com.aurorascm.pay;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import org.apache.shiro.session.Session;
import com.aurorascm.util.Jurisdiction;
import com.sofort.lib.core.internal.net.ConnectionException;
import com.sofort.lib.core.internal.net.http.HttpAuthorizationException;
import com.sofort.lib.core.internal.net.http.HttpConnectionException;
import com.sofort.lib.core.internal.transformer.RawResponse;
import com.sofort.lib.core.internal.transformer.RawResponse.Status;
import com.sofort.lib.core.internal.utils.StringUtilities;
import com.sofort.lib.core.products.request.parts.Notification;
import com.sofort.lib.core.products.response.SofortTransactionStatusNotification;
import com.sofort.lib.payment.DefaultSofortLibPayment;
import com.sofort.lib.payment.products.request.PaymentRequest;
import com.sofort.lib.payment.products.request.PaymentTransactionDetailsRequest;
import com.sofort.lib.payment.products.response.PaymentResponse;
import com.sofort.lib.payment.products.response.PaymentTransactionDetailsResponse;
import com.sofort.lib.payment.products.response.parts.PaymentTransactionDetails;
/**
* An example of usage of the SofortLib Payment (SOFORT Überweisung).
*
* 1st - use PaymentInitaliser to initialise a new payment
*
* 2nd - start/resume/check listening on notificationUrls (see the SOFORT API
* documentation)
*
* 3rd - use the NotificationParser to parse and handle received status
* notifications
*
* 4th - use TransactionDetailsSer